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