/// <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);
            }
        }
Esempio n. 2
0
        /// <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
                                       ));
        }