// POST api/product
        public HttpResponseMessage Post(ProductsRequest request)
        {
            if (ModelState.IsValid)
            {
                var products = db.AddProducts(request);

                var response = Request.CreateResponse(HttpStatusCode.Created, new DataSourceResult {
                    Data = products
                });
                response.Headers.Location = new Uri(Url.Link("DefaultApi", null));
                return(response);
            }
            else
            {
                var errors = ModelState.Values.SelectMany(v => v.Errors).Select(error => error.ErrorMessage);

                return(Request.CreateResponse(HttpStatusCode.BadRequest, errors));
            }
        }