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; } } }
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); }
//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; } } }
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(); } }
//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; } } }
public void Add(Usuario user) { _contextDb.Usuarios.Add(user); _contextDb.SaveChanges(); }