public async Task<IHttpActionResult> Edit(int id, Product product)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != product.ProductID)
            {
                return BadRequest();
            }

            try
            {
                var model = ProductRepository.FindOneBy(x => x.ProductID == id);

                if (model != null)
                {
                    model.ProductName = product.ProductName;
                    model.SupplierID = product.SupplierID;
                    model.CategoryID = product.CategoryID;
                    model.QuantityPerUnit = product.QuantityPerUnit;
                    model.UnitPrice = product.UnitPrice;
                    model.UnitsInStock = product.UnitsInStock;
                    model.UnitsOnOrder = product.UnitsOnOrder;
                    model.ReorderLevel = product.ReorderLevel;
                    model.Discontinued = product.Discontinued;
                }

                await ProductRepository.UpdateAsync(model);
            }
            catch (DbUpdateConcurrencyException)
            {
                var productToEdit = ProductRepository.FindOneBy(x => x.ProductID == id);

                if (productToEdit != null)
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
        public IHttpActionResult Create(Product product)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            try
            {
                var model = new Product()
                {
                    ProductName = product.ProductName,
                    SupplierID = product.SupplierID,
                    CategoryID = product.CategoryID,
                    QuantityPerUnit = product.QuantityPerUnit,
                    UnitPrice = product.UnitPrice,
                    UnitsInStock = product.UnitsInStock,
                    UnitsOnOrder = product.UnitsOnOrder,
                    ReorderLevel = product.ReorderLevel,
                    Discontinued = product.Discontinued
                };

                ProductRepository.Save(model);
            }
            catch (Exception)
            {
                throw;
            }

            return CreatedAtRoute("DefaultApi", new { id = product.ProductID }, product);
        }