public async Task<HttpResponseMessage> CreateAsync(Product model) { _entityContext.Products.Add(model); await _entityContext.SaveChangesAsync(); var response = Request.CreateResponse(HttpStatusCode.Created); var uri = Url.Link(RetrieveProductRoute, new {id = model.Id}); response.Headers.Location = new Uri(uri); return response; }
/// <summary> /// Idempotent product creation /// </summary> /// <param name="context">The entity context</param> /// <param name="name">The product name</param> /// <param name="description">The product description</param> /// <param name="quantityAvailable">The product quantity available</param> public static Product TryAddProduct(this EntityContext context, string name, string description, int quantityAvailable) { Condition.Requires(context, "context").IsNotNull(); var product = context.Products.FirstOrDefault(o => o.Name == name); if (null == product) { product = new Product(name) {Description = description, QuantityAvailable = quantityAvailable}; context.Products.Add(product); } return product; }