Beispiel #1
0
        public ActionResult Disponibilidade(DisponibilidadeViewModel dvm)
        {
            DisponibilidadePostViewModel dpvm = GetDVMFromRequest(Request);

            List <AlertaDeDisponibilidade> alertasExistentes = db.Alertas.Include(a => a.Email).ToList();

            foreach (var alertaExistente in alertasExistentes)
            {
                if (!dpvm.alertas.Any(a => a.Key == alertaExistente.Id))
                {
                    foreach (Insumo insumo in db.Insumos.Where(ins => ins.Alerta.Id == alertaExistente.Id))
                    {
                        insumo.Alerta = null;
                    }
                    db.Alertas.Remove(alertaExistente);
                }
            }

            foreach (var alertaNovo in dpvm.alertas)
            {
                if (alertasExistentes.Any(a => a.Id == alertaNovo.Key))
                {
                    AlertaDeDisponibilidade alertaExistente = db.Alertas.Find(alertaNovo.Key);
                    alertaExistente.Ativado          = alertaNovo.Value.Ativado;
                    alertaExistente.Email            = alertaNovo.Value.Email;
                    alertaExistente.QuantidadeMinima = alertaNovo.Value.QuantidadeMinima;
                }
                else
                {
                    AlertaDeDisponibilidade alertaASerInserido = new AlertaDeDisponibilidade()
                    {
                        Ativado          = alertaNovo.Value.Ativado,
                        Email            = alertaNovo.Value.Email,
                        Id               = alertaNovo.Key,
                        QuantidadeMinima = alertaNovo.Value.QuantidadeMinima
                    };

                    db.Alertas.Add(alertaASerInserido);
                }
            }

            db.SaveChanges();

            return(Disponibilidade());
        }
Beispiel #2
0
        public void IncluirAlertas()
        {
            List <Insumo> insumos = _db.Insumos.Include(i => i.Alerta).ToList();

            foreach (Insumo insumo in insumos)
            {
                bool addAlerta = random.NextDouble() < 0.5;

                if (addAlerta)
                {
                    Email e = new Email("fulano" + random.Next(10).ToString() + "@gmail.com");
                    AlertaDeDisponibilidade a = new AlertaDeDisponibilidade()
                    {
                        Email            = e,
                        QuantidadeMinima = random.NextDouble() * 500,
                        Ativado          = true
                    };
                    insumo.Alerta = a;
                }
            }
            _db.SaveChanges();
        }