GetFakeItems() публичный Метод

public GetFakeItems ( ) : IEnumerable
Результат IEnumerable
Пример #1
0
    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;
    }