Beispiel #1
0
        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());
        }
Beispiel #2
0
        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));
        }