private CustomFieldDefinitionModel LoadFieldDiff(CustomFieldDefinitionModel compared, string prefix, EntityTransaltion translation)
        {
            prefix = prefix + "[" + compared.Name + "].";

            var diff = new CustomFieldDefinitionModel
            {
                Id          = compared.Id,
                Name        = compared.Name,
                ControlType = compared.ControlType
            };

            if (translation != null)
            {
                diff.Label        = DiffHelper.GetDiffHtml(translation.GetOriginalText(prefix + "Label"), compared.Label);
                diff.DefaultValue = DiffHelper.GetDiffHtml(translation.GetOriginalText(prefix + "DefaultValue"), compared.DefaultValue);
            }

            foreach (var item in compared.SelectionItems)
            {
                var itemDiff = new SelectionItem {
                    Value = item.Value
                };
                if (translation != null)
                {
                    itemDiff.Text = DiffHelper.GetDiffHtml(translation.GetOriginalText(prefix + "SelectionItems[" + item.Value + "]"), item.Text);
                }
                diff.SelectionItems.Add(itemDiff);
            }

            return(diff);
        }
        private CustomFieldDefinitionModel LoadFieldTranslation(CustomFieldDefinitionModel original, string prefix, EntityTransaltion translation)
        {
            prefix = prefix + "[" + original.Name + "].";

            var translated = new CustomFieldDefinitionModel
            {
                Id          = original.Id,
                Name        = original.Name,
                ControlType = original.ControlType
            };

            if (translation != null)
            {
                translated.Label        = translation.GetTranslatedText(prefix + "Label");
                translated.DefaultValue = translation.GetTranslatedText(prefix + "DefaultValue");
            }

            foreach (var item in original.SelectionItems)
            {
                var translatedItem = new SelectionItem {
                    Value = item.Value
                };
                if (translation != null)
                {
                    translatedItem.Text = translation.GetTranslatedText(prefix + "SelectionItems[" + item.Value + "]");
                }
                translated.SelectionItems.Add(item);
            }

            return(translated);
        }
        private void UpdateFieldTranslation(CustomFieldDefinition original, CustomFieldDefinitionModel translated, string prefix, List <PropertyTranslation> translations)
        {
            translations.Add(new PropertyTranslation(prefix + "Label", original.Label, translated.Label));
            translations.Add(new PropertyTranslation(prefix + "DefaultValue", original.DefaultValue, translated.DefaultValue));

            foreach (var item in translated.SelectionItems)
            {
                var originalItem = original.SelectionItems.FirstOrDefault(i => i.Value == item.Value);
                translations.Add(new PropertyTranslation(prefix + "SelectionItems[" + item.Value + "]", originalItem.Text, item.Text));
            }
        }