예제 #1
0
        private static void TransformToModel(PageDto source, PageMvcViewModel destination)
        {
            var localizations = source.PageLocalizations;

            if (localizations == null || localizations.Count == 0)
            {
                return;
            }

            var ruLocalization = localizations.FirstOrDefault(c => c.LanguageId == (int)CultureLanguage.RU);
            var enLocalization = localizations.FirstOrDefault(c => c.LanguageId == (int)CultureLanguage.EN);

            destination.ContentEn = enLocalization?.Html;
            destination.ContentRu = ruLocalization?.Html;

            destination.TitleEn = enLocalization?.Title;
            destination.TitleRu = ruLocalization?.Title;
        }
예제 #2
0
        public ActionResult Edit(int id, PageMvcViewModel model)
        {
            if (ModelState.IsValid == false)
            {
                return(View(model));
            }

            if (model.Id == 0)
            {
                throw new HttpException((int)HttpStatusCode.InternalServerError, "Не указан идентификатор категории");
            }

            var enLocalization = new PageLocalizationDto
            {
                Html       = model.ContentEn,
                LanguageId = (int)CultureLanguage.EN,
                PageId     = model.Id,
                Title      = model.TitleEn
            };

            var ruLocalization = new PageLocalizationDto
            {
                Html       = model.ContentRu,
                LanguageId = (int)CultureLanguage.RU,
                PageId     = model.Id,
                Title      = model.TitleRu
            };

            var result = _pageService.SaveLocalizations(model.Name, ruLocalization, enLocalization);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", $"Ошибки при обновлении новости:</br>" + $"{string.Join("</br>", result.Errors)}");
                return(View(model));
            }

            return(RedirectToAction("Index"));
        }
예제 #3
0
        private static void Localize(PageDto source, PageMvcViewModel destination)
        {
            var language = LanguageHelper.GetThreadLanguage();

            var ruLocalization = source.PageLocalizations.FirstOrDefault(n => n.LanguageId == 2);
            var enLocalization = source.PageLocalizations.FirstOrDefault(n => n.LanguageId == 1);

            switch (language)
            {
            case CultureLanguage.EN:
                destination.LocalizedTitle   = enLocalization?.Title;
                destination.LocalizedContent = enLocalization?.Html;
                break;

            case CultureLanguage.Undefined:
            case CultureLanguage.RU:
            case null:
            default:
                destination.LocalizedTitle   = ruLocalization?.Title;
                destination.LocalizedContent = ruLocalization?.Html;
                break;
            }
        }