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)); }
/// <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)); }
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>())); }