public IndexModel(IBlinkData blinks, ILogger <IndexModel> log) { var w = Stopwatch.StartNew(); log.LogInformation($"started @ {w.Elapsed.TotalMilliseconds}"); BlinkCount = blinks.Count.ToString("##,#"); var now = DateTimeOffset.Now; log.LogInformation($"loaded @ {w.Elapsed.TotalMilliseconds}"); LastBlinks = blinks.BySource.ToDictionary(g => g.Key, g => g.Value.Last()); log.LogInformation($"LastBlinks @ {w.Elapsed.TotalMilliseconds}"); var currentPower = blinks.GetCurrentPowerConsumption(); AveragePeriod = currentPower.AveragingPeriod; CurrentPowerConsumption = currentPower.Power.ToString("0.0"); log.LogInformation($"power @ {w.Elapsed.TotalMilliseconds}"); PeriodConsumption = blinks.BySource .Select(g => { var @default = g.Value.All.First(); var firstOfYear = g.Value.All.LastOrDefault(b => b.Timestamp.Year == now.Year - 1) ?? @default; var firstOfMonth = g.Value.All.LastOrDefault(b => b.Timestamp.Month != now.Month) ?? @default; var firstOfWeek = g.Value.All.LastOrDefault(b => b.Timestamp < now.StartOfWeek()) ?? @default; var lastPoint = g.Value.Last(); return(lastPoint.Source, YearToDate: (lastPoint.Value - firstOfYear.Value), MonthToDate: (lastPoint.Value - firstOfMonth.Value), WeekToDate: (lastPoint.Value - firstOfWeek.Value)); }) .ToDictionary(i => i.Source); log.LogInformation($"period @ {w.Elapsed.TotalMilliseconds}"); DailyAverage = blinks.Averages[Source.Power]; }
public DailyConsumptionModel(IBlinkData bd, ILogger <DailyConsumptionModel> log) { this.bd = bd; this.log = log; Blinks = new List <Blink>(); }
public CounterController(ILogger <CounterController> log, BlinkDataContext db, IBlinkData blinkData) { this.log = log ?? throw new ArgumentNullException(nameof(log)); blinkDb = db; this.blinkData = blinkData; }
public AnalysisController(IBlinkData data) { Data = data; }