Esempio n. 1
0
        public async Task <IActionResult> QuestionTranslation([FromRoute] int id, [FromBody] DishTranslationRequest dishTranslationRequest)
        {
            var loggedUser = User.GetUserIdFromToken();
            await _dishService.ChangeDishTranslationAsync(loggedUser, dishTranslationRequest, id);

            return(Ok());
        }
Esempio n. 2
0
        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);
        }