public void Process(DsItemLoadingArgs args) { Assert.ArgumentNotNull(args, "args"); DsDbTemplate template = args.DsDbItem as DsDbTemplate; Assert.ArgumentNotNull(template, "Item was not a DsDbTemplate, which is required here"); foreach (SyncItem descendantItem in template.File .DeserializeAll( template.SyncItem, Deserializer.GetSerializationFolder(template.SerializationFolderName), 3) .Where(i => ID.IsID(i.TemplateID) && ID.Parse(i.TemplateID) == TemplateIDs.TemplateField)) { SyncField isSharedField = descendantItem.SharedFields.FirstOrDefault(f => "Shared".Equals(f.FieldName)); SyncField typeField = descendantItem.SharedFields.FirstOrDefault(f => "Type".Equals(f.FieldName)); bool isShared = isSharedField != null && "1".Equals(isSharedField.FieldValue); template.Fields.Add(new DbField(descendantItem.Name, ID.Parse(descendantItem.ID)) { Shared = isShared, Type = typeField != null ? typeField.FieldValue : string.Empty }); } }
public void ShouldSetItemId() { var template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); template.Should().NotBeNull(); template.ID.ShouldBeEquivalentTo(SerializationId.SampleItemTemplate); }
public void ShouldSetName() { DsDbTemplate template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); template.Should().NotBeNull(); template.Name.Should().BeEquivalentTo("Sample Item"); }
public void ShouldSetItemId() { var template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); template.Should().NotBeNull(); template.ID.ShouldBeEquivalentTo(SerializationId.SampleItemTemplate); }
public void ShouldSetTemplateId() { DsDbTemplate template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); template.Should().NotBeNull(); template.TemplateID.ShouldBeEquivalentTo(TemplateIDs.Template); }
public void ShouldSetTemplateId() { var template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); template.Should().NotBeNull(); template.TemplateID.ShouldBeEquivalentTo(TemplateIDs.Template); }
public void ShouldLoadFields() { DsDbTemplate template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); using (new Db() { template }) { template.Should().NotBeNull(); ID titleFieldId = ID.Parse("{75577384-3C97-45DA-A847-81B00500E250}"); ID textFieldId = ID.Parse("{A60ACD61-A6DB-4182-8329-C957982CEC74}"); ID sharedFieldId = ID.Parse("{8F0BDC2B-1A78-4C29-BF83-C1C318186AA6}"); template.Fields[titleFieldId].Name.Should().BeEquivalentTo("Title"); template.Fields[titleFieldId].Shared.ShouldBeEquivalentTo(false); template.Fields[textFieldId].Name.Should().BeEquivalentTo("Text"); template.Fields[textFieldId].Shared.ShouldBeEquivalentTo(false); template.Fields[sharedFieldId].Name.Should().BeEquivalentTo("Some shared field"); template.Fields[sharedFieldId].Shared.ShouldBeEquivalentTo(true); } }
public void ShouldSetName() { var template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); template.Should().NotBeNull(); template.Name.Should().BeEquivalentTo("Sample Item"); }
private static void DeserializeTemplate(DataStorage dataStorage, ID templateId, string serializationFolderName) { var filePath = templateId.FindFilePath(serializationFolderName); if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath)) { return; } var dsDbTemplate = new DsDbTemplate(templateId, serializationFolderName); dataStorage.AddFakeItem(dsDbTemplate); // Deserialize base templates var baseTemplatesField = dsDbTemplate.Fields.FirstOrDefault(f => f.ID == FieldIDs.BaseTemplate); if (baseTemplatesField == null || string.IsNullOrWhiteSpace(baseTemplatesField.Value)) { return; } foreach (var baseTemplateId in baseTemplatesField.Value.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries) .Where(ID.IsID) .Select(ID.Parse) .Where(baseTemplateId => dataStorage.GetFakeItem(baseTemplateId) == null)) { DeserializeTemplate(dataStorage, baseTemplateId, dsDbTemplate.SerializationFolderName); } }
private static void DeserializeTemplate(DataStorage dataStorage, ID templateId, string serializationFolderName) { var filePath = templateId.FindFilePath(serializationFolderName); if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath)) { return; } var dsDbTemplate = new DsDbTemplate(templateId, serializationFolderName); dataStorage.AddFakeItem(dsDbTemplate); // Deserialize base templates var baseTemplatesField = dsDbTemplate.Fields.FirstOrDefault(f => f.ID == FieldIDs.BaseTemplate); if (baseTemplatesField == null || string.IsNullOrWhiteSpace(baseTemplatesField.Value)) { return; } foreach (var baseTemplateId in baseTemplatesField.Value.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries) .Where(ID.IsID) .Select(ID.Parse) .Where(baseTemplateId => dataStorage.GetFakeItem(baseTemplateId) == null)) { DeserializeTemplate(dataStorage, baseTemplateId, dsDbTemplate.SerializationFolderName); } }
public void ShouldSetItemId() { DsDbTemplate template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); template.Should().NotBeNull(); template.ID.ShouldBeEquivalentTo(ID.Parse("{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}")); }
public void ShouldLookupById() { var templateId = SerializationId.SampleItemTemplate; var template = new DsDbTemplate(templateId); template.Should().NotBeNull(); template.Name.Should().BeEquivalentTo("Sample Item"); template.TemplateID.ShouldBeEquivalentTo(TemplateIDs.Template); }
public void ShouldLookupById() { var templateId = SerializationId.SampleItemTemplate; var template = new DsDbTemplate(templateId); template.Should().NotBeNull(); template.Name.Should().BeEquivalentTo("Sample Item"); template.TemplateID.ShouldBeEquivalentTo(TemplateIDs.Template); }
public void ShouldLookupById() { ID templateId = ID.Parse("{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}"); DsDbTemplate template = new DsDbTemplate(templateId); template.Should().NotBeNull(); template.Name.Should().BeEquivalentTo("Sample Item"); template.TemplateID.ShouldBeEquivalentTo(TemplateIDs.Template); }
public void ShouldBeAppliedToDeserializedItem() { var template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); var item = new DsDbItem("/sitecore/content/Home"); using (new Db { template, item }) { item.TemplateID.ShouldBeEquivalentTo(template.ID); var titleFieldId = ID.Parse("{75577384-3C97-45DA-A847-81B00500E250}"); item.Fields[titleFieldId].Value.ShouldBeEquivalentTo("Sitecore"); template.Fields[titleFieldId].Should().NotBeNull(); } }
public void ShouldLoadFieldFromShortenedPath() { var template = new DsDbTemplate("/sitecore/templates/Sample/much deeper path needed/for testing deserialization of/fields from shortened paths/correctly/Some deep template"); using (new Db { template }) { template.Should().NotBeNull(); var someDeepFieldId = ID.Parse("{90DE36F0-7239-497D-AB36-5587DF34F669}"); template.Fields.Count(f => f.ID == someDeepFieldId).ShouldBeEquivalentTo(1); template.Fields[someDeepFieldId].Name.Should().BeEquivalentTo("Some deep field"); template.Fields[someDeepFieldId].Shared.Should().BeFalse(); } }
public void ShouldBeAppliedToDeserializedItem() { var template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); var item = new DsDbItem("/sitecore/content/Home"); using (new Db { template, item }) { item.TemplateID.ShouldBeEquivalentTo(template.ID); var titleFieldId = ID.Parse("{75577384-3C97-45DA-A847-81B00500E250}"); item.Fields[titleFieldId].Value.ShouldBeEquivalentTo("Sitecore"); template.Fields[titleFieldId].Should().NotBeNull(); } }
public void Process(DsItemLoadingArgs args) { Assert.ArgumentNotNull(args, "args"); var dsDbItem = args.DsDbItem as DsDbItem; if (dsDbItem == null) { return; } // Deserialize and link descendants, if needed var file = args.DsDbItem.File; if (!dsDbItem.IncludeDescendants || file.Directory == null) { return; } var childItemsFolder = new DirectoryInfo(file.Directory.FullName + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(file.Name)); if (!childItemsFolder.Exists) { return; } foreach (var itemFile in childItemsFolder.GetFiles("*.item", SearchOption.TopDirectoryOnly)) { DbItem childItem; var syncItem = itemFile.Deserialize(); if (syncItem.TemplateID == TemplateIDs.Template.ToString()) { childItem = new DsDbTemplate(dsDbItem.SerializationFolderName, syncItem, itemFile); } else { childItem = new DsDbItem(dsDbItem.SerializationFolderName, syncItem, itemFile, true); } dsDbItem.Children.Add(childItem); } }
public void Process(DsItemLoadingArgs args) { Assert.ArgumentNotNull(args, "args"); var dsDbItem = args.DsDbItem as DsDbItem; if (dsDbItem == null) { return; } // Deserialize and link descendants, if needed var file = args.DsDbItem.File; if (!dsDbItem.IncludeDescendants || file.Directory == null) { return; } var childItemsFolder = new DirectoryInfo(file.Directory.FullName + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(file.Name)); if (!childItemsFolder.Exists) { return; } foreach (var itemFile in childItemsFolder.GetFiles("*.item", SearchOption.TopDirectoryOnly)) { DbItem childItem; var syncItem = itemFile.Deserialize(); if (syncItem.TemplateID == TemplateIDs.Template.ToString()) { childItem = new DsDbTemplate(dsDbItem.SerializationFolderName, syncItem, itemFile); } else { childItem = new DsDbItem(dsDbItem.SerializationFolderName, syncItem, itemFile, true); } dsDbItem.Children.Add(childItem); } }
public void ShouldLoadFields() { var template = new DsDbTemplate("/sitecore/templates/Sample/Sample Item"); using (new Db { template }) { template.Should().NotBeNull(); var titleFieldId = ID.Parse("{75577384-3C97-45DA-A847-81B00500E250}"); var textFieldId = ID.Parse("{A60ACD61-A6DB-4182-8329-C957982CEC74}"); var sharedFieldId = ID.Parse("{8F0BDC2B-1A78-4C29-BF83-C1C318186AA6}"); template.Fields[titleFieldId].Name.Should().BeEquivalentTo("Title"); template.Fields[titleFieldId].Shared.ShouldBeEquivalentTo(false); template.Fields[textFieldId].Name.Should().BeEquivalentTo("Text"); template.Fields[textFieldId].Shared.ShouldBeEquivalentTo(false); template.Fields[sharedFieldId].Name.Should().BeEquivalentTo("Some shared field"); template.Fields[sharedFieldId].Shared.ShouldBeEquivalentTo(true); } }
public DeserializeExistingTemplate() { this.Db.Add(new DbTemplate("My Sample Item", SerializationId.SampleItemTemplate)); this.deserializedTemplate = new DsDbTemplate(SerializationId.SampleItemTemplate); }
public DeserializeExistingTemplate() { this.Db.Add(new DbTemplate("My Sample Item", SerializationId.SampleItemTemplate)); this.deserializedTemplate = new DsDbTemplate(SerializationId.SampleItemTemplate); }
public void ShouldLoadFieldFromShortenedPath() { var template = new DsDbTemplate("/sitecore/templates/Sample/much deeper path needed/for testing deserialization of/fields from shortened paths/correctly/Some deep template"); using (new Db { template }) { template.Should().NotBeNull(); var someDeepFieldId = ID.Parse("{90DE36F0-7239-497D-AB36-5587DF34F669}"); template.Fields.Count(f => f.ID == someDeepFieldId).ShouldBeEquivalentTo(1); template.Fields[someDeepFieldId].Name.Should().BeEquivalentTo("Some deep field"); template.Fields[someDeepFieldId].Shared.Should().BeFalse(); } }