public async Task <EnergySummaryDaily> Handle(DailyEnergySummaryCommand request, CancellationToken cancellationToken)
        {
            var dayData = await _energySummaryDocumentReadRepository.Fetch(request.Date);

            var results = new EnergySummaryDaily(
                date: request.Date,
                batteryCapacity: GetCapacity(request.Date, dayData)
                );

            return(results);
        }
        public async Task <HomeConsumptionDaily> Handle(DailyHomeConsumptionCommand request, CancellationToken cancellationToken)
        {
            var dayData = await _energySummaryDocumentReadRepository.Fetch(request.Date);

            var results = new HomeConsumptionDaily(
                date: request.Date,
                consumption: GetData(request.Date, dayData, a => a.ConsumptionWattHours),
                grid: GetData(request.Date, dayData, a => a.GridImportWattHours),
                solarConsumption: GetData(request.Date, dayData, a => Math.Min(a.ConsumptionWattHours - a.GridImportWattHours, a.SolarPowerGenerationWattHours)),
                batteryConsumption: GetData(request.Date, dayData, a => Math.Max(0, Math.Min(a.ConsumptionWattHours - a.GridImportWattHours - a.SolarPowerGenerationWattHours, a.BatteryDischargeWattHours))),
                batteryCharge: GetData(request.Date, dayData, a => a.BatteryChargeWattHours),

                solarExported: GetData(request.Date, dayData, a => Math.Max(0, a.SolarPowerGenerationWattHours
                                                                            - Math.Min(a.ConsumptionWattHours - a.GridImportWattHours, a.SolarPowerGenerationWattHours)
                                                                            - a.BatteryChargeWattHours))
                );

            return(results);
        }