public async Task <Dish> UpdateEntireDish(long dishId, UpdateDishRequest updatedDishRequest) { Console.WriteLine("Update entire dish"); // If the user is updating ingredients if (updatedDishRequest.Ingredients != null) { await RemoveAllIngredients(dishId); } ; // If the user is updating steps if (updatedDishRequest.Steps != null) { await RemoveAllSteps(dishId); } ; // If the user is updating the history if (updatedDishRequest.History != null) { await RemoveAllHistories(dishId); } ; return(await _dishRepo.UpdateAll(updatedDishRequest, dishId)); }
public async Task <IActionResult> UpdateDish(UpdateDishRequest dish) { var loggedUser = User.GetUserIdFromToken(); var result = await _dishService.UpdateDishAsync(loggedUser, dish); //var mapped = _mapper.Map<DishResponse>(result); //return Ok(new ApiOkResponse(mapped)); return(Ok()); }
public async Task <Dish> UpdateAll(UpdateDishRequest updatedDish, long id) { var dish = await GetDishById(id); var mappedDish = _mapper.Map(updatedDish, dish); await SaveUpdate(); return(mappedDish); }
public async Task<IActionResult> AddDish(UpdateDishRequest dish) { var loggedUser = User.GetUserIdFromToken(); await _compoundDishService.ConvertUserDishAsync(loggedUser, dish); var user = await _userService.GetUserDevicesAsync(loggedUser); /*Reward section*/ await _rewardHelper.HandleRewardAsync(RewardCategoryEnum.DISH_BUILT, dish.UserId, true, dish, null, NotificationTypeEnum.FIREBASE, user.Devices); /*#end reward section*/ return Created("", null); }
public async Task UpdateDish(Dish dish) { var updateRequest = new UpdateDishRequest { Author = dish.Author, Description = dish.Description, Difficulty = dish.Difficulty, Duration = dish.Duration, Name = dish.Name, Recipe = JsonConvert.SerializeObject(dish.Steps), }; await m_restClient.Put <Dish>(updateRequest, $"Dish?id={dish.Id}"); }
public async Task <IActionResult> PutTodoItem(long id, [FromBody] UpdateDishRequest updateDishRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var dish = await _dishService.GetById(id); _dishService.VerifyUser(GetUserId(), dish.UserID); dish = await _dishService.UpdateEntireDish(id, updateDishRequest); return(Ok(_mapper.Map <Dish, DishResponse>(dish))); }
public ActionResult Update([FromRoute] int restaurantId, int dishId, [FromBody] UpdateDishRequest request) { _dishService.UpdateDish(restaurantId, dishId, request); return(NoContent()); }
public async Task ConvertUserDishAsync(int loggedUser, UpdateDishRequest dish) { // validate admin user var user = await _uow.UserRepository.FindByAsync(u => u.Id == loggedUser && u.Role == RoleEnum.ADMIN); if (user.Count == 0) { throw new NotAllowedException(ExceptionConstants.NOT_ALLOWED); } var d = await _uow.CompoundDishRepository.GetAsync(dish.Id); if (d == null) { throw new NotFoundException(ExceptionConstants.NOT_FOUND, "Dish"); } // validate dish name, this no requires pass the id becaus we are converting a user dish // on a general dish var existDishName = await _uow.DishRepository.FindByAsync(p => p.Name.ToLower() == dish.Name.ToLower()); if (existDishName.Count > 0) { throw new InvalidDataException(ExceptionConstants.INVALID_DATA, "Dish name"); } var dishh = new Dish(); dishh.Calories = dish.Calories; dishh.Carbohydrates = dish.Carbohydrates; dishh.Fat = dish.Fat; dishh.Fiber = dish.Fiber; dishh.Name = dish.Name; dishh.Proteins = dish.Proteins; dishh.Cholesterol = dish.Cholesterol; dishh.Calcium = dish.Calcium; dishh.Phosphorus = dish.Phosphorus; dishh.Iron = dish.Iron; dishh.Potassium = dish.Potassium; dishh.Sodium = dish.Sodium; dishh.Zinc = dish.Zinc; dishh.VitaminA = dish.VitaminA; dishh.VitaminC = dish.VitaminC; dishh.VitaminB6 = dish.VitaminB6; dishh.VitaminB12 = dish.VitaminB12; dishh.VitaminD = dish.VitaminD; dishh.VitaminE = dish.VitaminE; dishh.VitaminK = dish.VitaminK; dishh.VitaminB1Thiamin = dish.VitaminB1Thiamin; dishh.VitaminB2Riboflavin = dish.VitaminB2Riboflavin; dishh.VitaminB3Niacin = dish.VitaminB3Niacin; dishh.VitaminB9Folate = dish.VitaminB9Folate; dishh.NetWeight = dish.NetWeight; dishh.Volume = dish.Volume; dishh.SaturatedFat = dish.SaturatedFat; dishh.PolyUnsaturatedFat = dish.PolyUnsaturatedFat; dishh.MonoUnsaturatedFat = dish.MonoUnsaturatedFat; dishh.Alcohol = dish.Alcohol; if (dish.Classification == 0) { dishh.IsProteic = true; } else if (dish.Classification == 1) { dishh.IsCaloric = true; } else { dishh.IsFruitAndVegetables = true; } // avatar // take the same user image if (dish.RemovedImage == "null" && dish.Image == null) { if (!string.IsNullOrWhiteSpace(d.Image)) { string destinationKey = Guid.NewGuid().ToString(); string sourceKey = d.Image; await _fileService.CopyFileAsync(sourceKey, destinationKey); dishh.Image = destinationKey; dishh.ImageMimeType = d.ImageMimeType; } } else if (dish.Image != null) { string guid = Guid.NewGuid().ToString(); await _fileService.UploadFileAsync(dish.Image, guid); dishh.Image = guid; dishh.ImageMimeType = dish.Image.ContentType; } //existing tags foreach (var id in dish.TagsIds) { var t = await _uow.TagRepository.GetAsync(id); if (t != null) { var exist = await _uow.DishTagRepository.GetAll().Where(t => t.TagId == id && t.DishId == dish.Id).FirstOrDefaultAsync(); if (exist == null) { var dt = new DishTag { Dish = dishh, TagId = t.Id, TaggedAt = DateTime.UtcNow }; await _uow.DishTagRepository.AddAsync(dt); } } } //new tags foreach (var name in dish.NewTags) { var ta = new Tag { Name = name }; await _uow.TagRepository.AddAsync(ta); var dt = new DishTag { Dish = dishh, Tag = ta, TaggedAt = DateTime.UtcNow }; await _uow.DishTagRepository.AddAsync(dt); } d.IsAdminConverted = true; d.IsAdminReviewed = true; _uow.CompoundDishRepository.Update(d); await _uow.DishRepository.AddAsync(dishh); await _uow.CommitAsync(); }
public async Task <Dish> UpdateDishAsync(int loggedUser, UpdateDishRequest dish) { // validate admin user var user = await _uow.UserRepository.FindByAsync(u => u.Id == loggedUser && u.Role == RoleEnum.ADMIN); if (user.Count == 0) { throw new NotAllowedException(ExceptionConstants.NOT_ALLOWED); } var dishh = await _uow.DishRepository.GetAll().Where(d => d.Id == dish.Id) .Include(d => d.FavoriteDishes) .Include(d => d.LackSelfControlDishes) .Include(d => d.DishTags) .ThenInclude(t => t.Tag) .FirstOrDefaultAsync(); if (dishh == null) { throw new NotFoundException(ExceptionConstants.NOT_FOUND, "Dish"); } // validate dish name var existDishName = await _uow.DishRepository.FindByAsync(p => p.Name.ToLower() == dish.Name.ToLower() && p.Id != dish.Id); if (existDishName.Count > 0) { throw new InvalidDataException(ExceptionConstants.INVALID_DATA, "Dish name"); } dishh.Calories = dish.Calories; dishh.Carbohydrates = dish.Carbohydrates; dishh.Fat = dish.Fat; dishh.Fiber = dish.Fiber; dishh.Name = dish.Name; dishh.Proteins = dish.Proteins; dishh.Cholesterol = dish.Cholesterol; dishh.Calcium = dish.Calcium; dishh.Phosphorus = dish.Phosphorus; dishh.Iron = dish.Iron; dishh.Potassium = dish.Potassium; dishh.Sodium = dish.Sodium; dishh.Zinc = dish.Zinc; dishh.VitaminA = dish.VitaminA; dishh.VitaminC = dish.VitaminC; dishh.VitaminB6 = dish.VitaminB6; dishh.VitaminB12 = dish.VitaminB12; dishh.VitaminD = dish.VitaminD; dishh.VitaminE = dish.VitaminE; dishh.VitaminK = dish.VitaminK; dishh.VitaminB1Thiamin = dish.VitaminB1Thiamin; dishh.VitaminB2Riboflavin = dish.VitaminB2Riboflavin; dishh.VitaminB3Niacin = dish.VitaminB3Niacin; dishh.VitaminB9Folate = dish.VitaminB9Folate; dishh.NetWeight = dish.NetWeight; dishh.Volume = dish.Volume; dishh.SaturatedFat = dish.SaturatedFat; dishh.PolyUnsaturatedFat = dish.PolyUnsaturatedFat; dishh.MonoUnsaturatedFat = dish.MonoUnsaturatedFat; dishh.Alcohol = dish.Alcohol; if (dish.Classification == 0) { dishh.IsProteic = true; dishh.IsCaloric = false; dishh.IsFruitAndVegetables = false; } else if (dish.Classification == 1) { dishh.IsCaloric = true; dishh.IsProteic = false; dishh.IsFruitAndVegetables = false; } else { dishh.IsFruitAndVegetables = true; dishh.IsProteic = false; dishh.IsCaloric = false; } // avatar if (!string.IsNullOrWhiteSpace(dish.RemovedImage) && dish.RemovedImage != "null") { await _fileService.DeleteFileAsync(dishh.Image); dishh.Image = ""; dishh.ImageMimeType = ""; } if (dish.Image != null) { string guid = Guid.NewGuid().ToString(); await _fileService.UploadFileAsync(dish.Image, guid); dishh.Image = guid; dishh.ImageMimeType = dish.Image.ContentType; } //delete current and removed tags var results = _uow.DishTagRepository.GetAll().Where(dt => dish.Id == dt.DishId && !dish.TagsIds.Contains(dt.TagId)); foreach (var dt in results) { _uow.DishTagRepository.Delete(dt); } //existing tags foreach (var id in dish.TagsIds) { var t = await _uow.TagRepository.GetAsync(id); if (t != null) { var exist = await _uow.DishTagRepository.GetAll().Where(t => t.TagId == id && t.DishId == dish.Id).FirstOrDefaultAsync(); if (exist == null) { var dt = new DishTag { Dish = dishh, TagId = t.Id, TaggedAt = DateTime.UtcNow }; await _uow.DishTagRepository.AddAsync(dt); } } } //new tags foreach (var name in dish.NewTags) { var ta = new Tag { Name = name }; await _uow.TagRepository.AddAsync(ta); var dt = new DishTag { Dish = dishh, Tag = ta, TaggedAt = DateTime.UtcNow }; await _uow.DishTagRepository.AddAsync(dt); } await _uow.DishRepository.UpdateAsync(dishh, dishh.Id); await _uow.CommitAsync(); //expire cache QueryCacheManager.ExpireTag(_config.GetSection("AWS")["CachePrefix"] + CacheEntries.ALL_DISHES); return(dishh); }
public async Task Put([FromUri] int id, [FromBody] UpdateDishRequest updateDishRequest) { await m_dishService.UpdateDish(id, updateDishRequest); }