/// <summary> /// Gets the CSS variablesby menu identifier. /// </summary> /// <param name="menuIdDetails">The menu identifier details.</param> /// <returns></returns> public async Task <List <VariableDTO> > GetCssVariablesbyMenuId(MenuIdDetails menuIdDetails) { var variables = FindByCondition(x => x.MenuId == menuIdDetails.MenuId) .ProjectTo <VariableDTO>(_mapper.ConfigurationProvider).ToList(); return(await Task.FromResult(variables)); }
/// <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> /// Creates the language translation. /// </summary> /// <param name="translationDetails">The translation details.</param> /// <returns></returns> public async Task <CSSResponse> CreateLanguageTranslation(CreateLanguageTranslation translationDetails) { var languageIdDetails = new LanguageIdDetails { LanguageId = translationDetails.LanguageId }; var menuIdDetails = new MenuIdDetails { MenuId = translationDetails.MenuId }; var variableIdDetails = new VariableIdDetails { VariableId = translationDetails.VariableId }; var languageTranslations = await _repository.LanguageTranslation.GetLanguageTranslationByOtherIds(languageIdDetails, menuIdDetails, variableIdDetails); if (languageTranslations?.Count > 0) { 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 <LanguageTranslation>(translationDetails); _repository.LanguageTranslation.CreateLanguageTranslation(languageTranslationRequest); await _repository.SaveAsync(); return(new CSSResponse(new LanguageTranslationIdDetails { TranslationId = languageTranslationRequest.Id }, HttpStatusCode.Created)); }
/// <summary> /// Gets the CSS menu. /// </summary> /// <param name="menuIdDetails">The menu identifier details.</param> /// <returns></returns> public async Task <KeyValue> GetCssMenu(MenuIdDetails menuIdDetails) { var menu = FindByCondition(x => x.Id == menuIdDetails.MenuId) .ProjectTo <KeyValue>(_mapper.ConfigurationProvider).SingleOrDefault(); return(await Task.FromResult(menu)); }
/// <summary> /// Gets the CSS menu variables. /// </summary> /// <param name="menuId">The menu identifier.</param> /// <returns></returns> public async Task <CSSResponse> GetCssMenuVariables(MenuIdDetails menuIdDetails) { var menu = await _repository.CssMenu.GetCssMenu(menuIdDetails); if (menu == null) { return(new CSSResponse($"Menu with id '{menuIdDetails.MenuId}' not found", HttpStatusCode.NotFound)); } var menus = await _repository.CssVariable.GetCssVariablesbyMenuId(menuIdDetails); return(new CSSResponse(menus, HttpStatusCode.OK)); }
/// <summary> /// Gets the language translations by menu and language. /// </summary> /// <param name="languageIdDetails">The language identifier details.</param> /// <param name="menuIdDetails">The menu identifier details.</param> /// <returns></returns> public async Task <List <LanguageTranslation> > GetLanguageTranslationsByMenuAndLanguage(LanguageIdDetails languageIdDetails, MenuIdDetails menuIdDetails) { var languages = FindByCondition(x => x.IsDeleted == false && x.LanguageId == languageIdDetails.LanguageId && x.MenuId == menuIdDetails.MenuId) .Include(x => x.Language) .Include(x => x.Variable) .ToList(); return(await Task.FromResult(languages)); }
/// <summary> /// Gets the language translation by other ids. /// </summary> /// <param name="languageIdDetails">The language identifier details.</param> /// <param name="menuIdDetails">The menu identifier details.</param> /// <param name="variableIdDetails">The variable identifier details.</param> /// <returns></returns> public async Task <List <int> > GetLanguageTranslationByOtherIds(LanguageIdDetails languageIdDetails, MenuIdDetails menuIdDetails, VariableIdDetails variableIdDetails) { var languages = FindByCondition(x => x.LanguageId == languageIdDetails.LanguageId && x.MenuId == menuIdDetails.MenuId && x.VariableId == variableIdDetails.VariableId && x.IsDeleted == false) .Select(x => x.Id) .ToList(); return(await Task.FromResult(languages)); }
/// <summary> /// Gets the language translations by menu and language. /// </summary> /// <param name="languageIdDetails">The language identifier details.</param> /// <param name="menuIdDetails">The menu identifier details.</param> /// <returns></returns> public async Task <CSSResponse> GetLanguageTranslationsByMenuAndLanguage(LanguageIdDetails languageIdDetails, MenuIdDetails menuIdDetails) { var language = await _repository.CssLanguage.GetCssLanguage(languageIdDetails); if (language == null) { return(new CSSResponse($"Language with id '{languageIdDetails.LanguageId}' not found", HttpStatusCode.NotFound)); } var menu = await _repository.CssMenu.GetCssMenu(menuIdDetails); if (menu == null) { return(new CSSResponse($"Menu with id '{menuIdDetails.MenuId}' not found", HttpStatusCode.NotFound)); } var languageTranslations = await _repository.LanguageTranslation.GetLanguageTranslationsByMenuAndLanguage(languageIdDetails, menuIdDetails); var mappedLanguageTranslations = _mapper.Map <List <LanguageTranslationDTO> >(languageTranslations); return(new CSSResponse(mappedLanguageTranslations, HttpStatusCode.OK)); }