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)); }
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)); } } }
public virtual void AddToQueryString(string key, string value) { if (key.HasValue() && value.HasValue()) { QueryString.Add(new KeyValuePair <string, string>(key, value)); } }
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); }
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)); } }
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; }
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); }
/// <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)); }
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)); }
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)); }
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); }
/// <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)); }
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"); }
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}"); } }
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)); }
public async Task ReturnSearchResults() { var qs = new QueryString(); qs.Add("searchText", "40mm+12v"); var response = await _client.GetAsync($"{searchEndpoint}{qs.ToUriComponent()}"); }
/// <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; } }
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); }
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(); }
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); }
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); }
public void ShouldDecodeWhenGettingValue() { // arrange QueryString qs = new QueryString(); qs.Add("1", "http%3a%2f%2f"); // act and assert Assert.AreEqual("http://", qs["1"]); }
public void ShouldEncodeWhenConvertingToString() { // arrange QueryString qs = new QueryString(); qs.Add("1", "http://"); // act and assert Assert.AreEqual("?1=http%3a%2f%2f", qs.ToString()); }
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); }
public void ShouldNotEncodeWhenAdding() { // arrange QueryString qs = new QueryString(); qs.Add("1", "http://"); // act and assert Assert.AreEqual("http://", qs["1"]); }
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()); }
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); }
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)); }
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); }
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"); }
/// <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()); } }
/// <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)); }
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; }
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); }
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; }
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; }
/// <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()); } }
/// <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()); } }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }