public IActionResult Update(int id, [FromBody] FoodUpdateModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (model.id != id) { return(BadRequest("Invalid id")); } var food = foodContext.Data.FirstOrDefault(x => x.id == model.id); if (food == null) { return(NotFound()); } model.name = model.name.Trim(); var duplicatedFood = foodContext.Data.FirstOrDefault(x => x.name.Equals(model.name, System.StringComparison.OrdinalIgnoreCase) && x.id != model.id); if (duplicatedFood != null) { return(BadRequest("Duplicate in food name")); } food.name = model.name; food.mainPart = model.mainPart.Value; food.type = model.type.Value; food.difficulty = model.difficulty.Value; this.foodContext.SaveChanges(); var descriptionItem = this.descriptionContext.Data.FirstOrDefault(x => x.foodId == model.id); if (descriptionItem == null && string.IsNullOrEmpty(model.description)) { return(Ok()); } if (descriptionItem == null /*&& !string.IsNullOrEmpty(model.description)*/) { var newDescription = new FoodDescriptionModel { foodId = model.id, description = model.description }; this.descriptionContext.Data.Add(newDescription); } else if (descriptionItem != null && string.IsNullOrEmpty(model.description)) { this.descriptionContext.Data.Remove(descriptionItem); } else /*if (descriptionItem != null && !string.IsNullOrEmpty(model.description))*/ { descriptionItem.description = model.description; } this.descriptionContext.SaveChanges(); return(Ok()); }
public IActionResult Create([FromBody] FoodCreateModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } model.name = model.name.Trim(); var exictedFood = foodContext.Data.FirstOrDefault(x => x.name.Equals(model.name, System.StringComparison.OrdinalIgnoreCase)); if (exictedFood != null) { return(BadRequest(new { message = "duplicated food name." })); } var newFood = new FoodModel { id = this.foodContext.Data.Any() ? this.foodContext.Data.Max(x => x.id) + 1 : 1, difficulty = model.difficulty.Value, mainPart = model.mainPart.Value, name = model.name, type = model.type.Value }; this.foodContext.Data.Add(newFood); this.foodContext.SaveChanges(); if (!string.IsNullOrEmpty(model.description)) { var newDescription = new FoodDescriptionModel { foodId = newFood.id, description = model.description }; this.descriptionContext.Data.Add(newDescription); this.descriptionContext.SaveChanges(); } return(new OkObjectResult(newFood)); }