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));
        }
Example #2
0
        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));
        }