private decimal CalcularValorTarifa(TimeOfUseEnum timeOfUse, decimal totalKw) { switch (timeOfUse) { case TimeOfUseEnum.HorarioPonta: return(totalKw * ValorTarifaPonta); case TimeOfUseEnum.HorarioForaPonta: return(totalKw * ValorTarifaForaPonta); case TimeOfUseEnum.Intermediario: return(totalKw * ValorTarifaIntermediario); default: return(0); } }
private ConsumoCalculado MontarConsumoCalculado(IEnumerable <IGrouping <TimeOfUseEnum, Measurements> > groupby, TimeOfUseEnum tipo) { var consumosCalculados = new List <ConsumoCalculado>(); var consumoKwh = groupby.Where(gr => gr.Key == tipo).SelectMany(m => m).Sum(m => m.Value ?? 0); var consumoReais = CalcularValorTarifa(tipo, consumoKwh); return(new ConsumoCalculado { TimeOfUseEnum = tipo, KW = consumoKwh, Reais = consumoReais }); }