Esempio n. 1
0
        public async Task <ProductReturnModel> UpdateProduct(ProductInsertModel model, long productId)
        {
            using (var transaction = await _context.Database.BeginTransactionAsync())
            {
                try
                {
                    var product = await _context.Products.FirstOrDefaultAsync(p => p.Id == productId);

                    if (product == null)
                    {
                        throw new ProductNotFoundException();
                    }

                    _mapper.Map(model, product);

                    _context.Products.Update(product);
                    await _context.SaveChangesAsync();

                    transaction.Commit();

                    return(_mapper.Map <Product, ProductReturnModel>(product));
                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
Esempio n. 2
0
        public async Task <ProductReturnModel> AddProduct(ProductInsertModel model)
        {
            using (var transaction = await _context.Database.BeginTransactionAsync())
            {
                try
                {
                    var product = _mapper.Map <ProductInsertModel, Product>(model);
                    product.AddedDate = DateTime.UtcNow;
                    _context.Products.Add(product);

                    await _context.SaveChangesAsync();

                    transaction.Commit();

                    return(_mapper.Map <Product, ProductReturnModel>(product));
                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
        public async Task <IActionResult> UpdateProduct(long id, [FromBody] ProductInsertModel model)
        {
            var result = await _productService.UpdateProduct(model, id);

            return(ApiResponder.RespondSuccess(result));
        }
        public async Task <IActionResult> InsertProduct([FromBody] ProductInsertModel model)
        {
            var result = await _productService.AddProduct(model);

            return(ApiResponder.RespondSuccess(result));
        }