Пример #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));
        }
        /// <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));
        }
Пример #3
0
        /// <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));
        }
Пример #4
0
        /// <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));
        }