public ActionResult GetModel(int id, string culture) { var productType = _repository.Find(id); var compared = Mapper.Map <ProductType, ProductTypeModel>(productType); var translated = new ProductTypeModel { Id = compared.Id, Name = compared.Name }; // Difference of compared product type and the previous compared product type var diff = new ProductTypeModel { Id = compared.Id, Name = compared.Name }; var entityKey = EntityKey.FromEntity(productType); var translation = _translationStore.Find(CultureInfo.GetCultureInfo(culture), entityKey); foreach (var field in compared.CustomFieldDefinitions) { translated.CustomFieldDefinitions.Add(LoadFieldTranslation(field, "CustomFieldDefinitions", translation)); diff.CustomFieldDefinitions.Add(LoadFieldDiff(field, "CustomFieldDefinitions", translation)); } foreach (var field in compared.VariantFieldDefinitions) { translated.VariantFieldDefinitions.Add(LoadFieldTranslation(field, "VariantFieldDefinitions", translation)); diff.VariantFieldDefinitions.Add(LoadFieldDiff(field, "VariantFieldDefinitions", translation)); } return(Json(new { Compared = compared, Difference = diff, Translated = translated }, JsonRequestBehavior.AllowGet)); }
public ActionResult Translate(int id, string culture) { var brand = _brandService.Find(id); var compared = new BrandModel { Id = brand.Id, Name = brand.Name, Description = brand.Description }; var translated = new BrandModel { Id = brand.Id }; var diff = new BrandModel { Id = brand.Id }; var translation = _translationStore.Find(CultureInfo.GetCultureInfo(culture), EntityKey.FromEntity(brand)); if (translation != null) { translated.Name = translation.GetTranslatedText("Name"); translated.Description = translation.GetTranslatedText("Description"); diff.Name = DiffHelper.GetDiffHtml(translation.GetOriginalText("Name"), brand.Name); diff.Description = DiffHelper.GetDiffHtml(translation.GetOriginalText("Description"), brand.Description); } ViewBag.Difference = diff; ViewBag.Compared = compared; return(View(translated)); }