Exemple #1
0
        /// <summary>
        /// Updates the language translation.
        /// </summary>
        /// <param name="languageTranslationIdDetails">The translation identifier details.</param>
        /// <param name="translationDetails">The translation details.</param>
        /// <returns></returns>
        public async Task <CSSResponse> UpdateLanguageTranslation(LanguageTranslationIdDetails languageTranslationIdDetails, UpdateLanguageTranslation translationDetails)
        {
            var language = await _repository.LanguageTranslation.GetLanguageTranslation(languageTranslationIdDetails);

            if (language == null)
            {
                return(new CSSResponse(HttpStatusCode.NotFound));
            }

            var languageIdDetails = new LanguageIdDetails {
                LanguageId = translationDetails.LanguageId
            };
            var menuIdDetails = new MenuIdDetails {
                MenuId = translationDetails.MenuId
            };
            var variableIdDetails = new VariableIdDetails {
                VariableId = translationDetails.VariableId
            };
            var languages = await _repository.LanguageTranslation.GetLanguageTranslationByOtherIds(languageIdDetails, menuIdDetails, variableIdDetails);

            if (languages?.Count > 0 && languages.IndexOf(languageTranslationIdDetails.TranslationId) == -1)
            {
                return(new CSSResponse($"Translation with language id '{translationDetails.LanguageId}' and " +
                                       $"menu id '{translationDetails.MenuId}' and variable id '{translationDetails.VariableId}' already exists.", HttpStatusCode.Conflict));
            }

            var languageTranslationRequest = _mapper.Map(translationDetails, language);

            _repository.LanguageTranslation.UpdateLanguageTranslation(languageTranslationRequest);

            await _repository.SaveAsync();

            return(new CSSResponse(HttpStatusCode.NoContent));
        }
        public async Task <IActionResult> UpdateLanguageTranslation(int translationId, [FromBody] UpdateLanguageTranslation translationDetails)
        {
            var result = await _languageTranslationService.UpdateLanguageTranslation(new LanguageTranslationIdDetails { TranslationId = translationId },
                                                                                     translationDetails);

            return(StatusCode((int)result.Code, result.Value));
        }