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); }