internal RequestMetadata FromSoapMessage(Message message)
        {
            string typeName   = SoapContentTypeHeader.ReadHeader(message);
            Type   targetType = GetRequestType(typeName);

            return(RequestMetadata.FromSoapMessage(message, targetType));
        }
예제 #2
0
        private void GetOneWay(RequestMetadata metadata)
        {
            var service = (IGetOneWay <TRequest>)_creator();
            var request = metadata.GetRequest <TRequest>();

            service.GetOneWay(request);
        }
예제 #3
0
        public void ProcessOneWay(RequestMetadata metadata)
        {
            switch (metadata.OperationType)
            {
            case OperationType.Get:
                GetOneWay(metadata);
                break;

            case OperationType.Post:
                PostOneWay(metadata);
                break;

            case OperationType.Put:
                PutOneWay(metadata);
                break;

            case OperationType.Delete:
                DeleteOneWay(metadata);
                break;

            default:
                string message = string.Format("Invalid operation type: {0}", metadata.OperationType);
                throw Error.InvalidOperation(message);
            }
        }
예제 #4
0
        private void Delete(RequestMetadata metadata)
        {
            var service = (IDelete <TRequest>)_creator();
            var request = metadata.GetRequest <TRequest>();

            service.Delete(request);
        }
예제 #5
0
        public void Process(RequestMetadata metadata)
        {
            switch (metadata.OperationType)
            {
            case OperationType.Get:
                Get(metadata);
                break;

            case OperationType.Post:
                Post(metadata);
                break;

            case OperationType.Put:
                Put(metadata);
                break;

            case OperationType.Delete:
                Delete(metadata);
                break;

            default:
                string message = string.Format("Invalid operation type: {0}", metadata.OperationType);
                throw new InvalidOperationException(message);
            }
        }
예제 #6
0
        private void Put(RequestMetadata metadata)
        {
            var service = (IPut <TRequest>)_creator();
            var request = metadata.GetRequest <TRequest>();

            service.Put(request);
        }
예제 #7
0
        private Message Get(RequestMetadata metadata)
        {
            var    service = (IGet <TRequest>)_creator();
            var    request = metadata.GetRequest <TRequest>();
            object result  = service.Get(request);

            return(metadata.CreateResponse(result));
        }
        internal RequestMetadata FromRestMessage(Message message)
        {
            UriTemplateMatch    templateMatch = WebOperationContext.Current.IncomingRequest.UriTemplateMatch;
            NameValueCollection queryParams   = templateMatch.QueryParameters;
            string typeName   = UrlSerializer.FromQueryParams(queryParams).GetTypeValue();
            Type   targetType = GetRequestType(typeName);

            return(RequestMetadata.FromRestMessage(message, targetType));
        }
예제 #9
0
        public Message Process(RequestMetadata metadata)
        {
            switch (metadata.OperationType)
            {
            case OperationType.Get:
                return(Get(metadata));

            case OperationType.Post:
                return(Post(metadata));

            case OperationType.Put:
                return(Put(metadata));

            case OperationType.Delete:
                return(Delete(metadata));

            default:
                string message = string.Format("Invalid operation type: {0}", metadata.OperationType);
                throw Error.InvalidOperation(message);
            }
        }