public void Save(Manutencao item) { Verify(item); if (item.IdeManutencao > 0) { var itemUpd = DbConnection.Manutencao .Where(x => x.IdeManutencao == item.IdeManutencao) .FirstOrDefault(); itemUpd.UpdateValues(item); foreach (var obj in itemUpd.ManutencaoProduto) { DbConnection.Attach(obj); DbConnection.Remove(obj); } if (item.ManutencaoProduto != null) { itemUpd.ManutencaoProduto = item.ManutencaoProduto.Select(x => new Entities.ManutencaoProduto().UpdateValues(x)).ToList(); } DbConnection.Manutencao.Attach(itemUpd); DbConnection.Entry(itemUpd).State = EntityState.Modified; } else { var itemNew = new Entities.Manutencao(); itemNew.UpdateValues(item); itemNew.DthEntrada = DateTime.Now; DbConnection.Manutencao.Add(itemNew); } DbConnection.SaveChanges(); }
public void Save(Manutencao item) { Verify(item); var emailEnviado = false; if (item.IdeManutencao > 0) { var itemUpd = DbConnection.Manutencao .Where(x => x.IdeManutencao == item.IdeManutencao) .Include(x => x.ManutencaoProduto) .FirstOrDefault(); emailEnviado = itemUpd.DthSaida.HasValue; itemUpd.UpdateValues(item); foreach (var obj in itemUpd.ManutencaoProduto) { DbConnection.Attach(obj); DbConnection.Remove(obj); } if (item.ManutencaoProduto != null) { itemUpd.ManutencaoProduto = item.ManutencaoProduto.Select(x => new Entities.ManutencaoProduto().UpdateValues(x)).ToList(); } DbConnection.Manutencao.Attach(itemUpd); DbConnection.Entry(itemUpd).State = EntityState.Modified; } else { var itemNew = new Entities.Manutencao(); itemNew.UpdateValues(item); itemNew.DthEntrada = Convert.ToDateTime(DateTime.Now.ToString("dd/MM/yyyy HH:mm")); DbConnection.Manutencao.Add(itemNew); } DbConnection.SaveChanges(); // O e-mail será enviado ao Setor de Transporte, quando a manutenção do veículo for concluída. if ((!emailEnviado) && (item.DthSaida.HasValue)) { EnviarEmail(item); } }