/// <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)); }