public async Task<IHttpActionResult> PutProduct(int id, ProductDTO productDto)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != productDto.Id)
            {
                return BadRequest();
            }

            _productWebBridge.Update(productDto);

            try
            {
                await _unitOfWorkAsync.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.OK);
        }
 public void Update(ProductDTO productDto)
 {
     var product = new Product();
     product.InjectFrom(productDto);
     product.ObjectState = ObjectState.Modified;
     _productService.Update(product);
 }
 public void Insert(ProductDTO productDto)
 {
     var product = new Product();
     product.InjectFrom(productDto);
     product.ObjectState = ObjectState.Added;
     _productService.Insert(product);
 }
 public async Task<ProductDTO> FindAsync(int id)
 {
     var product = await _productService.FindAsync(id);
     var productDto = new ProductDTO();
     productDto.InjectFrom(product);
     return productDto;
 }
        public async Task<IHttpActionResult> PostProduct(ProductDTO productDto)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            _productWebBridge.Insert(productDto);
            await _unitOfWorkAsync.SaveChangesAsync();

            return CreatedAtRoute("DefaultApi", new { id = productDto.Id }, productDto);
        }