public override IDList SelectIDs(string query, CallContext context) { query = query.Replace("fast:", string.Empty); var items = Query.SelectItems(query, this.Database); return(items != null?IDList.Build(items.Select(i => i.ID).ToArray()) : new IDList()); }
/// <summary> /// Determines what items are children of the item and returns a list of their IDs. /// </summary> /// <param name="itemDefinition">Used to identify the particular item</param> /// <param name="context"></param> /// <returns></returns> public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { IEnumerable <KeyValuePair <ID, SyncItem> > childItems = ItemsByParentId.Where(item => item.Key == itemDefinition.ID); return(IDList.Build(childItems.Select(item => ParseId(item.Value.ID)).ToArray())); }
public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { // TODO: Use prefecthing like the old one? var childIds = Provider.GetChildIds(itemDefinition.ID.ToGuid()); return(IDList.Build(childIds.Select(guid => new ID(guid)).ToArray())); }
/// <summary> /// Determines what items are children of the item and returns a list of their IDs. /// </summary> /// <param name="itemDefinition">Used to identify the particular item</param> /// <param name="context"></param> /// <returns></returns> public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { QueryComplete query = Query.EQ("ParentID", itemDefinition.ID == JoinParentId ? Guid.Empty : itemDefinition.ID.ToGuid()); return(IDList.Build(Items.FindAs <ItemBase>(query) .Select(it => new ID(it._id)).ToArray())); }
public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { var results = new HashSet <ID>(); bool unicornChildrenAreAuthoritative = false; foreach (var provider in UnicornDataProviders) { IEnumerable <ID> childrenResult; var providerResult = provider.GetChildIds(itemDefinition, context, out childrenResult); foreach (var result in childrenResult) { if (!results.Contains(result)) { results.Add(result); } } if (providerResult) { unicornChildrenAreAuthoritative = true; } } if (results.Count == 0 && !unicornChildrenAreAuthoritative) { // get database children var baseIds = base.GetChildIDs(itemDefinition, context); // get additional children from Unicorn providers // e.g. for TpSync if the root item of a tree is not in the database // this allows us to inject that root as a child of the DB item foreach (var provider in UnicornDataProviders) { var providerResult = provider.GetAdditionalChildIds(itemDefinition, context); foreach (var result in providerResult) { // if the db children returned null, we need to make a new list (because we DO have children) if (baseIds == null) { baseIds = new IDList(); } if (!baseIds.Contains(result)) { baseIds.Add(result); } } } return(baseIds); } return(IDList.Build(results.ToArray())); }
public override IDList GetPublishQueue(DateTime @from, DateTime to, CallContext context) { if (this.publishQueue.Value == null) { return(new IDList()); } return(IDList.Build( this.publishQueue.Value .Where(i => i.Date >= @from && i.Date <= to) .Select(i => i.ItemId) .Distinct() .ToArray())); }
public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { var results = new HashSet <ID>(); foreach (var provider in UnicornDataProviders) { var providerResult = provider.GetChildIds(itemDefinition, context); foreach (var result in providerResult) { if (!results.Contains(result)) { results.Add(result); } } } if (results.Count == 0) { // get database children var baseIds = base.GetChildIDs(itemDefinition, context); // get additional children from Unicorn providers // e.g. for TpSync if the root item of a tree is not in the database // this allows us to inject that root as a child of the DB item foreach (var provider in UnicornDataProviders) { var providerResult = provider.GetAdditionalChildIds(itemDefinition, context); foreach (var result in providerResult) { if (baseIds == null) { baseIds = new IDList(); } if (!baseIds.Contains(result)) { baseIds.Add(result); } } } return(baseIds); } return(IDList.Build(results.ToArray())); }
public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { var results = new HashSet <ID>(); foreach (var provider in UnicornDataProviders) { var providerResult = provider.GetChildIds(itemDefinition, context); foreach (var result in providerResult) { if (!results.Contains(result)) { results.Add(result); } } } if (results.Count == 0) { return(base.GetChildIDs(itemDefinition, context)); } return(IDList.Build(results.ToArray())); }