/// <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)); }
/// <summary> /// Gets the language translation. /// </summary> /// <param name="languageTranslationIdDetails">The translation identifier details.</param> /// <returns></returns> public async Task <LanguageTranslation> GetLanguageTranslation(LanguageTranslationIdDetails languageTranslationIdDetails) { var language = FindByCondition(x => x.Id == languageTranslationIdDetails.TranslationId && x.IsDeleted == false) .Include(x => x.Language) .Include(x => x.Menu) .Include(x => x.Variable) .SingleOrDefault(); return(await Task.FromResult(language)); }
/// <summary> /// Gets the language translation. /// </summary> /// <param name="languageTranslationIdDetails">The translation identifier details.</param> /// <returns></returns> public async Task <CSSResponse> GetLanguageTranslation(LanguageTranslationIdDetails languageTranslationIdDetails) { var languageTranslation = await _repository.LanguageTranslation.GetLanguageTranslation(languageTranslationIdDetails); if (languageTranslation == null) { return(new CSSResponse(HttpStatusCode.NotFound)); } var mappedLanguageTranslation = _mapper.Map <LanguageTranslationDTO>(languageTranslation); return(new CSSResponse(mappedLanguageTranslation, HttpStatusCode.OK)); }
/// <summary> /// Deletes the language translation. /// </summary> /// <param name="languageTranslationIdDetails">The translation identifier details.</param> /// <returns></returns> public async Task <CSSResponse> DeleteLanguageTranslation(LanguageTranslationIdDetails languageTranslationIdDetails) { var language = await _repository.LanguageTranslation.GetLanguageTranslation(languageTranslationIdDetails); if (language == null) { return(new CSSResponse(HttpStatusCode.NotFound)); } language.IsDeleted = true; _repository.LanguageTranslation.UpdateLanguageTranslation(language); await _repository.SaveAsync(); return(new CSSResponse(HttpStatusCode.NoContent)); }