Exemplo n.º 1
0
        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];
        }
Exemplo n.º 2
0
 public DailyConsumptionModel(IBlinkData bd, ILogger <DailyConsumptionModel> log)
 {
     this.bd  = bd;
     this.log = log;
     Blinks   = new List <Blink>();
 }
Exemplo n.º 3
0
 public CounterController(ILogger <CounterController> log, BlinkDataContext db, IBlinkData blinkData)
 {
     this.log       = log ?? throw new ArgumentNullException(nameof(log));
     blinkDb        = db;
     this.blinkData = blinkData;
 }
Exemplo n.º 4
0
 public AnalysisController(IBlinkData data)
 {
     Data = data;
 }