Sitecore.FakeDb.Data.Engines.DataStorage.GetFakeTemplate C# (CSharp) Method

GetFakeTemplate() public method

public GetFakeTemplate ( ID templateId ) : DbTemplate
templateId ID
return DbTemplate
    public virtual DbTemplate GetFakeTemplate(ID templateId)
    {
      return this.FakeItems.ContainsKey(templateId) ? this.FakeItems[templateId] as DbTemplate : null;
    }

Usage Example

    protected virtual bool ResolveTemplate(DbItem item, DataStorage dataStorage)
    {
      if (item.TemplateID == TemplateIDs.Template)
      {
        return true;
      }

      if (item.TemplateID == TemplateIDs.BranchTemplate)
      {
        return true;
      }

      if (this.ResolveBranch(item, dataStorage))
      {
        return true;
      }

      if (dataStorage.GetFakeTemplate(item.TemplateID) != null)
      {
        return true;
      }

      if (!ID.IsNullOrEmpty(item.TemplateID))
      {
        return false;
      }

      var fingerprint = string.Concat(item.Fields.Select(f => f.Name));

      // find an item with a generated template that has a matching fields set
      var sourceItem = dataStorage.GetFakeItems()
        .Where(si => si.TemplateID != TemplateIDs.Template)
        .Where(si => dataStorage.GetFakeTemplate(si.TemplateID) != null)
        .Where(si => dataStorage.GetFakeTemplate(si.TemplateID).Generated)
        .FirstOrDefault(si => string.Concat(si.Fields.Select(f => f.Name)) == fingerprint);

      if (sourceItem == null)
      {
        return false;
      }

      // reuse the template
      item.TemplateID = sourceItem.TemplateID;

      return true;
    }