public ApiProduct Put([FromBody] ProductApiPutRequest productData) { if (string.IsNullOrWhiteSpace(productData.Name)) { throw new ForagerApiException(ForagerApiExceptionCode.InvalidNameProvided); } var currentUserEmail = userInformation.GetUserEmail(); var currentUser = context.GetUserByEmail(currentUserEmail); var dataProduct = new Product() { Name = productData.Name.Trim(), Description = productData.Description?.Trim(), Units = productData.Units?.Trim(), CreatedBy = currentUser, CreatedOn = DateTime.Now }; dataProduct.FamilyProducts = currentUser.Families.Select(f => new FamilyProducts { Family = f, Product = dataProduct }).ToArray(); context.Products.Add(dataProduct); context.SaveChanges(); var product = ApiProduct.FromProduct(dataProduct); return(product); }
public ApiProduct Post(int id, [FromBody] ProductApiPutRequest productData) { if (string.IsNullOrWhiteSpace(productData.Name)) { throw new ForagerApiException(ForagerApiExceptionCode.InvalidNameProvided); } var existingProduct = context.Products.Include(p => p.Variants).SingleOrDefault(f => f.Id == id); if (existingProduct == null) { throw new ForagerApiException(ForagerApiExceptionCode.ProductNotFound); } existingProduct.Name = productData.Name.Trim(); existingProduct.Description = productData.Description?.Trim(); existingProduct.Units = productData.Units?.Trim(); context.SaveChanges(); var product = ApiProduct.FromProduct(existingProduct); return(product); }