/// <summary> /// Handles the FindResources message from a customer. /// </summary> /// <param name="header">The message header.</param> /// <param name="findResources">The FindResources message.</param> protected virtual void HandleFindResources(IMessageHeader header, FindResources findResources) { var args = Notify(OnFindResources, header, findResources, new ResourceResponse()); HandleFindResources(args); if (!args.Cancel) { FindResourcesResponse(header, args.Context.Resources, args.Context.ServerSortOrder); } }
/// <summary> /// Sends a FindResources message to a store. /// </summary> /// <param name="context">The context information.</param> /// <param name="scope">The scope.</param> /// <param name="storeLastWriteFilter">An optional parameter to filter discovery on a date when an object last changed.</param> /// <param name="activeStatusFilter">if not <c>null</c>, request only objects with a matching active status.</param> /// <param name="extension">The message header extension.</param> /// <returns>The sent message on success; <c>null</c> otherwise.</returns> public virtual EtpMessage <FindResources> FindResources(ContextInfo context, ContextScopeKind scope, DateTime?storeLastWriteFilter = null, ActiveStatusKind?activeStatusFilter = null, IMessageHeaderExtension extension = null) { var body = new FindResources { Context = context, Scope = scope, StoreLastWriteFilter = storeLastWriteFilter, ActiveStatusFilter = activeStatusFilter, }; return(SendRequest(body, extension: extension)); }
/// <summary> /// Sends a FindResources message to a store. /// </summary> /// <param name="uri">The URI.</param> /// <returns>The message identifier.</returns> public virtual long FindResources(string uri) { var header = CreateMessageHeader(Protocols.DiscoveryQuery, MessageTypes.DiscoveryQuery.FindResources); var findResources = new FindResources() { Uri = uri }; return(Session.SendMessage(header, findResources, h => _requests[h.MessageId] = uri // Cache requested URIs by message ID )); }