示例#1
0
        public int Insert(PedidoModel model)
        {
            bool pedidoExists = _context.Pedidos.Where(x => x.NumPedido == model.Pedido).Any();

            if (!pedidoExists)
            {
                if (model.Itens == null || model.Itens.Count == 0)
                {
                    throw new Exception("Não é possível inserir um pedido sem itens.");
                }

                PedidoEntity pedido = new PedidoEntity()
                {
                    NumPedido = model.Pedido,
                    Itens     = model.Itens.Select(x => new ItemEntity()
                    {
                        Descricao     = x.Descricao,
                        PrecoUnitario = x.PrecoUnitario,
                        Quantidade    = x.Qtd,
                    }).ToList()
                };

                _context.Pedidos.Add(pedido);
                _context.SaveChanges();
                return(pedido.Id);
            }
            else
            {
                throw new Exception("Pedido já existe!");
            }
        }
        //POST: ADICIONAR UMA PESSOA
        public void AddPessoa(PessoaModel pessoa)
        {
            if (!pessoa.Senha.StartsWith("$2b$10$"))
            {
                string passToHash = "c0dVc10R" + pessoa.Senha + "^~++45";
                string salt       = BCrypt.Net.BCrypt.GenerateSalt();
                string hash       = BCrypt.Net.BCrypt.HashPassword(passToHash, salt);
                pessoa.Senha = hash;
            }

            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    var checagemCpf   = _context.Pessoas.SingleOrDefault(p => p.Cpf == pessoa.Cpf);
                    var checagemEmail = _context.Pessoas.SingleOrDefault(p => p.Email == pessoa.Email);
                    if (checagemCpf == null && checagemEmail == null)
                    {
                        _context.Pessoas.Add(pessoa);
                        _context.SaveChanges();
                        transaction.Commit();
                    }
                    else
                    {
                        string propriedade = checagemCpf != null ? "CPF" : "E-mail";
                        throw new Exception($"Funcionário com mesmo {propriedade} já cadastrado.");
                    }
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }
            }
        }
示例#3
0
        public void Remove(long id)
        {
            var entity = _contextDb.Phones.First(u => u.number == id);

            _contextDb.Phones.Remove(entity);
            _contextDb.SaveChanges();
        }
        public RequestResponse InsertDb()
        {
            var response = new RequestResponse();

            try
            {
                using (var db = new DesafioDbContext())
                {
                    this.dataInclusao = DateTime.Now;
                    if (db.CheckIfPessoaValid(this))
                    {
                        db.Pessoa.Add(this);
                        db.SaveChanges();
                        response.message       = "Pessoa cadastrado com successo";
                        response.message      += " com Id: ";
                        response.message      += this.pessoaId;
                        response.dateInsertion = this.dataInclusao.ToLongDateString();
                    }
                    else
                    {
                        response.message  = "Houve um erro de cadastro" + Environment.NewLine;
                        response.message += "Esse item ja existe.";
                    }
                }
            }
            catch (Exception ex)
            {
                response.message  = "Houve um erro de cadastro" + Environment.NewLine;
                response.message += ex.Message;
            }

            return(response);
        }
示例#5
0
 //POST: ADICIONAR CONTA
 public void AddConta(ContaModel Conta)
 {
     using (var transaction = _context.Database.BeginTransaction())
     {
         try
         {
             _context.Contas.Add(Conta);
             _context.SaveChanges();
             transaction.Commit();
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             throw ex;
         }
     }
 }
示例#6
0
        public void UpdateLogin(User user)
        {
            var userBase = _dbContext.Users.Where(u => u.Email == user.Email).FirstOrDefault();

            // Validate entity is not null
            if (userBase != null)
            {
                userBase.LastLogin = DateTime.Now;
                _dbContext.Users.Update(userBase);
                _dbContext.SaveChanges();
            }
        }
示例#7
0
 //POST: ADICIONAR TRANSAÇÃO
 public void AddTransacao(TransacaoModel transacao)
 {
     //COMEÇAR A TRANSAÇÃO
     using (var transaction = _context.Database.BeginTransaction())
     {
         try
         {
             //PEGAR A CONTA DE DESTINO DA TRANSAÇÃO
             var conta = _context.Contas.Find(transacao.ContaId);
             //SE A CONTA EXISTIR
             if (conta != null)
             {
                 //SE FOR UMA TRANSAÇÃO DE DÉBITO
                 if (transacao.TipoTransacao == TipoTransacaoEnum.Saque)
                 {
                     //CHECAR SE EXISTE SALDO SUFICIENTE NA CONTA
                     if (conta.Saldo > transacao.Valor)
                     {
                         //PEGAR TODAS AS TRANSAÇÕES REALIZADAS NO DIA
                         var transacoesDoDia = _context.Transacoes.Where(t => t.ContaId == transacao.ContaId)
                                               .Where(t => t.TipoTransacao == TipoTransacaoEnum.Saque)
                                               .Where(t => t.DataTransacao.Date == DateTime.Now.Date);
                         //SOMAR OS VALORES SACADOS NO DIA
                         decimal debitos = transacao.Valor;
                         foreach (var transacaoDoDia in transacoesDoDia)
                         {
                             debitos += transacaoDoDia.Valor;
                         }
                         //SE OS DEBITOS FOREM MAIORES QUE O LIMITE DE SAQUE DIÁRIO
                         if (debitos > conta.LimiteSaqueDiario)
                         {
                             throw new Exception("Limite de saque diário ultrapassado");
                         }
                         //SE EXISTIR SALDO E POSSUIR LIMITE
                         else
                         {
                             //DIMINUIR O VALOR DO SALDO
                             conta.Saldo -= transacao.Valor;
                             _context.Update(conta);
                             _context.SaveChanges();
                             //ADICIONAR A TRANSAÇÃO AO BANCO
                             _context.Transacoes.Add(transacao);
                             _context.SaveChanges();
                             transaction.Commit();
                         }
                     }
                     //SE NÃO ESTIVER SALDO SUFICIENTE
                     else
                     {
                         throw new Exception("Saldo insuficiente");
                     }
                 }
                 //SE FOR UMA TRANSAÇÃO DE CREDITO
                 else
                 {
                     //ADICIONAR VALOR AO SALDO DA CONTA
                     conta.Saldo += transacao.Valor;
                     _context.Update(conta);
                     _context.SaveChanges();
                     //ADICIONAR TRANSACAO AO BANCO
                     _context.Transacoes.Add(transacao);
                     _context.SaveChanges();
                     transaction.Commit();
                 }
             }
             else
             {
                 throw new Exception("Conta não encontrada.");
             }
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             throw ex;
         }
     }
 }
示例#8
0
 public void Add(Usuario user)
 {
     _contextDb.Usuarios.Add(user);
     _contextDb.SaveChanges();
 }