public async Task <ActionResult <FoodDto> > CreateFood(FoodForCreationDto food)
        {
            var isFoodCategoryExists = await this.foodsService
                                       .IsFoodCategoryExistsAsync(food.FoodCategoryId);

            if (!isFoodCategoryExists)
            {
                return(NotFound(string.Format(FoodCategoriesConstants.UnexistingFoodCategoryId, food.FoodCategoryId)));
            }

            var isFoodExists = await this.foodsService
                               .IsFoodExistsAsync(food.Name);

            if (isFoodExists)
            {
                return(BadRequest(FoodsConstants.ExistingFoodByName));
            }

            var result = await this.foodsService
                         .CreateFoodAsync(food);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }

            return(CreatedAtRoute("GetFood",
                                  new { foodId = result.Data.Id },
                                  result.Data));
        }
Beispiel #2
0
        /// <summary>
        /// Создать позицию
        /// </summary>
        /// <param name="food"></param>
        public void AddFood(FoodForCreationDto food)
        {
            string url = @"http://localhost:5000/api/Foods/wpf";

            _ = HttpClient.PostAsync(
                requestUri: url,
                content: new StringContent(JsonConvert.SerializeObject(food), Encoding.UTF8,
                                           mediaType: "application/json")
                ).Result;
        }
        public IActionResult PartiallyUpdateFood([FromRoute] int foodId,
                                                 [FromBody] FoodForCreationDto patchFood)
        {
            if (patchFood == null)
            {
                return(BadRequest());
            }

            var FoodEntity = _foodInfoRepository.GetFood(foodId);

            if (FoodEntity == null)
            {
                return(StatusCode(500, "The food you requested is not available"));
            }

            if (patchFood.Name != null)
            {
                if (patchFood.Name.Length > 50)
                {
                    return(StatusCode(500, "The name is too long"));
                }
                FoodEntity.Name = patchFood.Name;
            }

            if (patchFood.Description != null)
            {
                FoodEntity.Description = patchFood.Description;
            }

            if (patchFood.Cost != null)
            {
                FoodEntity.Cost = patchFood.Cost;
            }

            if (patchFood.CreatedAtDate != null)
            {
                FoodEntity.CreatedAtDate = patchFood.CreatedAtDate;
            }

            if (patchFood.RestaurantId != null)
            {
                FoodEntity.RestaurantId = patchFood.RestaurantId;
            }

            patchFood.UpdatedAtDate = DateTime.Now;

            if (!_foodInfoRepository.Save())
            {
                return(StatusCode(500, "Something happened while handling your request"));
            }

            return(Ok(FoodEntity));
        }
        public IActionResult CreateFood([FromBody] FoodForCreationDto foodInfo)
        {
            var foodError = "Please look at your data and make sure it's not empty, incorrect, or has values that are the same!";

            Food food = new Food();


            if (foodInfo == null)
            {
                return(BadRequest(foodError));
            }

            food.Name = foodInfo.Name;
            if (food.Name == null || food.Name.Length > 10)
            {
                return(StatusCode(500, "Sorry, the name is too long, or you forgot to enter it"));
            }


            food.Description = foodInfo.Description;
            if (food.Description == null || food.Name.Length > 100)
            {
                return(StatusCode(500, "Sorry, the description is too long, or you forgot to enter it"));
            }

            food.RestaurantId = foodInfo.RestaurantId;


            food.Cost = foodInfo.Cost;
            if (food.Cost == null || food.Cost.Equals(0))
            {
                return(StatusCode(500, "Sorry, the cost cannot be 0"));
            }


            food.CreatedAtDate = DateTime.Now;
            food.UpdatedAtDate = food.CreatedAtDate;


            _foodInfoRepository.AddFood(food);

            if (!_foodInfoRepository.Save())
            {
                return(StatusCode(500, "Something went wrong during the request..."));
            }


            return(Ok(food));
        }
        public IActionResult UpdateFood([FromRoute] int foodId, [FromBody] FoodForCreationDto foodEdit)
        {
            var foodToEdit = _foodInfoRepository.GetFood(foodId);

            Food food = new Food();


            if (foodToEdit.Name != foodEdit.Name)
            {
                foodToEdit.Name = foodEdit.Name;
            }

            if (foodToEdit.Description != foodEdit.Description)
            {
                foodToEdit.Description = foodToEdit.Description;
            }

            if (foodToEdit.Cost != foodEdit.Cost)
            {
                foodToEdit.Cost = foodEdit.Cost;
            }

            if (foodToEdit.RestaurantId != foodEdit.RestaurantId)
            {
                foodToEdit.RestaurantId = foodEdit.RestaurantId;
            }

            if (foodToEdit.CreatedAtDate != foodEdit.CreatedAtDate)
            {
                foodToEdit.CreatedAtDate = foodEdit.CreatedAtDate;
            }

            foodToEdit.UpdatedAtDate = DateTime.Now;

            if (!_foodInfoRepository.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            return(Ok(foodToEdit));
        }
Beispiel #6
0
        public async Task <Result <FoodDto> > CreateFoodAsync(FoodForCreationDto food)
        {
            var foodForDb = food
                            .MapTo <Food>();

            if (foodForDb == null)
            {
                throw new ArgumentNullException(nameof(food));
            }

            var isFoodExists = await IsFoodExistsAsync(food.Name);

            if (isFoodExists)
            {
                return(Result <FoodDto> .Failure(new List <string> {
                    FoodsConstants.ExistingFoodByName
                }));
            }

            var messageData = new FoodCreatedMessage {
                FoodName = foodForDb.Name
            };

            var message = new Message(messageData);

            await this.Save(foodForDb, message);

            await this.publisher.Publish(messageData);

            await this.MarkMessageAsPublished(message.Id);

            var foodFromDb = await context
                             .Foods
                             .Include(x => x.FoodCategory)
                             .FirstOrDefaultAsync(x => x.Name == food.Name);

            return(Result <FoodDto> .SuccessWith(foodFromDb
                                                 .MapTo <FoodDto>()));
        }