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