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()); }
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(); }