private double SomaTotalKwh(PerfilConsumo perfil)
        {
            double somaRecursosKwh = 0;

            foreach (var item in perfil.ItemPerfils)
            {
                somaRecursosKwh += SomaValorRecurso(item);
            }
            return(somaRecursosKwh);
        }
 public int Post([FromBody] PerfilConsumo value)
 {
     using (var db = new dbContext())
     {
         value.Id = 0;
         value    = db.PerfilConsumo.Add(value);
         db.SaveChanges();
     }
     return(value.Id);
 }
        private double CalculaFaturaKwh(PerfilConsumo perfil)
        {
            double result = 0;

            if (perfil != null)
            {
                result = SomaTotalKwh(perfil);
            }
            return(result);
        }
        public PerfilConsumo CalculaFaturaReais(int IdPerfil)
        {
            PerfilConsumo result = null;

            using (var db = new dbContext())
            {
                var perfil = db.PerfilConsumo.Where(c => c.Id == IdPerfil).Include(i => i.ItemPerfils.Select(r => r.Recurso)).FirstOrDefault();
                if (perfil != null)
                {
                    perfil.ValorEstimado = SomaTotalFatura(perfil);
                    var totalKwh = CalculaFaturaKwh(perfil);
                    perfil.ConsumoDiario = totalKwh / 30;
                    perfil.ConsumoMensal = totalKwh;
                    result = perfil;
                }
                db.SaveChanges();
            }
            return(result);
        }
 public HttpResponseMessage Put(int id, [FromBody] PerfilConsumo value)
 {
     using (var db = new dbContext())
     {
         var perfilConsumo = db.PerfilConsumo.Where(c => c.Id == id).FirstOrDefault();
         if (perfilConsumo != null)
         {
             perfilConsumo.Descricao     = value.Descricao;
             perfilConsumo.Cofins        = value.Cofins;
             perfilConsumo.ConsumoDiario = value.ConsumoDiario;
             perfilConsumo.ConsumoMensal = value.ConsumoMensal;
             perfilConsumo.Icms          = value.Icms;
             perfilConsumo.Kwh           = value.Kwh;
             perfilConsumo.Pis           = value.Pis;
             perfilConsumo.Tipo          = value.Tipo;
             perfilConsumo.UsuarioId     = value.UsuarioId;
             perfilConsumo.ValorEstimado = value.ValorEstimado;
             db.SaveChanges();
             return(new HttpResponseMessage(HttpStatusCode.OK));
         }
         return(new HttpResponseMessage(HttpStatusCode.NoContent));
     }
 }
 private static double CalculaValorConsumo(PerfilConsumo perfil, double somaRecursos)
 {
     return((somaRecursos * ((double)perfil.Kwh + (double)perfil.Adicional + (((double)perfil.Kwh + (double)perfil.Adicional) * ((double)perfil.Icms) / (double)100))) + (somaRecursos * (((double)perfil.Cofins / (double)100) + ((double)perfil.Pis) / (double)100)));
 }
        private double SomaTotalFatura(PerfilConsumo perfil)
        {
            var somaRecursos = SomaTotalKwh(perfil);

            return(CalculaValorConsumo(perfil, somaRecursos));
        }