Beispiel #1
0
        /// <summary>
        /// Invokes the FindDnsServices service.
        /// </summary>
        public virtual ResponseHeader FindDnsServices(
            RequestHeader                  requestHeader,
            string                         endpointUrl,
            StringCollection               serviceNameFilters,
            StringCollection               serviceTypeFilters,
            out DnsServiceRecordCollection services)
        {
            FindDnsServicesRequest request = new FindDnsServicesRequest();
            FindDnsServicesResponse response = null;

            request.RequestHeader      = requestHeader;
            request.EndpointUrl        = endpointUrl;
            request.ServiceNameFilters = serviceNameFilters;
            request.ServiceTypeFilters = serviceTypeFilters;

            UpdateRequestHeader(request, requestHeader == null, "FindDnsServices");

            try
            {
                if (UseTransportChannel)
                {
                    IServiceResponse genericResponse = TransportChannel.SendRequest(request);

                    if (genericResponse == null)
                    {
                        throw new ServiceResultException(StatusCodes.BadUnknownResponse);
                    }

                    ValidateResponse(genericResponse.ResponseHeader);
                    response = (FindDnsServicesResponse)genericResponse;
                }
                else
                {
                    FindDnsServicesResponseMessage responseMessage = InnerChannel.FindDnsServices(new FindDnsServicesMessage(request));

                    if (responseMessage == null || responseMessage.FindDnsServicesResponse == null)
                    {
                        throw new ServiceResultException(StatusCodes.BadUnknownResponse);
                    }

                    response = responseMessage.FindDnsServicesResponse;
                    ValidateResponse(response.ResponseHeader);
                }

                services = response.Services;
            }
            finally
            {
                RequestCompleted(request, response, "FindDnsServices");
            }

            return response.ResponseHeader;
        }
Beispiel #2
0
        /// <summary>
        /// Finishes an asynchronous invocation of the FindDnsServices service.
        /// </summary>
        public ResponseHeader EndFindDnsServices(
            IAsyncResult                   result,
            out DnsServiceRecordCollection services)
        {
            FindDnsServicesResponse response = null;

            try
            {
                if (UseTransportChannel)
                {
                    IServiceResponse genericResponse = TransportChannel.EndSendRequest(result);

                    if (genericResponse == null)
                    {
                        throw new ServiceResultException(StatusCodes.BadUnknownResponse);
                    }

                    ValidateResponse(genericResponse.ResponseHeader);
                    response = (FindDnsServicesResponse)genericResponse;
                }
                else
                {
                    FindDnsServicesResponseMessage responseMessage = InnerChannel.EndFindDnsServices(result);

                    if (responseMessage == null || responseMessage.FindDnsServicesResponse == null)
                    {
                        throw new ServiceResultException(StatusCodes.BadUnknownResponse);
                    }

                    response = responseMessage.FindDnsServicesResponse;
                    ValidateResponse(response.ResponseHeader);
                }

                services = response.Services;
            }
            finally
            {
                RequestCompleted(null, response, "FindDnsServices");
            }

            return response.ResponseHeader;
        }
Beispiel #3
0
        /// <summary>
        /// Invokes the FindDnsServices service.
        /// </summary>
        public virtual ResponseHeader FindDnsServices(
            RequestHeader                  requestHeader,
            string                         endpointUrl,
            StringCollection               serviceNameFilters,
            StringCollection               serviceTypeFilters,
            out DnsServiceRecordCollection services)
        {
            services = null;

            ValidateRequest(requestHeader);

            // Insert implementation.

            return CreateResponse(requestHeader, StatusCodes.BadServiceUnsupported);
        }