public PortfolioItemViewModel()
 {
     Expiry = new DateAndNumberOfDaysUntilViewModel();
 }
        public static OptionChainViewModel AutoMapperConverterOptionChain(OptionChain optionChain)
        {
            OptionChainViewModel       ocvm          = new OptionChainViewModel();
            List <OptionPair>          interVariable = optionChain.ToList();
            List <OptionPairViewModel> resVariable   = new List <OptionPairViewModel>();

            for (int i = 0; i < interVariable.Count; i++)
            {
                OptionPairViewModel opvm       = new OptionPairViewModel();
                OptionViewModel     CallOption = new OptionViewModel();
                opvm.CallOption = CallOption;
                OptionViewModel PutOption = new OptionViewModel();
                opvm.PutOption = PutOption;
                DateAndNumberOfDaysUntilViewModel expire = new DateAndNumberOfDaysUntilViewModel();
                opvm.Expiry = expire;
                //convert type option named CallOption into  type OptionPairViewModel named CallOption
                opvm.CallOption.Ask                       = interVariable[i].CallOption.Ask;
                opvm.CallOption.Ask2                      = interVariable[i].CallOption.Ask2;
                opvm.CallOption.Ask3                      = interVariable[i].CallOption.Ask3;
                opvm.CallOption.Ask4                      = interVariable[i].CallOption.Ask4;
                opvm.CallOption.Ask5                      = interVariable[i].CallOption.Ask5;
                opvm.CallOption.AskVolume                 = interVariable[i].CallOption.AskVolume;
                opvm.CallOption.AskVolume2                = interVariable[i].CallOption.AskVolume2;
                opvm.CallOption.AskVolume3                = interVariable[i].CallOption.AskVolume3;
                opvm.CallOption.AskVolume4                = interVariable[i].CallOption.AskVolume4;
                opvm.CallOption.AskVolume5                = interVariable[i].CallOption.AskVolume5;
                opvm.CallOption.AuctionReferencePrice     = interVariable[i].CallOption.AuctionReferencePrice;
                opvm.CallOption.AuctionReferenceQuantity  = interVariable[i].CallOption.AuctionReferenceQuantity;
                opvm.CallOption.Bid                       = interVariable[i].CallOption.Bid;
                opvm.CallOption.Bid2                      = interVariable[i].CallOption.Bid2;
                opvm.CallOption.Bid3                      = interVariable[i].CallOption.Bid3;
                opvm.CallOption.Bid4                      = interVariable[i].CallOption.Bid4;
                opvm.CallOption.Bid5                      = interVariable[i].CallOption.Bid5;
                opvm.CallOption.BidVolume                 = interVariable[i].CallOption.BidVolume;
                opvm.CallOption.BidVolume2                = interVariable[i].CallOption.BidVolume2;
                opvm.CallOption.BidVolume3                = interVariable[i].CallOption.BidVolume3;
                opvm.CallOption.BidVolume4                = interVariable[i].CallOption.BidVolume4;
                opvm.CallOption.BidVolume5                = interVariable[i].CallOption.BidVolume5;
                opvm.CallOption.Change                    = interVariable[i].CallOption.Change;
                opvm.CallOption.ChangePercentage          = interVariable[i].CallOption.ChangePercentage;
                opvm.CallOption.Greeks                    = interVariable[i].CallOption.Greeks;
                opvm.CallOption.HighestPrice              = interVariable[i].CallOption.HighestPrice;
                opvm.CallOption.LatestTradedPrice         = interVariable[i].CallOption.LatestTradedPrice;
                opvm.CallOption.LimitDownPrice            = interVariable[i].CallOption.LimitDownPrice;
                opvm.CallOption.LimitUpPrice              = interVariable[i].CallOption.LimitUpPrice;
                opvm.CallOption.LowestPrice               = interVariable[i].CallOption.LowestPrice;
                opvm.CallOption.Name                      = interVariable[i].CallOption.Name;
                opvm.CallOption.OpeningPrice              = interVariable[i].CallOption.OpeningPrice;
                opvm.CallOption.OpenInterest              = interVariable[i].CallOption.OpenInterest;
                opvm.CallOption.OptionCode                = interVariable[i].CallOption.OptionCode;
                opvm.CallOption.OptionName                = interVariable[i].CallOption.OptionName;
                opvm.CallOption.OptionNumber              = interVariable[i].CallOption.OptionNumber;
                opvm.CallOption.OptionUnderlyingCode      = interVariable[i].CallOption.OptionUnderlyingCode;
                opvm.CallOption.OptionUnderlyingName      = interVariable[i].CallOption.OptionUnderlyingName;
                opvm.CallOption.OptionUnit                = interVariable[i].CallOption.OptionUnit;
                opvm.CallOption.PreviousClose             = interVariable[i].CallOption.PreviousClose;
                opvm.CallOption.PreviousSettlementPrice   = interVariable[i].CallOption.PreviousSettlementPrice;
                opvm.CallOption.SecurityCode              = interVariable[i].CallOption.SecurityCode;
                opvm.CallOption.TradeDate                 = interVariable[i].CallOption.TradeDate;
                opvm.CallOption.Turnover                  = interVariable[i].CallOption.Turnover;
                opvm.CallOption.TypeOfOption              = interVariable[i].CallOption.TypeOfOption;
                opvm.CallOption.UncoveredPositionQuantity = interVariable[i].CallOption.UncoveredPositionQuantity;
                opvm.CallOption.Volume                    = interVariable[i].CallOption.Volume;
                //convert type option named PutOption into  type OptionPairViewModel named PutOption
                opvm.PutOption.Ask                       = interVariable[i].PutOption.Ask;
                opvm.PutOption.Ask2                      = interVariable[i].PutOption.Ask2;
                opvm.PutOption.Ask3                      = interVariable[i].PutOption.Ask3;
                opvm.PutOption.Ask4                      = interVariable[i].PutOption.Ask4;
                opvm.PutOption.Ask5                      = interVariable[i].PutOption.Ask5;
                opvm.PutOption.AskVolume                 = interVariable[i].PutOption.AskVolume;
                opvm.PutOption.AskVolume2                = interVariable[i].PutOption.AskVolume2;
                opvm.PutOption.AskVolume3                = interVariable[i].PutOption.AskVolume3;
                opvm.PutOption.AskVolume4                = interVariable[i].PutOption.AskVolume4;
                opvm.PutOption.AskVolume5                = interVariable[i].PutOption.AskVolume5;
                opvm.PutOption.AuctionReferencePrice     = interVariable[i].PutOption.AuctionReferencePrice;
                opvm.PutOption.AuctionReferenceQuantity  = interVariable[i].PutOption.AuctionReferenceQuantity;
                opvm.PutOption.Bid                       = interVariable[i].PutOption.Bid;
                opvm.PutOption.Bid2                      = interVariable[i].PutOption.Bid2;
                opvm.PutOption.Bid3                      = interVariable[i].PutOption.Bid3;
                opvm.PutOption.Bid4                      = interVariable[i].PutOption.Bid4;
                opvm.PutOption.Bid5                      = interVariable[i].PutOption.Bid5;
                opvm.PutOption.BidVolume                 = interVariable[i].PutOption.BidVolume;
                opvm.PutOption.BidVolume2                = interVariable[i].PutOption.BidVolume2;
                opvm.PutOption.BidVolume3                = interVariable[i].PutOption.BidVolume3;
                opvm.PutOption.BidVolume4                = interVariable[i].PutOption.BidVolume4;
                opvm.PutOption.BidVolume5                = interVariable[i].PutOption.BidVolume5;
                opvm.PutOption.Change                    = interVariable[i].PutOption.Change;
                opvm.PutOption.ChangePercentage          = interVariable[i].PutOption.ChangePercentage;
                opvm.PutOption.Greeks                    = interVariable[i].PutOption.Greeks;
                opvm.PutOption.HighestPrice              = interVariable[i].PutOption.HighestPrice;
                opvm.PutOption.LatestTradedPrice         = interVariable[i].PutOption.LatestTradedPrice;
                opvm.PutOption.LimitDownPrice            = interVariable[i].PutOption.LimitDownPrice;
                opvm.PutOption.LimitUpPrice              = interVariable[i].PutOption.LimitUpPrice;
                opvm.PutOption.Name                      = interVariable[i].PutOption.Name;
                opvm.PutOption.OpeningPrice              = interVariable[i].PutOption.OpeningPrice;
                opvm.PutOption.OpenInterest              = interVariable[i].PutOption.OpenInterest;
                opvm.PutOption.OptionCode                = interVariable[i].PutOption.OptionCode;
                opvm.PutOption.OptionName                = interVariable[i].PutOption.OptionName;
                opvm.PutOption.OptionNumber              = interVariable[i].PutOption.OptionNumber;
                opvm.PutOption.OptionUnderlyingCode      = interVariable[i].PutOption.OptionUnderlyingCode;
                opvm.PutOption.OptionUnderlyingName      = interVariable[i].PutOption.OptionUnderlyingName;
                opvm.PutOption.OptionUnit                = interVariable[i].PutOption.OptionUnit;
                opvm.PutOption.PreviousClose             = interVariable[i].PutOption.PreviousClose;
                opvm.PutOption.PreviousSettlementPrice   = interVariable[i].PutOption.PreviousSettlementPrice;
                opvm.PutOption.SecurityCode              = interVariable[i].PutOption.SecurityCode;
                opvm.PutOption.TradeDate                 = interVariable[i].PutOption.TradeDate;
                opvm.PutOption.Turnover                  = interVariable[i].PutOption.Turnover;
                opvm.PutOption.TypeOfOption              = interVariable[i].PutOption.TypeOfOption;
                opvm.PutOption.UncoveredPositionQuantity = interVariable[i].PutOption.UncoveredPositionQuantity;
                opvm.PutOption.Volume                    = interVariable[i].PutOption.Volume;
                //Convert named Expiry belonging to OpitonPairViewModel into DateAndNumberOfDaysUntil belonging to Entities
                opvm.Expiry.Date = interVariable[i].Expiry.FutureDate;
                opvm.Expiry.TotalNumberOfDaysUntilExpiry = interVariable[i].Expiry.TotalNumberOfDaysUntilExpiry;
                //
                opvm.PremiumMultiplier = interVariable[i].PremiumMultiplier;
                opvm.SecurityCode      = interVariable[i].SecurityCode;
                opvm.SecurityName      = interVariable[i].SecurityName;
                opvm.StrikePrice       = interVariable[i].StrikePrice;

                resVariable.Add(opvm);
            }

            List <decimal> StrikePrices = new List <decimal>();

            for (int i = 0; i < optionChain.StrikePrices.Count; i++)
            {
                StrikePrices.Add(decimal.Parse(optionChain.StrikePrices[i].ToString()));
            }

            List <DateAndNumberOfDaysUntilViewModel> ExpirationDates = new List <DateAndNumberOfDaysUntilViewModel>();

            for (int i = 0; i < optionChain.ExpirationDates.Count; i++)
            {
                DateAndNumberOfDaysUntilViewModel dnduvm = new DateAndNumberOfDaysUntilViewModel();
                dnduvm.Date = optionChain.ExpirationDates[i].FutureDate;
                dnduvm.TotalNumberOfDaysUntilExpiry = optionChain.ExpirationDates[i].TotalNumberOfDaysUntilExpiry;
                ExpirationDates.Add(dnduvm);
            }

            double UnderlyingCurrentPrice = optionChain.UnderlyingCurrentPrice;

            ocvm.Chains                 = resVariable;
            ocvm.ExpirationDates        = ExpirationDates;
            ocvm.StrikePrices           = StrikePrices;
            ocvm.UnderlyingCurrentPrice = UnderlyingCurrentPrice;
            //result.Chains = optionChain.ToList();
            return(ocvm);
        }