// E.g. POST http://localhost/Products
        public async Task <IHttpActionResult> Post(T obj)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            TableForT().Add(obj);
            await db.SaveChangesAsync();

            return(Created(obj));
        }
Example #2
0
        /// <summary>
        /// Salvar informações na base de dados de forma assíncrona.
        /// </summary>
        public async Task <bool> CommitAsync()
        {
            using (var transaction = await _dbContext.Database.BeginTransactionAsync())
            {
                try
                {
                    await _dbContext.SaveChangesAsync();

                    await Task.Run(() => transaction.Commit());

                    OperationSuccesful = true;
                    OperationMessage   = Info.OperationSuccess;
                }
                catch (DbUpdateException ex)
                {
                    transaction.Rollback();
                    OperationSuccesful = false;
                    OperationMessage   = string.Format(Errors.Rollback_0, ex.GetMessages());
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    OperationSuccesful = false;
                    OperationMessage   = string.Format(Errors.Error_0, ex.GetMessages());
                }
                finally
                {
                    DetachAll();
                }
            }

            return(OperationSuccesful);
        }
Example #3
0
        public async Task <int> CommitAsync()
        {
            var transId = -1;

            if (_context == null)
            {
                throw new ArgumentNullException(nameof(_context));
            }

            else if (_context.ChangeTracker.HasChanges())
            {
                using (var dbContextTransaction = await _context.Database.BeginTransactionAsync())
                {
                    try
                    {
                        transId = await _context.SaveChangesAsync();

                        dbContextTransaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                        throw new Exception(ex.ToString());
                    }
                }
            }

            return(transId);
        }
Example #4
0
        public async Task AddAsync(TEntity entity)
        {
            await _context.Set <TEntity>().AddAsync(entity);

            await _context.SaveChangesAsync();
        }