public ActionResult Index(TotalUnionDto totalUnionDto)
        {
            var gradientCalculate = new GradientCalculate(totalUnionDto);
            var result            = gradientCalculate.GetResult();

            return(View(result));
        }
        //private DateTime _dateTimeForPeriodOne;

        public GradientCalculate(TotalUnionDto totalUnionDto)
        {
            _context       = new DbEntities();
            _totalUnionDto = totalUnionDto;
            _dateTimeNow   = new DateTime(2018, 10, 8, 18, 56, 20);
            //_dateTimeNow = DateTime.Now;
        }
        public TotalUnionDto GetResult()
        {
            TotalUnionDto totalUnionDto = new TotalUnionDto();
            var           calculate     = Calculate(_totalUnionDto, _totalUnionDto.PeriodOne, "1");

            totalUnionDto.Results.AddRange(calculate);
            return(totalUnionDto);
        }
        public ActionResult Index()
        {
            var result = new TotalUnionDto();

            return(View(result));
        }
        private List <ResultDto> Calculate(TotalUnionDto totalUnionDto, PeriodDto periodDto, string periodNumber)
        {
            List <ResultDto> resulList = new List <ResultDto>();
            var dateTimeForPeriod      = GetDateTimeForPeiod(periodDto);
            int timeFault = 10;

            foreach (var element in totalUnionDto.MarketTypes)
            {
                var bitrexForDateTimeNow = _context.Bittrexes
                                           .Where(w => ((w.Created.Year == _dateTimeNow.Year &&
                                                         w.Created.Month == _dateTimeNow.Month &&
                                                         w.Created.Day == _dateTimeNow.Day &&
                                                         w.Created.Hour == _dateTimeNow.Hour &&
                                                         w.Created.Minute == _dateTimeNow.Minute &&
                                                         w.Created.Second >= _dateTimeNow.Second)
                                                        ||
                                                        (w.Created.Year == _dateTimeNow.Year &&
                                                         w.Created.Month == _dateTimeNow.Month &&
                                                         w.Created.Day == _dateTimeNow.Day &&
                                                         w.Created.Hour == _dateTimeNow.Hour &&
                                                         w.Created.Minute == _dateTimeNow.Minute &&
                                                         w.Created.Second >= _dateTimeNow.Second + timeFault))
                                                  &&
                                                  w.MarketName == element.MarketTypeTitle)
                                           .ToList()
                                           .FirstOrDefault();
                var bitrexForPeriod = _context.Bittrexes
                                      .Where(w => ((w.Created.Year == dateTimeForPeriod.Year &&
                                                    w.Created.Month == dateTimeForPeriod.Month &&
                                                    w.Created.Day == dateTimeForPeriod.Day &&
                                                    w.Created.Hour == dateTimeForPeriod.Hour &&
                                                    w.Created.Minute == dateTimeForPeriod.Minute &&
                                                    w.Created.Second >= dateTimeForPeriod.Second)
                                                   ||
                                                   (w.Created.Year == dateTimeForPeriod.Year &&
                                                    w.Created.Month == dateTimeForPeriod.Month &&
                                                    w.Created.Day == dateTimeForPeriod.Day &&
                                                    w.Created.Hour == dateTimeForPeriod.Hour &&
                                                    w.Created.Minute == dateTimeForPeriod.Minute &&
                                                    w.Created.Second <= dateTimeForPeriod.Second + timeFault))
                                             &&
                                             w.MarketName == element.MarketTypeTitle)
                                      .ToList()
                                      .FirstOrDefault();

                if (bitrexForDateTimeNow.Ask >= _totalUnionDto.Volume && bitrexForPeriod.Ask >= _totalUnionDto.Volume)
                {
                    var gradient = Convert.ToInt32((bitrexForDateTimeNow.Ask / bitrexForPeriod.Ask - 1) * 100);

                    _result = new ResultDto();

                    _result.MarketType    = element.MarketTypeTitle;
                    _result.CalculateDate = DateTime.Now;
                    _result.Gradient      = gradient;
                    _result.Period        = periodNumber;

                    resulList.Add(_result);
                }
            }

            return(resulList);
        }