public MilkSessionView(IEnumerable <Milk> milks, DateTime dateToDisplay, TraqType traqType) { if (milks == null) { throw new ArgumentNullException(); } SessionDate = dateToDisplay.Date; DailyMilks = milks.Where(milk => milk.StartTimePst.Date == SessionDate).OrderByDescending(milk => milk.StartTimePst); Total = milks.Count(); IsMaxDate = !(milks.Any(milk => milk.StartTimePst >= SessionDate.AddDays(1))); IsMinDate = !(milks.Any(milk => milk.StartTimePst < SessionDate)); IsActiveSession = milks.Any(milk => milk.EndTimeUtc == null); ChorerStats = milks.GroupBy(milk => milk.Chorer) .Select(group => new ChorerSessionStat() { UserName = group.First().Chorer?.GetDescription() ?? "Unknown", Total = group.Count() }); HourlyVolumeStats = milks.Where(milk => milk.Volume != null).Select(group => new ValueDateSessionStat() { Date = group.StartTimePst, Value = (int)group.Volume }); DailyVolumeStats = milks.Where(milk => milk.Volume != null) .GroupBy(milk => milk.StartTimePst.Date).Select(group => new ValueDateSessionStat() { Date = group.First().StartTimePst, Value = group.Sum(g => (int)g.Volume) }); TraqType = traqType; }
public bool CanBuy(bool IsPreferred, bool IsAdmin) { if (IsAdmin) { return(true); } var timeNow = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, _pstZone); var timeCanBuy = SessionDate.AddDays(-1 * _buyDayMinimum).AddHours(2); return(timeNow >= (IsPreferred ? timeCanBuy.AddDays(-1) : timeCanBuy)); }
public DiaperChangeView(IEnumerable <Diaper> diapers, DateTime dateToDisplay) { if (diapers == null) { throw new ArgumentNullException(); } SessionDate = dateToDisplay.Date; Total = diapers.Count(); IsMaxDate = !(diapers.Any(diaper => diaper.ChangeTimePst >= SessionDate.AddDays(1))); IsMinDate = !(diapers.Any(diaper => diaper.ChangeTimePst < SessionDate)); ChorerStats = diapers.GroupBy(diaper => diaper.Chorer) .Select(group => new ChorerSessionStat() { UserName = group.First().Chorer?.GetDescription() ?? "Unknown", Total = group.Count() }); DailyChanges = diapers.Where(diaper => diaper.ChangeTimePst.Date == SessionDate).OrderByDescending(diaper => diaper.ChangeTimePst); }
public SettlementSession GetPrevious() { return(new SettlementSession(Instrument, Instrument.ThisOrPreviousTradingDay(SessionDate.AddDays(-1)))); }
public SettlementSession GetNext() { return(new SettlementSession(Instrument, Instrument.ThisOrNextTradingDay(SessionDate.AddDays(1)))); }