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);
            }
        }
Exemplo n.º 2
0
        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);
        }