public void Save(Transporte item) { Verify(item); if (item.IdeTransporte > 0) { var itemUpd = DbConnection.Transporte .Where(x => x.IdeTransporte == item.IdeTransporte) .Include(x => x.Passageiro) .FirstOrDefault(); itemUpd.UpdateValues(item); foreach (var obj in itemUpd.Passageiro) { DbConnection.Attach(obj); DbConnection.Remove(obj); } if (item.Passageiro != null) { itemUpd.Passageiro = item.Passageiro.Select(x => new Entities.Passageiro().UpdateValues(x)).ToList(); } DbConnection.Transporte.Attach(itemUpd); DbConnection.Entry(itemUpd).State = EntityState.Modified; } else { var itemNew = new Entities.Transporte(); itemNew.UpdateValues(item); itemNew.DthInclusao = DateTime.Now; if (item.Passageiro != null) { itemNew.Passageiro = item.Passageiro.Select(x => new Entities.Passageiro().UpdateValues(x)).ToList(); } DbConnection.Transporte.Add(itemNew); } DbConnection.SaveChanges(); // O e-mail será enviado ao Motorista somente se a viagem não tiver sido iniciada if (!item.DthPartida.HasValue) { EnviarEmail(item); } }
private string BuscarStatus(Entities.Transporte item) { var status = "Aguardando Início da Viagem"; if (item.DthPartida.HasValue) { status = "Viagem Iniciada"; } if (item.DthChegada.HasValue) { status = "Viagem Finalizada"; } return(status); }