public async Task Update(T Objeto)
 {
     using (var data = new BaseContexto(_optionsBuilder))
     {
         data.Set <T>().Update(Objeto);
         await data.SaveChangesAsync();
     }
 }
예제 #2
0
        public async Task <T> Alterar(T entidade)
        {
            // await _context.IniciarTransaction();
            // _dbSet.Attach(entidade);
            _context.Entry(entidade).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(entidade);
        }
        public async Task <bool> ConfirmaCompraCarrinhoUsuario(string userId)
        {
            try
            {
                using (var banco = new BaseContexto(_OptionsBuilder))
                {
                    var compraUsuario = new CompraUsuario();
                    compraUsuario.ListaProdutos = new List <Produto>();

                    var produtoCarrinho = await(from p in banco.Produto
                                                join c in banco.CompraUsuario on p.Id equals c.ProdutoId
                                                where c.UserId.Equals(userId) && c.Estado == EstadoCompra.Produto_Carrinho
                                                select c).AsNoTracking().ToListAsync();

                    produtoCarrinho.ForEach(p =>
                    {
                        compraUsuario.CompraId = p.CompraId;
                        p.Estado = EstadoCompra.Produto_Comprado;
                    });

                    var compra = await banco.Compra.AsNoTracking().FirstOrDefaultAsync(c => c.Id == compraUsuario.CompraId);

                    if (compra != null)
                    {
                        compra.Estado = EstadoCompra.Produto_Comprado;
                    }

                    banco.Update(compra);
                    banco.UpdateRange(produtoCarrinho);
                    await banco.SaveChangesAsync();

                    return(true);
                }
            }
            catch (Exception erro)
            {
                return(false);
            }
        }