public async Task <List <DayWeight> > GetWeightBetween(DayPoint startDate, DayPoint endDate) { var list = await Where(w => (w.Date.Year == startDate.Year && w.Date.Year < endDate.Year && w.Date.DayOfYear >= startDate.Day) || (w.Date.Year == startDate.Year && w.Date.Year == endDate.Year && w.Date.DayOfYear >= startDate.Day && w.Date.DayOfYear <= endDate.Day) || (w.Date.Year > startDate.Year && w.Date.Year < endDate.Year) || (w.Date.Year == endDate.Year && w.Date.Year > startDate.Year && w.Date.Day <= endDate.Day)) .Select(w => new DayWeight() { DayPoint = new DayPoint() { Day = w.Date.DayOfYear, Year = w.Date.Year }, Weight = w.Value }).ToListAsync(); if (list.Any() == false) { return(list); } list = list.OrderBy(w => w.DayPoint).ToList(); DayWeight last = list[0]; DayRange dayRange = new DayRange(startDate, endDate); dayRange.ForEach(d => { var weight = list.FirstOrDefault(w => w.DayPoint == d); if (weight != null) { last = weight; } else { list.Add(new DayWeight() { Weight = last.Weight, DayPoint = d }); } }); return(list); }
public DayWeightViewModel(DayWeight dw) { Value = dw.Weight; DateTime = dw.DayPoint.ToDateTime().ToShortDateString(); }