public virtual void LoadFrom(IItemData itemData, IFieldFormatter[] fieldFormatters) { Id = itemData.Id; DatabaseName = itemData.DatabaseName; ParentId = itemData.ParentId; TemplateId = itemData.TemplateId; Path = itemData.Path; BranchId = itemData.BranchId; foreach (var field in itemData.SharedFields) { var fieldObject = new YamlFieldValue(); fieldObject.LoadFrom(field, fieldFormatters); SharedFields.Add(fieldObject); } var languages = itemData.Versions.GroupBy(x => x.Language.Name); foreach (var language in languages) { var languageObject = new YamlLanguage(); languageObject.LoadFrom(language, fieldFormatters); if(languageObject.Versions.Count > 0) Languages.Add(languageObject); } }
public virtual void LoadFrom(IItemData itemData, IFieldFormatter[] fieldFormatters) { Id = itemData.Id; DatabaseName = itemData.DatabaseName; ParentId = itemData.ParentId; TemplateId = itemData.TemplateId; Path = itemData.Path; BranchId = itemData.BranchId; foreach (var field in itemData.SharedFields) { var fieldObject = new YamlFieldValue(); fieldObject.LoadFrom(field, fieldFormatters); SharedFields.Add(fieldObject); } var languages = itemData.Versions.GroupBy(x => x.Language.Name); foreach (var language in languages) { var languageObject = new YamlLanguage(); languageObject.LoadFrom(language, fieldFormatters); if (languageObject.Versions.Count > 0) Languages.Add(languageObject); } foreach (var unversionedFieldLanguage in itemData.UnversionedFields) { var existing = Languages.FirstOrDefault(language => language.Language == unversionedFieldLanguage.Language.Name); if (existing == null) { existing = new YamlLanguage { Language = unversionedFieldLanguage.Language.Name }; Languages.Add(existing); } foreach (var unversionedField in unversionedFieldLanguage.Fields) { var field = new YamlFieldValue(); field.LoadFrom(unversionedField, fieldFormatters); existing.UnversionedFields.Add(field); } } }
private void DecorateVersionsTestData(YamlItem item) { var field = new YamlFieldValue { Id = new Guid("9a5a2ce9-9ae3-4a21-92f0-dba3cb7ac2bf"), Value = "Hello \"silly\" world." }; var field2 = new YamlFieldValue { Id = new Guid("badd9cf9-53e0-4d0c-bcc0-2d784c282f6a"), NameHint = "Test Field", Value = @"Lorem thine ipsum <p>forsooth thy sit amet</p> <div class=""simian"">Chimpanzee.</div>" }; var testVersion1 = new YamlVersion(); testVersion1.VersionNumber = 1; testVersion1.Fields.Add(field); testVersion1.Fields.Add(field2); var testVersion2 = new YamlVersion(); testVersion2.VersionNumber = 2; testVersion2.Fields.Add(field); var testLanguage = new YamlLanguage(); testLanguage.Language = "en-US"; testLanguage.Versions.Add(testVersion1); var testLanguage2 = new YamlLanguage(); testLanguage2.Language = "da-DK"; testLanguage2.Versions.Add(testVersion1); testLanguage2.Versions.Add(testVersion2); item.Languages.Add(testLanguage); item.Languages.Add(testLanguage2); }
private void DecorateSharedFieldsTestData(YamlItem item) { var field = new YamlFieldValue { Id = new Guid("9a5a2ce9-9ae3-4a21-92f0-dba3cb7ac2bf"), Value = "Hello world." }; var field2 = new YamlFieldValue { Id = new Guid("badd9cf9-53e0-4d0c-bcc0-2d784c282f6a"), NameHint = "Test Field", Value = @"Lorem thine ipsum <p>forsooth thy sit amet</p> <div class=""simian"">Chimpanzee.</div>" }; item.SharedFields.Add(field); item.SharedFields.Add(field2); }
public YamlItemFieldValue(YamlFieldValue field, IFieldFormatter[] formatters) { _field = field; _formatters = formatters; }
public virtual void ReadYaml(YamlReader reader) { Id = reader.ReadExpectedGuidMap("ID"); ParentId = reader.ReadExpectedGuidMap("Parent"); TemplateId = reader.ReadExpectedGuidMap("Template"); Path = reader.ReadExpectedMap("Path"); var dbName = reader.PeekMap(); if (dbName.HasValue && dbName.Value.Key.Equals("DB")) //could be missing if serialized with 1.0.x { reader.ReadMap(); DatabaseName = dbName.Value.Value; } var branch = reader.PeekMap(); if (branch.HasValue && branch.Value.Key.Equals("BranchID")) { reader.ReadMap(); BranchId = Guid.Parse(branch.Value.Value); } var sharedFields = reader.PeekMap(); if (sharedFields.HasValue && sharedFields.Value.Key.Equals("SharedFields")) { reader.ReadMap(); while (true) { var field = new YamlFieldValue(); if (field.ReadYaml(reader)) SharedFields.Add(field); else break; } } var languages = reader.PeekMap(); if (languages.HasValue && languages.Value.Key.Equals("Languages")) { reader.ReadMap(); while (true) { var language = new YamlLanguage(); if (language.ReadYaml(reader)) Languages.Add(language); else break; } } }