Пример #1
0
        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);
        }
Пример #2
0
 public DayWeightViewModel(DayWeight dw)
 {
     Value    = dw.Weight;
     DateTime = dw.DayPoint.ToDateTime().ToShortDateString();
 }