Beispiel #1
0
 public Service1(IHeaders headers,
                 IUrlParameters urlParameters,
                 IRequestUri requestUri,
                 OperationContext operationContext,
                 WebOperationContext webOperationContext)
 {
     _Headers             = headers;
     _UrlParameters       = urlParameters;
     _RequestUri          = requestUri;
     _OperationContext    = operationContext;
     _WebOperationContext = webOperationContext;
 }
Beispiel #2
0
        public string AppendParametersToPath(string path, IUrlParameters urlParameters)
        {
            if (urlParameters == null)
            {
                return(path);
            }

            var parameters = new Dictionary <string, string>();

            if (!urlParameters.Version.IsNullOrEmpty())
            {
                parameters.Add("version", urlParameters.Version);
            }
            if (!urlParameters.Routing.IsNullOrEmpty())
            {
                parameters.Add("routing", urlParameters.Routing);
            }
            if (!urlParameters.Parent.IsNullOrEmpty())
            {
                parameters.Add("parent", urlParameters.Parent);
            }

            if (urlParameters.OpType != OpType.None)             // default not set
            {
                parameters.Add("op_type", urlParameters.OpType.ToString().ToLower());
            }

            if (urlParameters.Replication != Replication.Sync)             //sync == default
            {
                parameters.Add("replication", urlParameters.Replication.ToString().ToLower());
            }

            if (urlParameters.Consistency != Consistency.Quorum)             //quorum == default
            {
                parameters.Add("consistency", urlParameters.Consistency.ToString().ToLower());
            }

            if (urlParameters.Refresh)             //false == default
            {
                parameters.Add("refresh", "true");
            }

            if (urlParameters is IndexParameters)
            {
                this.AppendIndexParameters(parameters, (IndexParameters)urlParameters);
            }

            path = AppendEscapedQueryString(parameters, path);
            return(path);
        }
Beispiel #3
0
        public string AppendParametersToPath(string path, IUrlParameters urlParameters)
        {
            if (urlParameters == null)
            {
                return(path);
            }

            var parameters = new List <string>();

            if (!urlParameters.Version.IsNullOrEmpty())
            {
                parameters.Add("version=" + urlParameters.Version);
            }
            if (!urlParameters.Routing.IsNullOrEmpty())
            {
                parameters.Add("routing=" + urlParameters.Routing);
            }
            if (!urlParameters.Parent.IsNullOrEmpty())
            {
                parameters.Add("parent=" + urlParameters.Parent);
            }

            if (urlParameters.OpType != OpType.None)             // default not set
            {
                parameters.Add("op_type=" + urlParameters.OpType.ToString().ToLower());
            }

            if (urlParameters.Replication != Replication.Sync)             //sync == default
            {
                parameters.Add("replication=" + urlParameters.Replication.ToString().ToLower());
            }

            if (urlParameters.Consistency != Consistency.Quorum)             //quorum == default
            {
                parameters.Add("consistency=" + urlParameters.Consistency.ToString().ToLower());
            }

            if (urlParameters.Refresh)             //false == default
            {
                parameters.Add("refresh=true");
            }

            if (urlParameters is IndexParameters)
            {
                this.AppendIndexParameters(parameters, (IndexParameters)urlParameters);
            }

            path += "?" + string.Join("&", parameters.ToArray());
            return(path);
        }
Beispiel #4
0
        /// <summary>
        /// Gets a list of T objects from the server.
        /// </summary>
        /// <param name="restClientAuthenticator"></param>
        /// <param name="controllerName"></param>
        /// <param name="parameterList"></param>
        /// <returns></returns>
        public static ListModel <T> Search(IServerAuthentication restClientAuthenticator, string controllerName, IUrlParameters criteria)
        {
            var baseAddress        = restClientAuthenticator.GetBaseAddress();
            var authorizationToken = restClientAuthenticator.GetToken();

            var tries      = 0;
            var keepTrying = true;

            using (var restClient = new HttpClient())
            {
                restClient.BaseAddress = new Uri(baseAddress);
                restClient.DefaultRequestHeaders.Accept.Clear();
                restClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                while (keepTrying)
                {
                    restClient.DefaultRequestHeaders.Add("Authorization", authorizationToken);

                    HttpResponseMessage response = restClient.GetAsync(string.Format(ApiClientGenericObjectResources.SearchRequestUri, controllerName, "/search?", criteria.GetAsUrlParameters())).Result;

                    if (response.StatusCode == HttpStatusCode.Unauthorized)
                    {
                        authorizationToken = restClientAuthenticator.GetToken(true);

                        tries++;
                        keepTrying = tries < 4;
                    }
                    else
                    {
                        keepTrying = false;

                        if (response.IsSuccessStatusCode)
                        {
                            ListModel <T> genericList = response.Content.ReadAsAsync <ListModel <T> >().Result;

                            return(genericList);
                        }
                        else
                        {
                            throw new ApplicationException(string.Format(ApiClientGenericObjectResources.UnsuccessfulResponseMessage, response.StatusCode.ToString()));
                        }
                    }
                }
                throw new ApplicationException(string.Format(ApiClientGenericObjectResources.UnsuccessfulResponseMessage, HttpStatusCode.Unauthorized.ToString()));
            }
        }
 protected Task <TResult> PostAsync <TResult>(IUrlParameters parameters, object content, CancellationToken ct = default)
 {
     return(PostAsync <TResult>(CreateRequestUrl(parameters as IUrlRouteParameters, parameters as IUrlQueryParameters), content, ct));
 }
 protected Task <TResult> GetAsync <TResult>(IUrlParameters parameters, CancellationToken ct)
 {
     return(GetAsync <TResult>(CreateRequestUrl(parameters as IUrlRouteParameters, parameters as IUrlQueryParameters), ct));
 }