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
                });
            }
        }
Ejemplo n.º 2
0
        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");
        }
Ejemplo n.º 4
0
    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);
        }
Ejemplo n.º 6
0
    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);
            }
        }
Ejemplo n.º 8
0
    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}"));
        }
Ejemplo n.º 12
0
    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);
    }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 15
0
    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();
      }
    }
Ejemplo n.º 16
0
        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();
            }
        }
Ejemplo n.º 17
0
        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);
      }
    }
Ejemplo n.º 20
0
    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);
 }
Ejemplo n.º 23
0
    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();
      }
    }