Example #1
0
        public async Task <IActionResult> ConceptTranslation([FromRoute] int id, [FromBody] ConceptTranslationRequest concetpTranslationRequest)
        {
            var loggedUser = User.GetUserIdFromToken();
            await _conceptService.ChangeConceptTranslationAsync(loggedUser, concetpTranslationRequest, id);

            return(Ok());
        }
Example #2
0
        public async Task ChangeConceptTranslationAsync(int loggedUser, ConceptTranslationRequest concetpTranslationRequest, 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 concept = await _uow.ConceptRepository.GetAll().Where(c => c.Id == id)
                          .FirstOrDefaultAsync();

            if (concept == null)
            {
                throw new NotFoundException(ExceptionConstants.NOT_FOUND, "Concept");
            }

            switch (concetpTranslationRequest.Lang)
            {
            case "en":
                concept.TitleEN        = concetpTranslationRequest.Title;
                concept.DescriptionEN  = concetpTranslationRequest.Description;
                concept.InstructionsEN = concetpTranslationRequest.Instructions;
                break;

            case "it":
                concept.TitleIT        = concetpTranslationRequest.Title;
                concept.DescriptionIT  = concetpTranslationRequest.Description;
                concept.InstructionsIT = concetpTranslationRequest.Instructions;
                break;

            default:
                concept.Title        = concetpTranslationRequest.Title;
                concept.Description  = concetpTranslationRequest.Description;
                concept.Instructions = concetpTranslationRequest.Instructions;
                break;
            }

            _uow.ConceptRepository.Update(concept);
            await _uow.CommitAsync();
        }