Exemplo n.º 1
10
        public static CanvasDiscussionTopic PostNewDiscussionMessage(int course_id, int discussion_id, string new_html)
        {
            string url        = $"{domain}/api/v1/courses/{course_id}/discussion_topics/{discussion_id}";
            var    restClient = new RestClient(url);
            var    request    = new RestRequest(Method.PUT);

            request.AddHeader("Authorization", $"Bearer {token}");
            RestSharp.Parameter p = new RestSharp.Parameter
            {
                ContentType = "application/x-www-form-urlencoded",
                Name        = "message",
                Value       = new_html,
                Type        = ParameterType.GetOrPost
            };
            request.AddParameter(p);
            var response = restClient.Execute <CanvasDiscussionTopic>(request);

            return(response.Data);
        }
Exemplo n.º 2
0
        public SpreedlyStatus Resolve(Parameter statusHeader)
        {
            if (statusHeader == null)
                throw new ArgumentNullException("statusHeader");

            return ResolveStatusCode(GetStatusCodeString(statusHeader.Value.ToString()));
        }
Exemplo n.º 3
0
        public Usuario RetornaUsuario(string id)
        {
            Usuario u;
            Parameter at = new Parameter();
            Parameter at1 = new Parameter();
            List<Parameter> param = new List<Parameter>();

            //Alimentando parametros
            //at1.Name = "access_token";
            //at1.Value = m.AccessToken;

            at.Name = "user_id";
            at.Value = id;

            param.Add(at);
            //param.Add(at1);

            RestResponse resp = (RestResponse)m.Get("/users/" + id);

            if (resp.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var a = new JsonSerializerSettings();
                u = JsonConvert.DeserializeObject<Usuario>(resp.Content);

                return u;
            }
            else
            {
                throw new Exception("Falha ao tentar recuperar a Usuario");
            }
        }
 public void AddParameter(string name, string value)
 {
     Parameter parm = new RestSharp.Parameter();
     parm.Name = name;
     parm.Value = value;
     parameters.Add(parm);
 }
Exemplo n.º 5
0
        public static CanvasQuiz PostNewQuizDescription(int course_id, int quiz_id, string new_html)
        {
            string url        = $"{domain}/api/v1/courses/{course_id}/quizzes/{quiz_id}";
            var    restClient = new RestClient(url);
            var    request    = new RestRequest(Method.PUT);

            request.AddHeader("Authorization", $"Bearer {token}");
            RestSharp.Parameter p = new RestSharp.Parameter
            {
                ContentType = "application/x-www-form-urlencoded",
                Name        = "quiz[notify_of_update]",
                Value       = false,
                Type        = ParameterType.GetOrPost
            };
            RestSharp.Parameter p2 = new RestSharp.Parameter
            {
                ContentType = "application/x-www-form-urlencoded",
                Name        = "quiz[description]",
                Value       = new_html,
                Type        = ParameterType.GetOrPost
            };
            request.AddParameter(p);
            request.AddParameter(p2);
            var response = restClient.Execute <CanvasQuiz>(request);

            return(response.Data);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Called just before issuing request to third-party service when everything is ready.
        /// Allows to add extra parameters to request or do any other needed preparations.
        /// </summary>
        protected override void BeforeGetUserInfo(BeforeAfterRequestArgs args)
        {
            // Source document
            // http://dev.odnoklassniki.ru/wiki/pages/viewpage.action?pageId=12878032

            args.Request.AddParameter("application_key", _configuration.ClientPublic);
            args.Request.AddParameter("method", "users.getCurrentUser");

            // workaround for current design, oauth_token is always present in URL, so we need emulate it for correct request signing 
            var fakeParam = new Parameter() { Name = "oauth_token", Value = AccessToken };
            args.Request.AddParameter(fakeParam);

            // Signing.
            // Call API methods using access_token instead of session_key parameter
            // Calculate every request signature parameter sig using a little bit different way described in
            // http://dev.odnoklassniki.ru/wiki/display/ok/Authentication+and+Authorization
            // sig = md5( request_params_composed_string+ md5(access_token + application_secret_key)  )
            // Don't include access_token into request_params_composed_string
            string signature = string.Concat(args.Request.Parameters.OrderBy(x => x.Name).Select(x => string.Format("{0}={1}", x.Name, x.Value)).ToList());
            signature = (signature + (AccessToken + _configuration.ClientSecret).GetMd5Hash()).GetMd5Hash();

            // Removing fake param to prevent dups
            args.Request.Parameters.Remove(fakeParam);

            args.Request.AddParameter("access_token", AccessToken);
            args.Request.AddParameter("sig", signature);
        }
Exemplo n.º 7
0
		/// <summary>
		/// Add a parameter to use on every request made with this client instance
		/// </summary>
		/// <param name="restClient">The IRestClient instance</param>
		/// <param name="p">Parameter to add</param>
		/// <returns></returns>
		public static void AddDefaultParameter(this IRestClient restClient, Parameter p)
		{
			if (p.Type == ParameterType.RequestBody)
			{
				throw new NotSupportedException(
					"Cannot set request body from default headers. Use Request.AddBody() instead.");
			}

			restClient.DefaultParameters.Add(p);
		}
Exemplo n.º 8
0
 /// <summary>
 /// Parses the specified header and returns a collection of warning headers discovered and parsed.
 /// </summary>
 /// <param name="header">The header to parse.</param>
 /// <returns>A collection of warning headers that were discovered in the header and parsed.</returns>
 public static IEnumerable<HttpWarning> Parse(Parameter header)
 {
     if (header != null && header.Value != null)
     {
         foreach (Match match in regex.Matches(header.Value.ToString()))
         {
             yield return HttpWarning.Parse(match.Value);
         }
     }
 }
Exemplo n.º 9
0
        /// <summary>从RestSharp Parameter转换参数
        /// </summary>
        public static Parameter TransferToParameter(this RestSharp.Parameter parameter)
        {
            var p = new Parameter()
            {
                Name        = parameter.Name,
                Value       = parameter.Value,
                ContentType = parameter.ContentType,
                Type        = parameter.Type.TransferToParameterType(),
                DataFormat  = parameter.DataFormat.TransferToDataFormat()
            };

            return(p);
        }
Exemplo n.º 10
0
		public void HandleErrors ()
		{
			Meli.ApiUrl = "http://localhost:3000";
			Meli m = new Meli (123456, "client secret", "invalid token");

			var p = new Parameter ();
			p.Name = "access_token";
			p.Value = m.AccessToken;
			var ps = new List<Parameter> ();
			ps.Add (p);
			var response = m.Get ("/users/me", ps);
			Assert.AreEqual (HttpStatusCode.Forbidden, response.StatusCode);
		}
 public IEnumerable<CrmContact> GetContacts(long responsibleUserId)
 {
     var contacts = new List<CrmContact>();
     for (var offset = 0;; offset += _crmConfig.LimitRows ?? 500)
     {
         _crmConfig.LimitOffset = offset;
         var parameterResponsibleUserId = new Parameter {Name = "responsible_user_id", Value = responsibleUserId, Type = ParameterType.QueryString};
         var contactsList = AmoMethod.Get<CrmContactResponse>(_crmConfig, parameterResponsibleUserId);
         if (contactsList == null)
             break;
         contacts.AddRange(contactsList.Response.Contacts);
     }
     return contacts;
 }
Exemplo n.º 12
0
 public IEnumerable<CrmContact> GetContacts(string query)
 {
     var contacts = new List<CrmContact>();
     for (var offset = 0;; offset += _crmConfig.LimitRows ?? 500)
     {
         _crmConfig.LimitOffset = offset;
         var parameterQuery = new Parameter {Name = "query", Value = query, Type = ParameterType.QueryString};
         var contactsList = AmoMethod.Get<CrmGetContactResponse>(_crmConfig, parameterQuery);
         if (contactsList == null)
             break;
         contacts.AddRange(contactsList.Response.Contacts);
     }
     return contacts;
 }
Exemplo n.º 13
0
		public void GetWithRefreshToken ()
		{
			Meli.ApiUrl = "http://localhost:3000";

			Meli m = new Meli (123456, "client secret", "expired token", "valid refresh token");

			var p = new Parameter ();
			p.Name = "access_token";
			p.Value = m.AccessToken;

			var ps = new List<Parameter> ();
			ps.Add (p);
			var response = m.Get ("/users/me", ps);

			Assert.AreEqual (HttpStatusCode.OK, response.StatusCode);
			Assert.IsNotNullOrEmpty (response.Content);
		}
        /// <summary>
        /// Parameterizes this <see cref="ShopifyOrderFilterOptions"/> class, with special handling for <see cref="Ids"/>.
        /// </summary>
        /// <param name="propName">The name of the property. Will match the property's <see cref="JsonPropertyAttribute"/> name — 
        /// rather than the real property name — where applicable. Use <paramref name="property"/>.Name to get the real name.</param>
        /// <param name="value">The property's value.</param>
        /// <param name="property">The property itself.</param>
        /// <param name="type">The type of parameter to create.</param>
        /// <returns>The new parameter.</returns>
        public override Parameter ToSingleParameter(string propName, object value, PropertyInfo property, ParameterType type)
        {
            if (propName == "ids" || propName == "Ids")
            {
                //RestSharp does not automatically convert arrays into querystring params.
                var param =  new Parameter()
                {
                    Name = propName,
                    Type = type,
                    Value = string.Join(",", value as IEnumerable<long> )
                };

                return param;
            }
            
            return base.ToSingleParameter(propName, value, property, type);
        }
Exemplo n.º 15
0
        public static CanvasQuizQuesiton PostNewQuizQuestionAnswerComment(int course_id, int quiz_id, int question_id, List <CanvasQuizQuestionAnswers> new_answers)
        {
            string url        = $"{domain}/api/v1/courses/{course_id}/quizzes/{quiz_id}/questions/{question_id}";
            var    restClient = new RestClient(url);
            var    request    = new RestRequest(Method.PUT);

            request.AddHeader("Authorization", $"Bearer {token}");
            RestSharp.Parameter p = new RestSharp.Parameter
            {
                ContentType = "application/x-www-form-urlencoded",
                Name        = "question[answers]",
                Value       = new_answers,
                Type        = ParameterType.GetOrPost
            };
            request.AddParameter(p);
            var response = restClient.Execute <CanvasQuizQuesiton>(request);

            return(response.Data);
        }
Exemplo n.º 16
0
        public static CanvasPage PostNewPageContent(int course_id, string page_url, string new_html)
        {
            string url        = $"{domain}/api/v1/courses/{course_id}/pages/{page_url}";
            var    restClient = new RestClient(url);
            var    request    = new RestRequest(Method.PUT);

            request.AddHeader("Authorization", $"Bearer {token}");
            RestSharp.Parameter p = new RestSharp.Parameter
            {
                ContentType = "application/x-www-form-urlencoded",
                Name        = "wiki_page[body]",
                Value       = new_html,
                Type        = ParameterType.GetOrPost
            };
            request.AddParameter(p);
            var response = restClient.Execute <CanvasPage>(request);

            return(response.Data);
        }
Exemplo n.º 17
0
        public static CanvasAssignment PostNewAssignmentDescription(int course_id, int assignment_id, string new_html)
        {
            string url        = $"{domain}/api/v1/courses/{course_id}/assignments/{assignment_id}";
            var    restClient = new RestClient(url);
            var    request    = new RestRequest(Method.PUT);

            request.AddHeader("Authorization", $"Bearer {token}");
            RestSharp.Parameter p = new RestSharp.Parameter
            {
                ContentType = "application/x-www-form-urlencoded",
                Name        = "assignment[description]",
                Value       = new_html,
                Type        = ParameterType.GetOrPost
            };
            request.AddParameter(p);
            var response = restClient.Execute <CanvasAssignment>(request);

            return(response.Data);
        }
Exemplo n.º 18
0
        public void ResponderPergunta(decimal idQuestion, string texto)
        {
            try
            {
                Parameter at = new Parameter();
                List<Parameter> param = new List<Parameter>();

                //Alimentando parametros
                at.Name = "access_token";
                at.Value = m.AccessToken;

                param.Add(at);

                m.Post("/answers", param, new { question_id = idQuestion, text = texto });

            }
            catch (Exception ex)
            {

                throw new Exception("Erro na rotina ResponderPergunta", ex);
            }
        }
Exemplo n.º 19
0
        public Question RetonarQuestion(string resource)
        {
            try
            {
                Question q;
                Parameter at = new Parameter();
                List<Parameter> param = new List<Parameter>();

                //Alimentando parametros
                at.Name = "access_token";
                at.Value = m.AccessToken;

                param.Add(at);

                RestResponse resp = (RestResponse)m.Get(resource, param);

                if (resp.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var a = new JsonSerializerSettings();
                    q = JsonConvert.DeserializeObject<Question>(resp.Content);

                    FinalizaML(m.AccessToken, m.RefreshToken);

                    return q;

                }
                else
                {
                    throw new Exception(string.Format("Falha ao tentar recuperar a pergunta {0}  resp.StatusCode = {1} {0} resource = {2} {0}", Environment.NewLine, resp.StatusCode, resource));
                }

            }
            catch (Exception ex)
            {

                throw new Exception("Erro na rotina RetonarQuestion.", ex);
            }
        }
Exemplo n.º 20
0
        public ListOrder RetornarOrdens(Usuario u, Int32 ofset)
        {
            ListOrder o;
            Parameter at = new Parameter();
            Parameter seller = new Parameter();
            Parameter offset = new Parameter();
            List<Parameter> param = new List<Parameter>();

            //Alimentando parametros
            at.Name = "access_token";
            at.Value = m.AccessToken;

            seller.Name = "seller";
            seller.Value = u.id;

            offset.Name = "offset";
            offset.Value = ofset;

            //Adicionando na lista
            param.Add(seller);
            param.Add(at);
            param.Add(offset);

            RestResponse resp = (RestResponse)m.Get("/orders/search", param);
            //offset
            if (resp.StatusCode == System.Net.HttpStatusCode.OK)
            {

                var a = new JsonSerializerSettings();
                o = JsonConvert.DeserializeObject<ListOrder>(resp.Content);

                return o;
            }
            else
            {
                throw new Exception("Falha ao tentar recuperar a lista de ordens");
            }
        }
Exemplo n.º 21
0
        /// <summary>根据HttpBuilder构建RequestRequest请求
        /// </summary>
        public static IRestRequest BuildRequest(this HttpBuilder builder)
        {
            IRestRequest request = new RestRequest
            {
                Method   = ParseMethod(builder.Method),
                Resource = builder.Resource.IsNullOrWhiteSpace() ? "" : builder.Resource
            };

            foreach (var parameter in builder.Parameters)
            {
                var p = new RestSharp.Parameter()
                {
                    Name        = parameter.Name,
                    Value       = parameter.Value,
                    DataFormat  = parameter.DataFormat.ParseDataFormat(),
                    ContentType = parameter.ContentType,
                    Type        = parameter.Type.ParseParameterType()
                };
                request.AddParameter(p);
            }

            foreach (var file in builder.Files)
            {
                var f = new RestSharp.FileParameter()
                {
                    Name          = file.Name,
                    FileName      = file.FileName,
                    ContentLength = file.ContentLength,
                    ContentType   = file.ContentType,
                    Writer        = file.Writer
                };
                request.Files.Add(f);
            }

            return(request);
        }
Exemplo n.º 22
0
 private void AddPostParameter(IRestRequest request, string name, object value)
 {
     Parameter p = new Parameter();
     p.Type = ParameterType.GetOrPost;
     p.Name = name;
     p.Value = value;
     request.AddParameter(p);
 }
Exemplo n.º 23
0
        private RestRequest RequestFromIARequest(IARequest request)
        {
            RestRequest result = new RestRequest();
            switch (request.Route.Action)
            {
                case "GET":
                    result.Method = Method.GET;
                    break;
                case "POST":
                    result.Method = Method.POST;
                    break;
                case "PUT":
                    result.Method = Method.PUT;
                    break;
                case "OPTIONS":
                    result.Method = Method.OPTIONS;
                    break;
                case "DELETE":
                    result.Method = Method.DELETE;
                    break;
                case "HEAD":
                    result.Method = Method.HEAD;
                    break;
                case "PATCH":
                    result.Method = Method.PATCH;
                    break;
                default:
                    result.Method = Method.GET;
                    break;
            }
            Dictionary<string, string> parameters = new Dictionary<string, string>(request.Parameters);
            result.Resource = ReplaceParameters(request.Route.Resource, parameters);
            foreach (KeyValuePair<string, string> parameter in parameters)
            {
                result.AddParameter(parameter.Key, parameter.Value);
            }
            if (request.Origin != null)
            {
                result.AddHeader("X-IA-Origin", request.Origin.Name);
            }
            foreach (KeyValuePair<string, string> metaentry in request.Metadata)
            {
                result.AddHeader(metaentry.Key, metaentry.Value);
            }

            result.AddHeader("Content-Type", request.ContentType);

            Parameter p = new Parameter();
            p.Value = System.Text.Encoding.UTF8.GetString(request.Body);
            p.Type = ParameterType.RequestBody;
            result.Parameters.Add(p);

            return result;
        }
Exemplo n.º 24
0
 public IRestRequest AddParameter(Parameter p)
 {
     return _restRequest.AddParameter(p);
 }
Exemplo n.º 25
0
        /// <summary>
        /// Gets the promos.
        /// </summary>
        /// <param name="categoryId">The category identifier.</param>
        /// <param name="errorResponse">The error response.</param>
        /// <param name="isTopFree">if set to <c>true</c> [is top free].</param>
        /// <param name="isFeatured">if set to <c>true</c> [is featured].</param>
        /// <param name="isTopPaid">if set to <c>true</c> [is top paid].</param>
        /// <returns></returns>
        public List<Promo> GetPromos(int? categoryId, out string errorResponse, bool isTopFree = false, bool isFeatured = false, bool isTopPaid = false)
        {
            errorResponse = string.Empty;

            // setup REST call
            var client = new RestClient( _rockStoreUrl );
            client.Timeout = _clientTimeout;
            var request = new RestRequest();
            request.Method = Method.GET;

            if (categoryId.HasValue) {
                request.Resource = string.Format( "Api/Promos/GetByCategory/{0}", categoryId.Value.ToString().ToString() );
            }
            else
            {
                request.Resource = "Api/Promos/GetNonCategorized";
            }

            if ( isTopFree )
            {
                Parameter parm = new Parameter();
                parm.Name = "$filter";
                parm.Value = "IsTopFree eq true";
                parm.Type = ParameterType.QueryString;
                request.AddParameter( parm );
            }

            if ( isTopPaid )
            {
                Parameter parm = new Parameter();
                parm.Name = "$filter";
                parm.Value = "IsTopPaid eq true";
                parm.Type = ParameterType.QueryString;
                request.AddParameter( parm );
            }

            if ( isFeatured )
            {
                Parameter parm = new Parameter();
                parm.Name = "$filter";
                parm.Value = "IsFeatured eq true";
                parm.Type = ParameterType.QueryString;
                request.AddParameter( parm );
            }

            // deserialize to list of packages
            var response = client.Execute<List<Promo>>( request );

            if ( response.ResponseStatus == ResponseStatus.Completed )
            {
                return response.Data;
            }
            else
            {
                errorResponse = response.ErrorMessage;
                return new List<Promo>();
            }
        }
        /// <summary>
        /// Connection workflow logic with backoff time of 60s
        /// </summary>
        private bool doRESTAuthentication()
        {
            logger.Debug(MethodBase.GetCurrentMethod().Name + "() - START");

            bool success = false;
            this.REST_AccessToken = "";

            lock (this)
            {
                isReAuthenticating = true;
                // Already connected
                //if (this.IsAccessTokenAvailable)
                //{
                //throw new InvalidOperationException("Already connected.");
                //}

                bool isAuthenticated = false;
                bool isFirstTime = true;
                int tryCounter = 0;

                while (!isAuthenticated && (tryCounter < this.retryAuthCount))
                {
                    try
                    {
                        if (!isFirstTime)
                        {
                            logger.Debug("" + MethodBase.GetCurrentMethod().Name + "()] Waiting for " + this.retryAuthTimeMs + "ms before retrying REST Auth.");
                            Console.WriteLine(DateTime.Now.ToString() + " Waiting for " + this.retryAuthTimeMs + "ms before retrying REST Auth.");
                            Thread.Sleep(this.retryAuthTimeMs);
                        }

                        logger.Debug(MethodBase.GetCurrentMethod().Name + "() - Creating RestClient...");
                        Console.WriteLine(DateTime.Now.ToString() + " Creating RestClient...");

                        /* See http://restsharp.org/ for more info about the following authentication flow logic:
                        */

                        var client = new RestClient();
                        client.BaseUrl = this.REST_Auth_BaseUrl;

                        logger.Debug(MethodBase.GetCurrentMethod().Name + "() - Creating HttpBasicAuthenticator...");
                        Console.WriteLine(DateTime.Now.ToString() + " Creating HttpBasicAuthenticator...");

                        //connect using the Client ID and Client Secret provided on the code.mxit.com Dashboard
                        client.Authenticator = new HttpBasicAuthenticator(this.REST_ClientId, this.REST_ClientSecret);

                        logger.Debug(MethodBase.GetCurrentMethod().Name + "() - Creating RestRequest..");
                        Console.WriteLine(DateTime.Now.ToString() + " Creating RestRequest...");

                        var RESTRequest = new RestRequest();
                        RESTRequest.Resource = "/token";
                        RESTRequest.Method = Method.POST;

                        //Always "client_credentials" (http://dev.mxit.com/docs/authentication)
                        Parameter parameter1 = new Parameter();
                        parameter1.Name = "grant_type";
                        parameter1.Value = this.REST_grant_type;
                        parameter1.Type = ParameterType.GetOrPost;
                        RESTRequest.Parameters.Add(parameter1);

                        //The list of scopes which you are requesting access to. (http://dev.mxit.com/docs/authentication)
                        Parameter parameter2 = new Parameter();
                        parameter2.Name = "scope";
                        parameter2.Value = this.REST_scope;
                        parameter2.Type = ParameterType.GetOrPost;
                        RESTRequest.Parameters.Add(parameter2);

                        logger.Debug(MethodBase.GetCurrentMethod().Name + "() - Executing RestRequest...");
                        Console.WriteLine(DateTime.Now.ToString() + " Executing RestRequest...");

                        RestResponse RESTResponse = (RestResponse)client.Execute(RESTRequest);

                        //Deserialize the response string from the REST request, and convert to a Dictionary collection:
                        Dictionary<string, string> RESTResponseDict = JsonConvert.DeserializeObject<Dictionary<string, string>>(RESTResponse.Content);

                        //Get the accessToken from the Dictionary:
                        String receivedAccessToken = RESTResponseDict["access_token"];

                        bool gotValidAccessToken = (!String.IsNullOrEmpty(receivedAccessToken));

                        if (gotValidAccessToken)
                        {
                            logger.Debug(MethodBase.GetCurrentMethod().Name + "() - AccessToken RECEIVED: " + receivedAccessToken);
                            Console.WriteLine(DateTime.Now.ToString() + " AccessToken RECEIVED: " + receivedAccessToken);

                            this.REST_AccessToken = receivedAccessToken;
                            isAuthenticated = true;
                            success = true;
                        }
                        else
                        {
                            logger.Error(MethodBase.GetCurrentMethod().Name + "() - AccessToken Empty!");
                            Console.WriteLine(DateTime.Now.ToString() + " AccessToken Empty!");
                            isAuthenticated = false;
                            success = false;
                        }

                    }
                    catch (Exception ex)
                    {
                        logger.Debug(MethodBase.GetCurrentMethod().Name + "() - Problem authenticating against Mxit REST Service: " + ex.ToString());
                        Console.WriteLine(DateTime.Now.ToString() + " Problem authenticating against Mxit REST Service, going to keep on trying");
                        isFirstTime = false;
                    }

                    //Increment the try counter within the loop:
                    tryCounter += 1;

                    isFirstTime = false;

                } //loop

                logger.Debug("[" + MethodBase.GetCurrentMethod().Name + "()] - END");

                isReAuthenticating = false;

            }//lock

            return success;
        }
 public virtual IEnumerable<Inbound> SearchBySerialNumber(IEnumerable<string> serialNumbers)
 {
     var parameters = new Parameter { Name = "serial_numbers", Value = String.Join(",", serialNumbers), Type = ParameterType.QueryString };
     return this.Get<IEnumerable<Inbound>>(Resource + "/findbyserialnumber", parameters);
 }
Exemplo n.º 28
0
 private static string EncodeParameter(Parameter parameter)
 {
     return((parameter.Value == null) ? (parameter.Name.UrlEncode() + "=") : (parameter.Name.UrlEncode() + "=" + parameter.Value.ToString().UrlEncode()));
 }
 private string RemoveBaseUrl(Parameter newLocation)
 {
     return(newLocation.Value.ToString().Replace(Connection.ApiUrl.ToString(), string.Empty));
 }
Exemplo n.º 30
0
        private void ConfigureHttp(IRestRequest request, IHttp http)
        {
            http.Encoding = this.Encoding;
            http.AlwaysMultipartFormData = request.AlwaysMultipartFormData;
            http.UseDefaultCredentials   = request.UseDefaultCredentials;
            http.ResponseWriter          = request.ResponseWriter;
            http.CookieContainer         = this.CookieContainer;

            // move RestClient.DefaultParameters into Request.Parameters
            foreach (Parameter p in this.DefaultParameters)
            {
                if (request.Parameters.Any(p2 => p2.Name == p.Name && p2.Type == p.Type))
                {
                    continue;
                }

                request.AddParameter(p);
            }

            // Add Accept header based on registered deserializers if none has been set by the caller.
            if (request.Parameters.All(p2 => p2.Name.ToLowerInvariant() != "accept"))
            {
                string accepts = string.Join(", ", this.AcceptTypes.ToArray());

                request.AddParameter("Accept", accepts, ParameterType.HttpHeader);
            }

            http.Url             = this.BuildUri(request);
            http.PreAuthenticate = this.PreAuthenticate;

            string userAgent = this.UserAgent ?? http.UserAgent;

            http.UserAgent = userAgent.HasValue()
                ? userAgent
                : "RestSharp/" + version;

            int timeout = request.Timeout > 0
                ? request.Timeout
                : this.Timeout;

            if (timeout > 0)
            {
                http.Timeout = timeout;
            }

            int readWriteTimeout = request.ReadWriteTimeout > 0
                ? request.ReadWriteTimeout
                : this.ReadWriteTimeout;

            if (readWriteTimeout > 0)
            {
                http.ReadWriteTimeout = readWriteTimeout;
            }

#if !SILVERLIGHT
            http.FollowRedirects = this.FollowRedirects;
#endif

#if FRAMEWORK
            if (this.ClientCertificates != null)
            {
                http.ClientCertificates = this.ClientCertificates;
            }

            http.MaxRedirects = this.MaxRedirects;
            http.CachePolicy  = this.CachePolicy;
#endif

            if (request.Credentials != null)
            {
                http.Credentials = request.Credentials;
            }

            IEnumerable <HttpHeader> headers = from p in request.Parameters
                                               where p.Type == ParameterType.HttpHeader
                                               select new HttpHeader
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpHeader header in headers)
            {
                http.Headers.Add(header);
            }

            IEnumerable <HttpCookie> cookies = from p in request.Parameters
                                               where p.Type == ParameterType.Cookie
                                               select new HttpCookie
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpCookie cookie in cookies)
            {
                http.Cookies.Add(cookie);
            }

            IEnumerable <HttpParameter> @params = from p in request.Parameters
                                                  where p.Type == ParameterType.GetOrPost && p.Value != null
                                                  select new HttpParameter
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpParameter parameter in @params)
            {
                http.Parameters.Add(parameter);
            }

            foreach (FileParameter file in request.Files)
            {
                http.Files.Add(new HttpFile
                {
                    Name          = file.Name,
                    ContentType   = file.ContentType,
                    Writer        = file.Writer,
                    FileName      = file.FileName,
                    ContentLength = file.ContentLength
                });
            }

            Parameter body = request.Parameters.FirstOrDefault(p => p.Type == ParameterType.RequestBody);

            // Only add the body if there aren't any files to make it a multipart form request
            // If there are files, then add the body to the HTTP Parameters
            if (body != null)
            {
                http.RequestContentType = body.Name;

                if (!http.Files.Any())
                {
                    object val = body.Value;

                    if (val is byte[])
                    {
                        http.RequestBodyBytes = (byte[])val;
                    }
                    else
                    {
                        http.RequestBody = Convert.ToString(body.Value);
                    }
                }
                else
                {
                    http.Parameters.Add(new HttpParameter
                    {
                        Name        = body.Name,
                        Value       = Convert.ToString(body.Value),
                        ContentType = body.ContentType
                    });
                }
            }
#if FRAMEWORK
            this.ConfigureProxy(http);
#endif
        }
Exemplo n.º 31
0
 public CrmContact GetContact(long contactId)
 {
     var parameterId = new Parameter {Name = "id", Value = contactId, Type = ParameterType.QueryString};
     var contact = AmoMethod.Get<CrmGetContactResponse>(_crmConfig, parameterId);
     return contact.Response.Contacts.FirstOrDefault();
 }
Exemplo n.º 32
0
        public Usuario RetornaUsuario()
        {
            try
            {

                Usuario u = new Usuario();
                Parameter at = new Parameter();
                List<Parameter> param = new List<Parameter>();

                //Alimentando parametros
                at.Name = "access_token";
                at.Value = m.AccessToken;

                //Adicionando na lista
                param.Add(at);

                RestResponse resp = (RestResponse)m.Get("/users/me", param);

                if (resp.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var a = new JsonSerializerSettings();
                    u = JsonConvert.DeserializeObject<Usuario>(resp.Content);

                    FinalizaML(m.AccessToken, m.RefreshToken);
                    return u;
                }
                else
                {
                    throw new Exception(String.Format("Usuario não encontrado. {0} codigo: {1} {0}", Environment.NewLine));
                }

            }
            catch (Exception ex)
            {

                throw new Exception(String.Format("Erro na rotina RetornaUsuario. {0} codigo: {1} {0}", Environment.NewLine), ex);
            }
        }
Exemplo n.º 33
0
        private void ConfigureHttp(IRestRequest request, IHttp http)
        {
            http.Encoding = Encoding;
            http.AlwaysMultipartFormData = request.AlwaysMultipartFormData;
            http.UseDefaultCredentials   = request.UseDefaultCredentials;
            http.ResponseWriter          = request.ResponseWriter;
            http.CookieContainer         = CookieContainer;
            using (IEnumerator <Parameter> enumerator = DefaultParameters.GetEnumerator())
            {
                Parameter p3;
                while (enumerator.MoveNext())
                {
                    p3 = enumerator.Current;
                    if (!request.Parameters.Any((Parameter p2) => p2.Name == p3.Name && p2.Type == p3.Type))
                    {
                        request.AddParameter(p3);
                    }
                }
            }
            if (request.Parameters.All((Parameter p2) => p2.Name.ToLowerInvariant() != "accept"))
            {
                string value = string.Join(", ", AcceptTypes.ToArray());
                request.AddParameter("Accept", value, ParameterType.HttpHeader);
            }
            http.Url             = BuildUri(request);
            http.PreAuthenticate = PreAuthenticate;
            string text = UserAgent ?? http.UserAgent;

            http.UserAgent = (text.HasValue() ? text : ("RestSharp/" + version));
            int num = (request.Timeout > 0) ? request.Timeout : Timeout;

            if (num > 0)
            {
                http.Timeout = num;
            }
            int num2 = (request.ReadWriteTimeout > 0) ? request.ReadWriteTimeout : ReadWriteTimeout;

            if (num2 > 0)
            {
                http.ReadWriteTimeout = num2;
            }
            http.FollowRedirects = FollowRedirects;
            if (ClientCertificates != null)
            {
                http.ClientCertificates = ClientCertificates;
            }
            http.MaxRedirects = MaxRedirects;
            if (request.Credentials != null)
            {
                http.Credentials = request.Credentials;
            }
            IEnumerable <HttpHeader> enumerable = from p in request.Parameters
                                                  where p.Type == ParameterType.HttpHeader
                                                  select new HttpHeader
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpHeader item in enumerable)
            {
                http.Headers.Add(item);
            }
            IEnumerable <HttpCookie> enumerable2 = from p in request.Parameters
                                                   where p.Type == ParameterType.Cookie
                                                   select new HttpCookie
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpCookie item2 in enumerable2)
            {
                http.Cookies.Add(item2);
            }
            IEnumerable <HttpParameter> enumerable3 = from p in request.Parameters
                                                      where p.Type == ParameterType.GetOrPost && p.Value != null
                                                      select new HttpParameter
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpParameter item3 in enumerable3)
            {
                http.Parameters.Add(item3);
            }
            foreach (FileParameter file in request.Files)
            {
                http.Files.Add(new HttpFile
                {
                    Name          = file.Name,
                    ContentType   = file.ContentType,
                    Writer        = file.Writer,
                    FileName      = file.FileName,
                    ContentLength = file.ContentLength
                });
            }
            Parameter parameter = (from p in request.Parameters
                                   where p.Type == ParameterType.RequestBody
                                   select p).FirstOrDefault();

            if (parameter != null)
            {
                http.RequestContentType = parameter.Name;
                if (!http.Files.Any())
                {
                    object value2 = parameter.Value;
                    if (value2 is byte[])
                    {
                        http.RequestBodyBytes = (byte[])value2;
                    }
                    else
                    {
                        http.RequestBody = Convert.ToString(parameter.Value);
                    }
                }
                else
                {
                    http.Parameters.Add(new HttpParameter
                    {
                        Name  = parameter.Name,
                        Value = Convert.ToString(parameter.Value)
                    });
                }
            }
            ConfigureProxy(http);
        }
Exemplo n.º 34
0
        static IRestResponse Request(string pathRequest, DataFormat df, Method method, Parameter[] parameters = null, string customServer = null, object body = null)
        {
            // save to storage
            string storageKey = string.Empty;
            if (parameters != null)
                foreach (var p in parameters)
                storageKey = pathRequest.Replace ("{" + p.Name + "}", p.Value.ToString ());
            else
                storageKey = pathRequest;

            if (!CheckForInternetConnection ()) {
                RestResponse pseudoResp = new RestResponse ();
                pseudoResp.Content = Storage.Get (storageKey);
                return pseudoResp;
            }

            RestRequest request;
            if (customServer != null) {
                webClient = new RestClient (customServer);
                request = new RestRequest (method);
            } else {
                webClient = new RestClient (serverApi);
                request = new RestRequest (pathRequest, method);
            }

            request.RequestFormat = df; // json и пр

            if (parameters != null)
                foreach (var param in parameters)
                    request.AddParameter (param.Name, param.Value, param.Type);

            if (body != null)
                request.AddBody (body);

            // добавляем если есть авторизационный токен
            //if (!EmptyAccToken())
            //	request.AddParameter("Authorization", GetAccessToken(), ParameterType.HttpHeader);

            // запускаем и получаем ответ
            var response = webClient.Execute (request);

            if(pathRequest!=null)
            Storage.Put (storageKey,response.Content);

            return response;
        }
Exemplo n.º 35
0
        /// <summary>
        /// Add the parameter to the request
        /// </summary>
        /// <param name="p">Parameter to add</param>
        /// <returns></returns>
        public IRestRequest AddParameter(Parameter p)
        {
            this.Parameters.Add(p);

            return this;
        }
 public virtual IEnumerable<Inbound> GetUpdatedAfter(DateTime date)
 {
     var parameters = new Parameter { Name = "updated_at__gt", Value = date.ToString("O"), Type = ParameterType.QueryString };
     return this.Get<IEnumerable<Inbound>>(Resource, parameters);
 }
Exemplo n.º 37
0
 /// <summary>
 /// Called just before issuing request to third-party service when everything is ready.
 /// Allows to add extra parameters to request or do any other needed preparations.
 /// </summary>
 protected override void BeforeGetUserInfo(BeforeAfterRequestArgs args)
 {
     // workaround for current design, oauth_token is always present in URL, so we need emulate it for correct request signing
     var accessToken = new Parameter { Name = "access_token", Value = AccessToken };
     args.Request.AddParameter(accessToken);
 }
 public string Serialize(RestSharp.Parameter bodyParameter) =>
 JsonConvert.SerializeObject(bodyParameter.Value);
Exemplo n.º 39
0
        public Order RetornaOrder(string codigo)
        {
            try
            {

                Order q;
                Parameter at = new Parameter();
                List<Parameter> param = new List<Parameter>();

                //Alimentando parametros
                at.Name = "access_token";
                at.Value = m.AccessToken;

                //Adicionando na lista
                param.Add(at);

                RestResponse resp = (RestResponse)m.Get(codigo, param);

                if (resp.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var a = new JsonSerializerSettings();
                    q = JsonConvert.DeserializeObject<Order>(resp.Content);

                    FinalizaML(m.AccessToken, m.RefreshToken);

                    return q;
                }
                else
                {
                    throw new Exception(String.Format("Ordem não encontrada. {0} codigo: {1} {0}",Environment.NewLine, codigo));
                }

            }
            catch (Exception ex)
            {

                throw new Exception(String.Format("Erro na rotina RetornaOrder: {0} codigo: {1} {0}", Environment.NewLine, codigo), ex);
            }
        }
Exemplo n.º 40
0
        private IEnumerable<Parameter> CreateParameters(SearchCriteria criteria, int page)
        {
            var result = new List<Parameter>();
            if (criteria == null) return result;

            if (criteria.Translation || criteria.Interpreting || criteria.Potential)
            {
                var value = new StringBuilder();
                if (criteria.Translation)
                {
                    value.Append(value.Length == 0 ? "translation" : ",translation");
                }
                if (criteria.Interpreting)
                {
                    value.Append(value.Length == 0 ? "interpret" : ",interpret");
                }
                if (criteria.Potential)
                {
                    value.Append(value.Length == 0 ? "potential" : ",potential");
                }
                var typeParameter = new Parameter
                {
                    Type = ParameterType.QueryString,
                    Value = value.ToString(),
                    Name = "type"
                };
                result.Add(typeParameter);
            }

            if (criteria.LanguagePair.Source.LanguageCode != "all" && criteria.LanguagePair.Target.LanguageCode != "all")
            {
                var languagePairParameter = new Parameter
                {
                    Type = ParameterType.QueryString,
                    Value = criteria.LanguagePair.Serialize(),
                    Name = "language_pairs"
                };

                result.Add(languagePairParameter);
            }

            if (criteria.Discipline.DiscSpecId != 0)
            {
                var disciplineParameter = new Parameter
                {
                    Type = ParameterType.QueryString,
                    Value = criteria.Discipline.DiscSpecId,
                    Name = "disc_spec_ids"
                };

                result.Add(disciplineParameter);
            }

            if (!string.IsNullOrEmpty(criteria.SearchTerm))
            {
                var searchParameter = new Parameter
                {
                    Type = ParameterType.QueryString,
                    Value = criteria.SearchTerm,
                    Name = "q"
                };

                result.Add(searchParameter);
            }

           
                var pageParameter = new Parameter
                {
                    Type = ParameterType.QueryString,
                    Value = page,
                    Name = "page"
                };

                result.Add(pageParameter);
            
            return result;
        }
Exemplo n.º 41
0
		/// <summary>
		/// Add the parameter to the request
		/// </summary>
		/// <param name="p">Parameter to add</param>
		/// <returns></returns>
		public IRestRequest AddParameter (Parameter p)
		{
			Parameters.Add(p);
			return this;
		}
Exemplo n.º 42
0
        public Item RetornaItem(string codigo)
        {
            try
            {

                Item q;
                Parameter at = new Parameter();
                //Parameter ItemID = new Parameter();
                List<Parameter> param = new List<Parameter>();

                //Alimentando parametros
                at.Name = "access_token";
                at.Value = m.AccessToken;

                //ItemID.Name = "item_id";
                //ItemID.Value = codigo;

                //Adicionando na lista
                //param.Add(ItemID);
                param.Add(at);

                RestResponse resp = (RestResponse)m.Get("items/" + codigo, param);

                if (resp.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var a = new JsonSerializerSettings();
                    q = JsonConvert.DeserializeObject<Item>(resp.Content);

                    FinalizaML(m.AccessToken, m.RefreshToken);

                    return q;
                }
                else
                {
                    throw new Exception(String.Format("Item não encontrado. {0} codigo: {1} {0} resp.Content: {2}  {0} ", Environment.NewLine, codigo, resp.Content));
                }

            }
            catch (Exception ex)
            {

                throw new Exception(String.Format("Erro na rotina RetornaItem: {0} codigo: {1} {0}", Environment.NewLine, codigo), ex);
            }
        }
Exemplo n.º 43
0
 private static string EncodeParameter(Parameter parameter)
 {
     return(parameter.Value == null
         ? string.Concat(parameter.Name.UrlEncode(), "=")
         : string.Concat(parameter.Name.UrlEncode(), "=", parameter.Value.ToString().UrlEncode()));
 }
Exemplo n.º 44
-1
        public void DeleteWithRefreshToken()
        {
            Meli.ApiUrl = "http://localhost:3000";
            Meli m = new Meli (123456, "client secret", "expired token", "valid refresh token");

            var p = new Parameter ();
            p.Name = "access_token";
            p.Value = m.AccessToken;

            var ps = new List<Parameter> ();
            ps.Add (p);
            var r = m.Delete ("/items/123", ps);

            Assert.AreEqual (HttpStatusCode.OK, r.StatusCode);
        }