예제 #1
0
        public void ShouldBuildHttpPostString()
        {
            // arrange
            QueryString qs = new QueryString();
            qs.Add("1", "2");
            qs.Add("3", "4");

            // act and assert
            Assert.AreEqual("1=2&3=4", qs.ToString(HttpAction.Post));
        }
예제 #2
0
        protected void ProcessQueryString(string url, List <KeyValuePair <string, string> > queryString)
        {
            if (!url.HasValue() || url.IndexOf("?", StringComparison.Ordinal) <= -1)
            {
                return;
            }

            var urlQuery = Utilities.SplitOnFirstOccurance(url, '?');
            var query    = urlQuery[1];

            if (!query.HasValue())
            {
                return;
            }

            query = query.Replace(HtmlQuerySeparator, "&");
            var pairs = query.Split('&', StringSplitOptions.RemoveEmptyEntries);

            foreach (var pair in pairs)
            {
                string[] keyValue = Utilities.SplitOnFirstOccurance(pair, '=');
                if (keyValue.Length == 2)
                {
                    QueryString.Add(new KeyValuePair <string, string>(keyValue[0] ?? string.Empty,
                                                                      keyValue[1] ?? string.Empty));
                }
            }
        }
예제 #3
0
 public virtual void AddToQueryString(string key, string value)
 {
     if (key.HasValue() && value.HasValue())
     {
         QueryString.Add(new KeyValuePair <string, string>(key, value));
     }
 }
예제 #4
0
        public virtual string ModifyQueryString(string url, string queryStringModification, string anchor)
        {
            url = url.EmptyNull();
            queryStringModification = queryStringModification.EmptyNull();

            string curAnchor = null;

            var hsIndex = url.LastIndexOf('#');

            if (hsIndex >= 0)
            {
                curAnchor = url.Substring(hsIndex);
                url       = url.Substring(0, hsIndex);
            }

            var parts   = url.Split(new[] { '?' });
            var current = new QueryString(parts.Length == 2 ? parts[1] : "");
            var modify  = new QueryString(queryStringModification);

            foreach (var nv in modify.AllKeys)
            {
                current.Add(nv, modify[nv], true);
            }

            var result = string.Concat(
                parts[0],
                current.ToString(false),
                anchor.NullEmpty() == null ? (curAnchor == null ? "" : "#" + curAnchor) : "#" + anchor
                );

            return(result);
        }
예제 #5
0
        public async Task <IResponseResult <CollectionResponseData <User> > > GetUsersAsync(string token, int?skip, int?limit)
        {
            IQueryString queryString = null;

            if (skip != null)
            {
                queryString = QueryString.Add("skip", skip.Value);
            }
            if (limit != null)
            {
                queryString = queryString == null?QueryString.Add("limit", limit.Value) : queryString.Add("limit", limit.Value);
            }

            var response = await this.UsersEndpoint.PostAsync <CollectionResponse <User> >(
                urlParams : new UsersEndpoint.UsersEndpointUrlParams().SetMembershipId(this.MembershipId).UseMongoQuery(),
                body : new RequestBody(),
                queryString : queryString,
                headers : HeaderCollection.Add("Authorization", $"Bearer {token}"));

            if (response.IsSuccess)
            {
                return(new ResponseResult <CollectionResponseData <User> >(true)
                {
                    Data = response.Data.Data
                });
            }
            else
            {
                return(new ResponseResult <CollectionResponseData <User> >(false, response.Message));
            }
        }
예제 #6
0
 public virtual void AddToQueryString(string key, string value)
 {
     if (key.IsNotNullOrEmpty() && value.IsNotNullOrEmpty())
     {
         QueryString.Add(new KeyValuePair <string, string>(key, value));
     }
 }
        public ActionResult Process(HttpRequestBase request, ModelStateDictionary modelState)
        {
            IpnVerificationBinder binder = new IpnVerificationBinder();
            Transaction tx = binder.Bind(request.Form, modelState);

            ContentResult cr = new ContentResult();
            cr.ContentEncoding = Encoding.UTF8;
            cr.ContentType = "text/html";
            cr.Content = "INVALID";

            if (tx != null)
            {
                Transaction dbTx = m_txRepository.GetAll().Where(x => x.Tx == tx.Tx).FirstOrDefault();
                if (dbTx != null)
                {
                    string expected = dbTx.ToIpnQueryString().ToString();
                    QueryString actualQs = new QueryString();
                    actualQs.Add(request.Form);
                    actualQs.Remove("cmd");
                    string actual = actualQs.ToString();

                    if (expected == actual)
                    {
                        cr.Content = "VERIFIED";
                    }
                }
            }

            return cr;
        }
예제 #8
0
        public void AddNameValue_Success(string query1, string name2, string value2, string expected)
        {
            var q1 = new QueryString(query1);
            var q2 = q1.Add(name2, value2);

            Assert.Equal(expected, q2.Value);
        }
        public void GetUdfData_NoException_ReturnsQueryStringValue()
        {
            // Arrange
            QueryString.Add(UDFdata, UDFdataValue);

            // Act, Assert
            testObject.getUDFData().ShouldBe(UDFdataValue);
        }
예제 #10
0
        /// <summary>
        /// Converts x value in the provided currency to BTC.
        /// </summary>
        /// <param name="currency">Currency code</param>
        /// <param name="value">Value to convert</param>
        /// <returns>Converted value in BTC</returns>
        /// <exception cref="ServerApiException">If the server returns an error</exception>
        public async Task <double> ToBtcAsync(string currency, double value)
        {
            if (string.IsNullOrWhiteSpace(currency))
            {
                throw new ArgumentNullException(nameof(currency));
            }
            if (value <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(value), "Value must be greater than 0");
            }
            QueryString queryString = new QueryString();

            queryString.Add("currency", currency);
            queryString.Add("value", value.ToString());

            return(await httpClient.GetAsync <double>("tobtc", queryString));
        }
예제 #11
0
        public void Should_not_be_able_to_add_duplicate_keys()
        {
            var qs = new QueryString {
                { "key", "value" }
            };

            Assert.Throws <ArgumentException>(() => qs.Add("key", "value"));
        }
        public void GetUdfName_NoException_ReturnsQueryStringValue()
        {
            // Arrange
            QueryString.Add(UDFName, UDFNameValue);

            // Act, Assert
            testObject.getUDFName().ShouldBe(UDFNameValue);
        }
        /// <summary>
        /// Gets a list of currently unconfirmed transactions.
        /// </summary>
        /// <returns>A list of unconfirmed Transaction objects</returns>
        /// <exception cref="ServerApiException">If the server returns an error</exception>
        public async Task <ReadOnlyCollection <Transaction> > GetUnconfirmedTransactionsAsync()
        {
            QueryString queryString = new QueryString();

            queryString.Add("format", "json");

            return(await httpClient.GetAsync("unconfirmed-transactions", queryString, Transaction.DeserializeMultiple));
        }
예제 #14
0
 public RestRequest AddQueryStringValue(string key, string value)
 {
     if (!string.IsNullOrEmpty(key))
     {
         QueryString.Add(new KeyValuePair <string, string>(key, HttpUtility.UrlEncode(value)));
     }
     return(this);
 }
        /// <summary>
        /// Gets the network statistics.
        /// </summary>
        /// <returns>An instance of the StatisticsResponse class</returns>
        /// <exception cref="ServerApiException">If the server returns an error</exception>
        public async Task <StatisticsResponse> GetAsync()
        {
            QueryString queryString = new QueryString();

            queryString.Add("format", "json");

            return(await httpClient.GetAsync <StatisticsResponse>("stats", queryString));
        }
예제 #16
0
        public void AddQueryString_Success(string query1, string query2, string expected)
        {
            var q1 = new QueryString(query1);
            var q2 = new QueryString(query2);

            Assert.Equal(expected, q1.Add(q2).Value);
            Assert.Equal(expected, (q1 + q2).Value);
        }
예제 #17
0
        /// <summary>
        /// Converts a BitcoinValue object to its value in the specified currency
        /// </summary>
        /// <param name="btc">BitcoinValue representing the value to convert from</param>
        /// <param name="currency">Currency code (default USD)</param>
        /// <returns>Converted value in currency of choice</returns>
        public async Task <double> FromBtcAsync(BitcoinValue btc, string currency = "")
        {
            if (btc == null)
            {
                throw new ArgumentNullException(nameof(btc));
            }
            if (btc.GetBtc() <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(btc), "BitcoinValue must represent a value higher than 0");
            }
            QueryString queryString = new QueryString();

            queryString.Add("currency", currency);
            queryString.Add("value", btc.Satoshis.ToString());

            return(await httpClient.GetAsync <double>("frombtc", queryString));
        }
예제 #18
0
        public async Task ShouldConvertArrayToUrl()
        {
            // arrange
            QueryString queryString = new QueryString();
            var         values      = new int[] { 1, 2, 3 };

            // act
            foreach (var v in values)
            {
                queryString.Add("key1", v.ToString());
            }
            queryString.Add("key2", "value2");
            string url = await queryString.AsUrlAsync();

            // assert
            Assert.True(url == "key1=1&key1=2&key1=3&key2=value2");
        }
예제 #19
0
        public void MyFact()
        {
            var queryString = new QueryString();

            queryString.Add("q", "mcdonald");

            Assert.Equal("q=mcdonald", queryString.ToString());
        }
 /// <summary>
 /// Adds the value to the query string if it's not null.
 /// </summary>
 /// <param name="queryString"></param>
 /// <param name="key"></param>
 /// <param name="value"></param>
 internal static void AddIfNotNull <T>(this QueryString queryString, string key, T?value)
     where T : struct
 {
     if (value != null)
     {
         queryString.Add(key, $"{value.Value}");
     }
 }
예제 #21
0
        public async Task <IResponseResult> RevokeTokenAsync(BearerToken token, bool logoutFromAllDevices = false)
        {
            var url         = $"{this.BaseUrl}/revoke-token";
            var headers     = HeaderCollection.Add("Authorization", token.ToString());
            var queryString = logoutFromAllDevices ? QueryString.Add("logout-all", true) : QueryString.Empty;

            return(await this.ExecuteRequestAsync(HttpMethod.Get, url, queryString, headers));
        }
예제 #22
0
        public async Task ReturnSearchResults()
        {
            var qs = new QueryString();

            qs.Add("searchText", "40mm+12v");

            var response = await _client.GetAsync($"{searchEndpoint}{qs.ToUriComponent()}");
        }
예제 #23
0
        /// <summary>
        ///     Gets unspent outputs for a one or more Base58Check and / or xPub addresses.
        /// </summary>
        /// <param name="addressList">IEnumerable of Base58check and / or xPub address strings</param>
        /// <param name="limit">Max amount of unspent outputs to receive (Max 50)</param>
        /// <param name="confirmations">Minimum number of confirmations to receive (Default 0)</param>
        /// <returns>A list of unspent outputs for the specified address </returns>
        /// <exception cref="ServerApiException">If the server returns an error</exception>
        public async Task <ReadOnlyCollection <UnspentOutput> > GetUnspentOutputsAsync(IEnumerable <string> addressList,
                                                                                       int limit = DEFAULT_UNSPENT_TRANSACTIONS_PER_REQUEST, int confirmations = 0)
        {
            if (addressList == null || addressList.Count() == 0)
            {
                throw new ArgumentNullException("No addresses provided");
            }
            if (limit < 1 || limit > DEFAULT_UNSPENT_TRANSACTIONS_PER_REQUEST)
            {
                throw new ArgumentOutOfRangeException(nameof(limit),
                                                      "transaction limit must be greater than 0 and smaller than " +
                                                      DEFAULT_UNSPENT_TRANSACTIONS_PER_REQUEST);
            }
            if (confirmations < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(confirmations),
                                                      "confirmations must be equal to or greater than 0");
            }

            var queryString  = new QueryString();
            var addressQuery = string.Join("|", addressList);

            queryString.Add("active", addressQuery);
            queryString.Add("limit", limit.ToString());
            queryString.Add("confirmations", confirmations.ToString());
            queryString.Add("format", "json");
            try
            {
                return(await httpClient.GetAsync("unspent", queryString, UnspentOutput.DeserializeMultiple));
            }
            catch (Exception ex)
            {
                // Currently the API throws an internal error if there are no free outputs to spend. No free outputs is
                // a legitimate response. Therefore, until we fix this issue, we are circumventing this by returning an empty list
                if (ex.Message.Contains("outputs to spend"))
                {
                    return(new ReadOnlyCollection <UnspentOutput>(new List <UnspentOutput>()));
                }
                if (ex.Message.Contains("Invalid Bitcoin Address"))
                {
                    throw new ArgumentException(nameof(addressQuery), "one or more addresses provided are invalid");
                }
                throw;
            }
        }
예제 #24
0
        private string BuildLeaderboardsRoute(LeaderboardsOptions options)
        {
            StringBuilder sb = new StringBuilder()
                               .Append("/leaderboards")
                               .Append($"/{options.Type.ToString().ToLower()}");

            if (options.GuildId.HasValue)
            {
                sb.Append($"/{options.GuildId}");
            }

            QueryString qs = new QueryString();

            qs.Add("amount", options.Amount);
            qs.Add("offset", options.Offset);

            return(sb.ToString() + qs.Query);
        }
예제 #25
0
        public async Task Should_Returns_Bad_Request_For_Invalid_Values(string firstString, string secondString)
        {
            // Arr
            var queryString = new QueryString();

            queryString = queryString.Add(nameof(firstString), firstString);
            queryString = queryString.Add(nameof(secondString), secondString);

            // Act
            var response = await _client.GetAsync("/api/PrimeString/StringsArePrimes" + queryString.ToUriComponent());

            // Ass
            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            string responseData = response.Content.ReadAsStringAsync().Result;

            responseData.Should().NotBeEmpty();
            responseData.Should().NotBeNull();
        }
예제 #26
0
        public void GivenKeyValuePairQueryString_WhenTransformCalled_ThenEndpointIsChanged()
        {
            QueryString queryString = new QueryString();

            queryString.Add("id", "1");
            Endpoint endpoint = new Endpoint("http://www.google.com/{id}", queryString);

            Assert.Equal("http://www.google.com/1", endpoint.Address);
        }
예제 #27
0
        public void GetUsersTest()
        {
            UsersEndpoint usersEndpoint = new UsersEndpoint(this.BASE_URL);
            string        url           = usersEndpoint.GenerateUrl(
                urlParams: UsersEndpoint.UrlParams.SetMembershipId("<MEMBERSHIP_ID>").SetUserId("<USER_ID>"),
                queryString: QueryString.Add("key", "<API_KEY>"));

            Assert.AreEqual($"{this.BASE_URL}/memberships/<MEMBERSHIP_ID>/users/<USER_ID>?key=<API_KEY>", url);
        }
예제 #28
0
        public void ShouldDecodeWhenGettingValue()
        {
            // arrange
            QueryString qs = new QueryString();
            qs.Add("1", "http%3a%2f%2f");

            // act and assert
            Assert.AreEqual("http://", qs["1"]);
        }
예제 #29
0
        public void ShouldEncodeWhenConvertingToString()
        {
            // arrange
            QueryString qs = new QueryString();
            qs.Add("1", "http://");

            // act and assert
            Assert.AreEqual("?1=http%3a%2f%2f", qs.ToString());
        }
예제 #30
0
        protected static ReadOnlyUrl GetUrl(ReadOnlyUrl baseUrl, int?page, int?items)
        {
            var queryString = new QueryString();

            if (page != null)
            {
                queryString.Add("page", page.Value.ToString());
            }
            if (items != null)
            {
                queryString.Add("items", items.Value.ToString());
            }

            var url = baseUrl.AsNonReadOnly();

            url.QueryString.Add(queryString);
            return(url);
        }
예제 #31
0
        public void ShouldNotEncodeWhenAdding()
        {
            // arrange
            QueryString qs = new QueryString();
            qs.Add("1", "http://");

            // act and assert
            Assert.AreEqual("http://", qs["1"]);
        }
예제 #32
0
        private string GetPageQueryString(QueryString oQueryString, int pageNum)
        {
            // create a new query string using the provided query string
            //
            QueryString currString = new QueryString(oQueryString.ToString());

            return(currString.Add("pagenumber", pageNum.ToString(), true)
                   .Add("perpage", this.PerPage.ToString(), true).ToString());
        }
예제 #33
0
        public async Task <bool> CheckPermissionAsync(string rbac, TokenBase token)
        {
            var url         = $"{this.AuthApiBaseUrl}/memberships/{this.AuthApiMembershipId}/roles/check-permission";
            var queryString = QueryString.Add("permission", rbac);
            var headers     = HeaderCollection.Add("Authorization", token.ToString());
            var response    = await this.ExecuteRequestAsync(HttpMethod.Get, url, queryString, headers);

            return(response.IsSuccess);
        }
예제 #34
0
        private ReadOnlyUrl GetSuggestedCandidatesUrl(Guid jobAdId, int?page, int?items)
        {
            if (page == null && items == null)
            {
                return(new ReadOnlyApplicationUrl(_baseSuggestedCandidatesUrl, jobAdId.ToString()));
            }

            var queryString = new QueryString();

            if (page != null)
            {
                queryString.Add("page", page.Value.ToString(CultureInfo.InvariantCulture));
            }
            if (items != null)
            {
                queryString.Add("items", items.Value.ToString(CultureInfo.InvariantCulture));
            }
            return(new ReadOnlyApplicationUrl(_baseSuggestedCandidatesUrl, jobAdId.ToString(), queryString));
        }
예제 #35
0
        public void AbsoluteUriTest()
        {
            var mockRequest = new Mock <HttpRequest>();

            mockRequest.Setup(r => r.PathBase).Returns("");
            mockRequest.Setup(r => r.Path).Returns("/Home/Index/");

            var q = new QueryString();

            q.Add("a", "1");
            q.Add("b", "2");
            q.Add("c", "3");

            var qc = new QueryCollection(new Dictionary <string, StringValues>(
                                             new KeyValuePair <string, StringValues>[] {
                new KeyValuePair <string, StringValues>("d", "4"),
                new KeyValuePair <string, StringValues>("e", "5"),
                new KeyValuePair <string, StringValues>("f", "6")
            }));

            mockRequest.Setup(r => r.Query).Returns(qc);
            //mockRequest.Setup(r => r.QueryString).Returns(q);

            Console.WriteLine(mockRequest.Object.QueryString);
            mockRequest.Object.QueryString.Add("g", "7");
            Console.WriteLine(mockRequest.Object.QueryString);//测试中无法输出QueryString,真实环境可以

            mockRequest.Setup(r => r.Scheme).Returns("http");
            mockRequest.Setup(r => r.Host).Returns(new HostString("www.senparc.com", 80));
            var result = mockRequest.Object.AbsoluteUri();

            Console.WriteLine(result);
            Assert.AreEqual("http://www.senparc.com/Home/Index/", result);

            mockRequest.Setup(r => r.Scheme).Returns("https");
            mockRequest.Setup(r => r.Host).Returns(new HostString("www.senparc.com", 443));
            result = mockRequest.Object.AbsoluteUri();
            Assert.AreEqual("https://www.senparc.com/Home/Index/", result);

            mockRequest.Setup(r => r.Host).Returns(new HostString("www.senparc.com", 1443));
            result = mockRequest.Object.AbsoluteUri();
            Assert.AreEqual("https://www.senparc.com:1443/Home/Index/", result);
        }
예제 #36
0
        public async Task ShouldConvertArrayToUri()
        {
            // arrange
            const string baseUrl     = "http://localhost";
            QueryString  queryString = new QueryString();
            var          values      = new int[] { 1, 2, 3 };

            // act
            foreach (var v in values)
            {
                queryString.Add("key1", v.ToString());
            }
            queryString.Add("key2", "value2");
            Uri uri = await queryString.AsUriAsync(baseUrl);

            // assert
            Assert.NotNull(uri);
            Assert.True(uri.ToString() == "http://localhost/?key1=1&key1=2&key1=3&key2=value2");
        }
예제 #37
0
        /// <summary>
        /// 删除一个Catalog
        /// </summary>
        /// <param name="catalogId">Catalog的唯一标识</param>
        public void Delete(Int32 catalogId)
        {
            var qs = new QueryString();
            qs.Add("catalogId", catalogId.ToString());
            var deleteCata = client.HttpPost("/catalog/delete.api", qs);
            var jo = JObject.Parse(deleteCata);

            if (jo["statusCode"].ToString().CompareTo("0") != 0)
            {
                throw new PispowerAPIException(System.Int32.Parse(jo["statusCode"].ToString()), jo["message"].ToString());
            }
        }
예제 #38
0
		/// <summary>
		/// Return quota history
		/// <param name="period">To be written</param>
		/// <param name="serviceName">The internal name of your CDN offer</param>
		/// </summary>
		public async Task<OvhApi.Models.Cdnanycast.StatsDataType[]> GetCdnDedicatedQuotas(OvhApi.Models.Cdnanycast.StatsPeriodEnum period,string serviceName)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("period",period);
			Ensure.NotNullNorEmpty("serviceName",serviceName);

			var queryString = new QueryString();
			queryString.Add("period",period);


return await RawCall<OvhApi.Models.Cdnanycast.StatsDataType[]>(HttpMethod.Get,String.Format("/cdn/dedicated/{0}/quota{1}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #39
0
 public static QueryString DecryptQueryString(QueryString queryString)
 {
     QueryString newQueryString = new QueryString();
     string nm;
     string val;
     foreach (string name in queryString)
     {
         nm = Encryption.DeHex(name);
         val = Encryption.DeHex(queryString[name]);
         newQueryString.Add(nm, val);
     }
     return newQueryString;
 }
예제 #40
0
        internal static string Add(this PathString path, object value)
        {
            var parameters = value.GetType().GetProperties().ToDictionary(x => x.Name, x => x.GetValue(value)?.ToString())
                .Where(x => x.Value.IsNotNullOrWhiteSpace());

            var query = new QueryString();

            foreach(var parameter in parameters) {
                query = query.Add(parameter.Key, parameter.Value);
            }

            return path.Add(query);
        }
예제 #41
0
 public static QueryString EncryptQueryString(QueryString queryString)
 {
     QueryString newQueryString = new QueryString();
     string nm = String.Empty;
     string val = String.Empty;
     foreach (string name in queryString)
     {
         nm = name;
         val = queryString[name];
         newQueryString.Add(Encryption.Hex(nm),Encryption.Hex(val));
     }
     return newQueryString;
 }
예제 #42
0
        private string CreateSignedUrl()
        {
            SignedRequestHelper helper = new SignedRequestHelper(Configuration.AWSAccessKeyId, Configuration.AWSSecretAccessKey, Constants.AWSUrl);

            QueryString query = new QueryString();
            query.Add("Service", "AWSECommerceService");
            query.Add("AssociateTag", Configuration.AWSAID);
            query.Add("Version", "2011-08-01");
            query.Add("ResponseGroup", "Images,Small");
            query.Add("Operation", "ItemSearch");
            query.Add("SearchIndex", ItemType.ToString());
            query.Add(SearchType.ToString(), Uri.EscapeDataString(Keywords));

            var signedUrl = helper.Sign(query);
            return signedUrl;
        }
예제 #43
0
        /// <summary>
        /// 增加一个Catalog
        /// </summary>
        /// <param name="name">Catalog的名字</param>
        /// <returns>Catalog 包含id,name字段,但videoNumber字段的值为空</returns>
        public Catalog Add(String name)
        {
            var qs = new QueryString();
            qs.Add("name", name);
            var createCata = client.HttpPost("/catalog/create.api", qs);
            var jo = JObject.Parse(createCata);

            if (jo["statusCode"].ToString().CompareTo("0") == 0)
            {
                var cata = new Catalog();
                cata.Name = jo["name"].ToString();
                var id = jo["id"].ToString();
                cata.Id = System.Int32.Parse(id);
                return cata;
            }
            else
            {
                throw new PispowerAPIException(System.Int32.Parse(jo["statusCode"].ToString()), jo["message"].ToString());
            }
        }
예제 #44
0
        /// <summary>
        /// 根据id查询Catalog
        /// </summary>
        /// <param name="catalogId">Catalog的唯一标识</param>
        /// <returns>Catalog 包含name,videoNumber字段, 但id字段的值为空</returns>
        public Catalog Get(Int32 catalogId)
        {
            QueryString qs = new QueryString();
            qs.Add("catalogId", catalogId.ToString());
            var getCata = client.HttpGet("/catalog/get.api", qs);
            var jo = JObject.Parse(getCata);

            if (jo["statusCode"].ToString().CompareTo("0") == 0)
            {
                Console.WriteLine("name:" + jo["name"]);
                var cata = new Catalog();
                cata.Name = jo["name"].ToString();
                var videoNum = jo["videoNumber"].ToString();
                cata.VideoNumber = System.Int32.Parse(videoNum);
                return cata;
            }
            else
            {
                throw new PispowerAPIException(System.Int32.Parse(jo["statusCode"].ToString()), jo["message"].ToString());
            }
        }
예제 #45
0
		/// <summary>
		/// Domains or subdomains attached to your hosting
		/// <param name="domain">Filter the value of domain property (like)</param>
		/// <param name="path">Filter the value of path property (like)</param>
		/// <param name="serviceName">The internal name of your hosting</param>
		/// </summary>
		public async Task<string[]> GetHostingWebAttacheddomainNames(string serviceName,string path = null,string domain = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNullNorEmpty("serviceName",serviceName);

			var queryString = new QueryString();
			queryString.Add("domain",domain);
			queryString.Add("path",path);


return await RawCall<string[]>(HttpMethod.Get,String.Format("/hosting/web/{0}/attachedDomain{1}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #46
0
		/// <summary>
		/// Crons on your hosting
		/// <param name="email">Filter the value of email property (like)</param>
		/// <param name="language">Filter the value of language property (=)</param>
		/// <param name="description">Filter the value of description property (like)</param>
		/// <param name="command">Filter the value of command property (like)</param>
		/// <param name="serviceName">The internal name of your hosting</param>
		/// </summary>
		public async Task<long[]> GetHostingWebCronIds(string serviceName,string command = null,string description = null,OvhApi.Models.Hosting.Web.Cron.LanguageEnum? language = null,string email = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNullNorEmpty("serviceName",serviceName);

			var queryString = new QueryString();
			queryString.Add("email",email);
			queryString.Add("language",language);
			queryString.Add("description",description);
			queryString.Add("command",command);


return await RawCall<long[]>(HttpMethod.Get,String.Format("/hosting/web/{0}/cron{1}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #47
0
		/// <summary>
		/// History of your hosting boost
		/// <param name="date">Filter the value of date property (like)</param>
		/// <param name="serviceName">The internal name of your hosting</param>
		/// </summary>
		public async Task<DateTime[]> GetHostingWebBoosthistorys(string serviceName,DateTime? date = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNullNorEmpty("serviceName",serviceName);

			var queryString = new QueryString();
			queryString.Add("date",date);


return await RawCall<DateTime[]>(HttpMethod.Get,String.Format("/hosting/web/{0}/boostHistory{1}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #48
0
		/// <summary>
		/// Get statistics about this database
		/// <param name="period">To be written</param>
		/// <param name="type">To be written</param>
		/// <param name="serviceName">The internal name of your hosting</param>
		/// <param name="name">Database name</param>
		/// </summary>
		public async Task<OvhApi.Models.ComplexType.ChartSerie<OvhApi.Models.ComplexType.ChartTimestampValue>[]> GetHostingWebDatabaseStatistics(OvhApi.Models.Hosting.Web.StatisticsPeriodEnum period,OvhApi.Models.Hosting.Web.Database.StatisticsTypeEnum type,string serviceName,string name)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("period",period);
			Ensure.NotNull("type",type);
			Ensure.NotNullNorEmpty("serviceName",serviceName);
			Ensure.NotNullNorEmpty("name",name);

			var queryString = new QueryString();
			queryString.Add("period",period);
			queryString.Add("type",type);


return await RawCall<OvhApi.Models.ComplexType.ChartSerie<OvhApi.Models.ComplexType.ChartTimestampValue>[]>(HttpMethod.Get,String.Format("/hosting/web/{0}/database/{1}/statistics{2}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),System.Uri.EscapeDataString(name.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #49
0
		/// <summary>
		/// Plesk licenses associated to this IP
		/// <param name="ipAddress">Filter the value of ipAddress property (=)</param>
		/// <param name="ip">To be written</param>
		/// </summary>
		public async Task<string[]> GetIpLicensePleskNames(OVHApi.IPAddressBlock ip,System.Net.IPAddress ipAddress = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("ip",ip);

			var queryString = new QueryString();
			queryString.Add("ipAddress",ipAddress);


return await RawCall<string[]>(HttpMethod.Get,String.Format("/ip/{0}/license/plesk{1}",System.Uri.EscapeDataString(ip.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #50
0
		/// <summary>
		/// Get statistics about the email traffic
		/// <param name="to">End date</param>
		/// <param name="from">Start date</param>
		/// <param name="ip">To be written</param>
		/// <param name="ipSpamming">IP address which is sending spam</param>
		/// </summary>
		public async Task<OvhApi.Models.Ip.SpamStats[]> GetIpSpamStats(DateTime to,DateTime from,OVHApi.IPAddressBlock ip,System.Net.IPAddress ipSpamming)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("to",to);
			Ensure.NotNull("from",from);
			Ensure.NotNull("ip",ip);
			Ensure.NotNull("ipSpamming",ipSpamming);

			var queryString = new QueryString();
			queryString.Add("to",to);
			queryString.Add("from",from);


return await RawCall<OvhApi.Models.Ip.SpamStats[]>(HttpMethod.Get,String.Format("/ip/{0}/spam/{1}/stats{2}",System.Uri.EscapeDataString(ip.ToString()).Replace("%2B", "+"),System.Uri.EscapeDataString(ipSpamming.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #51
0
		/// <summary>
		/// IDs of all modules available
		/// <param name="latest">Filter the value of latest property (=)</param>
		/// <param name="active">Filter the value of active property (=)</param>
		/// </summary>
		public async Task<long[]> GetHostingWebModulelistIds(bool? active = null,bool? latest = null)
		{

			var queryString = new QueryString();
			queryString.Add("latest",latest);
			queryString.Add("active",active);


return await RawCall<long[]>(HttpMethod.Get,String.Format("/hosting/web/moduleList{0}",queryString));
		}
예제 #52
0
		/// <summary>
		/// Get available offer
		/// <param name="domain">Domain you want to add or upgrade a hosting</param>
		/// </summary>
		public async Task<OvhApi.Models.Hosting.Web.OfferEnum[]> GetHostingWebAvailableoffers(string domain)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNullNorEmpty("domain",domain);

			var queryString = new QueryString();
			queryString.Add("domain",domain);


return await RawCall<OvhApi.Models.Hosting.Web.OfferEnum[]>(HttpMethod.Get,String.Format("/hosting/web/availableOffer{0}",queryString));
		}
예제 #53
0
		/// <summary>
		/// Get offer capabilities
		/// <param name="offer">Describe offer capabilities</param>
		/// </summary>
		public async Task<OvhApi.Models.Hosting.Web.Capabilities> GetHostingWebOffercapabilities(OvhApi.Models.Hosting.Web.OfferCapabilitiesEnum offer)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("offer",offer);

			var queryString = new QueryString();
			queryString.Add("offer",offer);


return await RawCall<OvhApi.Models.Hosting.Web.Capabilities>(HttpMethod.Get,String.Format("/hosting/web/offerCapabilities{0}",queryString));
		}
예제 #54
0
		/// <summary>
		/// Resource account associated to this service
		/// <param name="resourceEmailAddress">Filter the value of resourceEmailAddress property (like)</param>
		/// <param name="organizationName">The internal name of your exchange organization</param>
		/// <param name="exchangeService">The internal name of your exchange service</param>
		/// </summary>
		public async Task<string[]> GetEmailExchangeServiceResourceaccountNames(string organizationName,string exchangeService,string resourceEmailAddress = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNullNorEmpty("organizationName",organizationName);
			Ensure.NotNullNorEmpty("exchangeService",exchangeService);

			var queryString = new QueryString();
			queryString.Add("resourceEmailAddress",resourceEmailAddress);


return await RawCall<string[]>(HttpMethod.Get,String.Format("/email/exchange/{0}/service/{1}/resourceAccount{2}",System.Uri.EscapeDataString(organizationName.ToString()).Replace("%2B", "+"),System.Uri.EscapeDataString(exchangeService.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #55
0
		/// <summary>
		/// Your OVH IPs
		/// <param name="ip">Filter the value of ip property (contains or equals)</param>
		/// <param name="routedTo_serviceName">Filter the value of routedTo.serviceName property (like)</param>
		/// <param name="type">Filter the value of type property (=)</param>
		/// <param name="description">Filter the value of description property (like)</param>
		/// </summary>
		public async Task<OVHApi.IPAddressBlock[]> GetIps(string description = null,OvhApi.Models.Ip.IpTypeEnum? type = null,string routedTo_serviceName = null,OVHApi.IPAddressBlock ip = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");

			var queryString = new QueryString();
			queryString.Add("ip",ip);
			queryString.Add("routedTo.serviceName",routedTo_serviceName);
			queryString.Add("type",type);
			queryString.Add("description",description);


return await RawCall<OVHApi.IPAddressBlock[]>(HttpMethod.Get,String.Format("/ip{0}",queryString));
		}
예제 #56
0
		/// <summary>
		/// List available database version following a type
		/// <param name="type">Type of the database</param>
		/// <param name="serviceName">The internal name of your hosting</param>
		/// </summary>
		public async Task<OvhApi.Models.Hosting.Web.Database.VersionEnum[]> GetHostingWebDatabaseavailableversions(OvhApi.Models.Hosting.Web.Database.DatabaseTypeEnum type,string serviceName)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("type",type);
			Ensure.NotNullNorEmpty("serviceName",serviceName);

			var queryString = new QueryString();
			queryString.Add("type",type);


return await RawCall<OvhApi.Models.Hosting.Web.Database.VersionEnum[]>(HttpMethod.Get,String.Format("/hosting/web/{0}/databaseAvailableVersion{1}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #57
0
		/// <summary>
		/// IP tasks
		/// <param name="function">Filter the value of function property (=)</param>
		/// <param name="status">Filter the value of status property (=)</param>
		/// <param name="ip">To be written</param>
		/// </summary>
		public async Task<long[]> GetIpTaskIds(OVHApi.IPAddressBlock ip,OvhApi.Models.Ip.TaskStatusEnum? status = null,OvhApi.Models.Ip.TaskFunctionEnum? function = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("ip",ip);

			var queryString = new QueryString();
			queryString.Add("function",function);
			queryString.Add("status",status);


return await RawCall<long[]>(HttpMethod.Get,String.Format("/ip/{0}/task{1}",System.Uri.EscapeDataString(ip.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #58
0
		/// <summary>
		/// Tasks attached to your hosting
		/// <param name="function">Filter the value of function property (like)</param>
		/// <param name="status">Filter the value of status property (=)</param>
		/// <param name="serviceName">The internal name of your hosting</param>
		/// </summary>
		public async Task<long[]> GetHostingWebTaskIds(string serviceName,OvhApi.Models.Hosting.Web.Task.StatusEnum? status = null,string function = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNullNorEmpty("serviceName",serviceName);

			var queryString = new QueryString();
			queryString.Add("function",function);
			queryString.Add("status",status);


return await RawCall<long[]>(HttpMethod.Get,String.Format("/hosting/web/{0}/tasks{1}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #59
0
		/// <summary>
		/// Ip under mitigation
		/// <param name="auto">Filter the value of auto property (=)</param>
		/// <param name="state">Filter the value of state property (=)</param>
		/// <param name="ip">To be written</param>
		/// </summary>
		public async Task<System.Net.IPAddress[]> GetIpMitigations(OVHApi.IPAddressBlock ip,OvhApi.Models.Ip.MitigationStateEnum? state = null,bool? auto = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNull("ip",ip);

			var queryString = new QueryString();
			queryString.Add("auto",auto);
			queryString.Add("state",state);


return await RawCall<System.Net.IPAddress[]>(HttpMethod.Get,String.Format("/ip/{0}/mitigation{1}",System.Uri.EscapeDataString(ip.ToString()).Replace("%2B", "+"),queryString));
		}
예제 #60
0
		/// <summary>
		/// Databases linked to your hosting
		/// <param name="mode">Filter the value of mode property (=)</param>
		/// <param name="user">Filter the value of user property (like)</param>
		/// <param name="name">Filter the value of name property (like)</param>
		/// <param name="type">Filter the value of type property (=)</param>
		/// <param name="server">Filter the value of server property (like)</param>
		/// <param name="serviceName">The internal name of your hosting</param>
		/// </summary>
		public async Task<string[]> GetHostingWebDatabaseNames(string serviceName,string server = null,OvhApi.Models.Hosting.Web.Database.DatabaseTypeEnum? type = null,string name = null,string user = null,OvhApi.Models.Hosting.Web.Database.ModeEnum? mode = null)
		{
			if(ConsumerKey == null)
				throw new OvhException("This request must be authenticated");
			Ensure.NotNullNorEmpty("serviceName",serviceName);

			var queryString = new QueryString();
			queryString.Add("mode",mode);
			queryString.Add("user",user);
			queryString.Add("name",name);
			queryString.Add("type",type);
			queryString.Add("server",server);


return await RawCall<string[]>(HttpMethod.Get,String.Format("/hosting/web/{0}/database{1}",System.Uri.EscapeDataString(serviceName.ToString()).Replace("%2B", "+"),queryString));
		}