using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Concord.API.Future.ClientSample.Elves
{
    struct FCommoymElf
    {
        public string 商品代號 { get; set; }
        public string 交割年月 { get; set; }
        public string 履約價 { get; set; }
        public string 期權CP { get; set; }
        public string 上市日期 { get; set; }
        public string 下市日期 { get; set; }
        public string 漲停價 { get; set; }
        public string 跌停價 { get; set; }
        public string 權利金 { get; set; }
        public string 第二漲停價 { get; set; }
        public string 第二跌停價 { get; set; }
        public string 第三漲停價 { get; set; }
        public string 第三跌停價 { get; set; }
        public string 契約種類 { get; set; }
        public string 是否可報價 { get; set; }
        public string 價格欄位小數位 { get; set; }
        public string 商品序號 { get; set; }
        public string 流程群組 { get; set; }
        public string 最後結算日 { get; set; }
        public string 履約價格小數位數 { get; set; }
    }
    public struct FCommoymKeyElf
    {
        public FCommoymKeyElf(string 交割年月, string 履約價)
        {
            this.交割年月 = 交割年月;
            this.履約價 = 履約價;
        }
        public string 交割年月 { get; set; }
        public string 履約價 { get; set; }
    }
    public class FCommoymKeyElfComparer : IComparer<FCommoymKeyElf>
    {
        public int Compare(FCommoymKeyElf x, FCommoymKeyElf y)
        {
            int x月份 = int.Parse(x.交割年月);
            int y月份 = int.Parse(y.交割年月);
            if (x月份 > y月份)
            {
                return 1;
            }
            else
            {
                if (x月份 == y月份)
                {
                    double x履約價 = double.Parse(x.履約價);
                    double y履約價 = double.Parse(y.履約價);
                    if (x履約價 > y履約價)
                    {
                        return 1;
                    }
                    else
                    {
                        return x履約價 < y履約價 ? -1 : 1;
                    }
                }
                else
                {
                    return -1;
                }
            }
        }
    }
}
