public async Task <IActionResult> QuestionTranslation([FromRoute] int id, [FromBody] DishTranslationRequest dishTranslationRequest) { var loggedUser = User.GetUserIdFromToken(); await _dishService.ChangeDishTranslationAsync(loggedUser, dishTranslationRequest, id); return(Ok()); }
public async Task ChangeDishTranslationAsync(int loggedUser, DishTranslationRequest dishTranslationRequest, int id) { // 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 dish = await _uow.DishRepository.GetAll().Where(c => c.Id == id) .FirstOrDefaultAsync(); if (dish == null) { throw new NotFoundException(ExceptionConstants.NOT_FOUND, "Dish"); } switch (dishTranslationRequest.Lang) { case "en": dish.NameEN = dishTranslationRequest.Name; break; case "it": dish.NameIT = dishTranslationRequest.Name; break; default: dish.Name = dishTranslationRequest.Name; break; } _uow.DishRepository.Update(dish); await _uow.CommitAsync(); //expire cache QueryCacheManager.ExpireTag(_config.GetSection("AWS")["CachePrefix"] + CacheEntries.ALL_DISHES); }