/// <summary> /// Generates the needed url depending on values delivered from UI /// </summary> /// <param name="locations"></param> /// <returns></returns> private string GenerateUrl(IEnumerable <LocationDto> locations) { if (locations == null || locations.Count() < 2) { return(null); } QueryStringBuilder qsb = new QueryStringBuilder(); qsb.Append(baseUrl); var origin = locations.Where(x => x.LocationType == LocationType.Origin).FirstOrDefault(); qsb.Append("origin", origin.FormatedLatLon); var destination = locations.Where(x => x.LocationType == LocationType.Destination).FirstOrDefault(); qsb.Append("destination", destination.FormatedLatLon); var waypoints = locations.Where(x => x.LocationType == LocationType.WayPoint); qsb.Append("waypoints", GetWayPoints(waypoints)); return(qsb.ToString()); }
public override Uri ToUri() { if (Address == null) { throw new InvalidOperationException("Address is required"); } var qsb = new QueryStringBuilder(); if (Address != null) { if (Address.GetType() == typeof(LatLng)) { qsb.Append("latlng", Address.GetAsUrlParameter()); } else if (Address.GetType() == typeof(PlaceIdLocation)) { qsb.Append("place_id", Address.GetAsUrlParameter()); } else { qsb.Append("address", Address.GetAsUrlParameter()); } } qsb.Append("bounds", GetBoundsStr()) .Append("components", Components != null ? Components.ToUrlParameters() : "") .Append("region", Region) .Append("language", Language); var url = "json?" + qsb; return(new Uri(url, UriKind.Relative)); }
public override Uri ToUri() { var qsb = new QueryStringBuilder(); if (!string.IsNullOrEmpty(PlaceID)) { qsb.Append("placeid", PlaceID); } #pragma warning disable CS0618 // Type or member is obsolete else if (!string.IsNullOrEmpty(Reference)) { qsb.Append("reference", Reference); } #pragma warning restore CS0618 // Type or member is obsolete else { throw new InvalidOperationException("Either PlaceID or Reference fields must be set."); } if (!string.IsNullOrEmpty(Extensions)) { qsb.Append("extensions", Extensions); } if (!string.IsNullOrEmpty(Language)) { qsb.Append("language", Language); } var url = "json?" + qsb; return(new Uri(url, UriKind.Relative)); }
public void can_build_query_string_with_multiple_items() { var qs = new QueryStringBuilder(); qs.Append("hello", "world"); qs.Append("goodbye", "loneliness"); Assert.Equal("?hello=world&goodbye=loneliness", qs.ToString()); }
public override Uri ToUri() { ValidateRequest(); var qsb = new QueryStringBuilder(); qsb.Append("query", Uri.EscapeDataString(Query.ToLowerInvariant())); if (Location != null) { qsb.Append("location", Location.GetAsUrlParameter()); } if (Radius.HasValue) { qsb.Append("radius", Radius.Value.ToString()); } if (!string.IsNullOrEmpty(Language)) { qsb.Append("language", Language.ToLowerInvariant()); } if (Minprice.HasValue) { qsb.Append("minprice", Minprice.Value.ToString()); } if (Maxprice.HasValue) { qsb.Append("maxprice", Maxprice.Value.ToString()); } if (OpenNow.HasValue) { qsb.Append("opennow", OpenNow.Value.ToString().ToLowerInvariant()); } if (!string.IsNullOrEmpty(PageToken)) { qsb.Append("pagetoken", PageToken); } if (Types != null && Types.Any()) { qsb.Append("types", TypesToUri()); } if (ZagatSelected) { qsb.Append("zagatselected"); } var url = "textsearch/json?" + qsb; return(new Uri(url, UriKind.Relative)); }
public void can_build_query_string_with_multiple_same_key_items() { var qs = new QueryStringBuilder(); qs.Append("hello", "world"); qs.Append("hello", "universe"); qs.Append("answer", "42"); Assert.Equal("?hello=world&hello=universe&answer=42", qs.ToString()); }
public void can_remove_query_parameters() { var qs = new QueryStringBuilder(); qs.Append("hello", "world"); qs.Append("hello", "universe"); qs.Append("answer", "42"); qs.Remove("hello"); Assert.Equal("?answer=42", qs.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <param name="transactionCode">Transaction Code</param> /// <param name="refundValue">Refund Value</param> /// <returns></returns> private static string BuildRefundURL(Credentials credentials, string transactionCode, decimal?refundValue) { QueryStringBuilder builder = new QueryStringBuilder(); builder.EncodeCredentialsAsQueryString(credentials); builder.Append("transactionCode", transactionCode); if (refundValue.HasValue) { builder.Append("refundValue", PagSeguroUtil.DecimalFormat(refundValue.Value)); } return(builder.ToString()); }
public IJoinedQueryBuilder <TEntity, T> InnerJoin <T>(string alias) { string typeName = typeof(T).Name; QueryStringBuilder.Append($" INNER JOIN {StringToolkit.PascalToUnderscore(typeName)} {alias} "); return(new JoinedQueryBuilder <TEntity, T>(this)); }
public ISelectQueryBuilder <TEntity> Having(Expression <Func <TEntity, bool> > predicate) { string havingStr = ExpressionEvaluator.BuildWhereQueryString(predicate).Replace("WHERE", "HAVING"); QueryStringBuilder.Append($" {havingStr}"); return(this); }
public void can_build_query_string_with_single_item_without_value() { var qs = new QueryStringBuilder(); qs.Append("hello"); Assert.Equal("?hello", qs.ToString()); }
public ISortableQueryBuilder <TEntity> OrderByDescending(Expression <Func <TEntity, object> > key) { string order = ExpressionEvaluator.BuildOrderByQueryString(key, true); QueryStringBuilder.Append($" {order}"); return(this); }
public IJoinedQueryBuilder <TEntity, T1> On(Expression <Func <TEntity, T1, bool> > predicate) { string onStr = ExpressionEvaluator.BuildOnConditionString(predicate); RefactorAlias(predicate); QueryStringBuilder.Append($"{onStr}"); return(this); }
public void QueryString_AppendParam_Check_If_Exists_Should_Have_Count_Equal_To_One(string variable, string value) { var queryStringBuilder = new QueryStringBuilder(); queryStringBuilder.Append(variable, value); Assert.Equal(1, queryStringBuilder.Count); }
/// <exception cref="ArgumentException">Thrown when <paramref name="userId"/> is null or empty</exception>> public async Task <DeviceList> GetDevicesForUser(string userId, string clientId = null) { ArgumentGuard.NotNullOrEmpty(userId, nameof(userId)); var endpoint = QueryStringBuilder.Append($"/v1/users/{userId}/devices", "client_id", clientId); return(await TryRequest(() => _messageSender.Get <DeviceList>(endpoint))); }
public ISortableQueryBuilder <TEntity> ThenBy(Expression <Func <TEntity, object> > key) { string order = ExpressionEvaluator.BuildOrderByQueryString(key, false) .Replace("ORDER BY", "THEN BY"); QueryStringBuilder.Append($" {order}"); return(this); }
public IJoinedQueryBuilder <TEntity, T1> Where(Expression <Func <TEntity, T1, bool> > predicate) { string whereStr = ExpressionEvaluator.BuildWhereQueryString(predicate); RefactorAlias(predicate); QueryStringBuilder.Append($" {whereStr}"); return(this); }
ISortableQueryBuilder <TEntity> ISortableQueryBuilder <TEntity> .Where(Expression <Func <TEntity, bool> > predicate) { string whereString = ExpressionEvaluator.BuildWhereQueryString(predicate); RefactorAlias(predicate); QueryStringBuilder.Append($" {whereString}"); return(this); }
public override Uri ToUri() { if (Path == null || !Path.Any()) { throw new InvalidOperationException("Path is required"); } var qsb = new QueryStringBuilder(); qsb.Append("path", string.Join("|", Path.AsEnumerable())); qsb.Append("interpolate", Interpolate ? "true" : "false"); var url = "snapToRoads?" + qsb; return(new Uri(url, UriKind.Relative)); }
public void can_build_query_string_with_base_uri() { var qs = new QueryStringBuilder("https://example.com/"); qs.Append("hello", "world"); Assert.Equal("https://example.com/?hello=world", qs.ToString()); }
/// <summary> /// Builds the request uri parameters /// </summary> /// <returns></returns> public override Uri ToUri() { QueryStringBuilder qs = new QueryStringBuilder(); //string zoomStr = null; //if(this.Zoom != null) // zoomStr = this.Zoom.ToString(); //if(this.Center != null) { // string centerStr = this.Center.GetAsUrlParameter(); // qs.Append("center", centerStr); //} if (this.Location != null) { qs.Append("location", this.Location.GetAsUrlParameter()); } else if (string.IsNullOrEmpty(this.PanoramaId) == false) { qs.Append("pano", this.PanoramaId); } else { throw new InvalidOperationException("Either Location or PanoramaId property are required."); } WriteBitmapOutputParameters(qs); var InvariantCulture = System.Globalization.CultureInfo.InvariantCulture; if (this.Pitch != 0) { qs.Append("pitch", Pitch.ToString(InvariantCulture)); } if (this.Heading != null && this.Heading.GetValueOrDefault(0) != 0) { qs.Append("heading", Heading.Value.ToString(InvariantCulture)); } var url = "streetview?" + qs.ToString(); return(new Uri(StreetViewService.HttpsUri, new Uri(url, UriKind.Relative))); }
public void QueryStringBuilder_AppendParam_Should_Throw_Error_If_Variable_Or_Value_Is_Empty_Or_Null(string variable, string value) { var queryStringBuilder = new QueryStringBuilder(); Assert.Throws <ArgumentNullException>(() => { queryStringBuilder.Append(variable, value); }); }
public void QueryStringBuilder_AppendParam_Should_Start_With_QuestionMarkSymbol() { var queryStringBuilder = new QueryStringBuilder(); var queryString = queryStringBuilder.Append("var1", "val1") .Build(); Assert.StartsWith("?", queryString); }
/// <summary> /// /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <param name="transactionCode">Transaction Code</param> /// <returns></returns> private static string BuildCancelURL(Credentials credentials, string transactionCode) { QueryStringBuilder builder = new QueryStringBuilder(); builder.EncodeCredentialsAsQueryString(credentials); builder.Append("transactionCode", transactionCode); return(builder.ToString()); }
internal static string EncodeCredentialsAsQueryString(Credentials credentials) { QueryStringBuilder builder = new QueryStringBuilder(); foreach (CredentialsNameValuePair nv in credentials.Attributes) { builder.Append(nv.Name, nv.Value); } return builder.ToString(); }
private void WriteBitmapOutputParameters(QueryStringBuilder qs) { string formatStr = null; switch (this.Format) { case GMapsImageFormats.Unspecified: break; case GMapsImageFormats.JPGbaseline: formatStr = "jpg-baseline"; break; default: formatStr = this.Format.ToString().ToLower(); break; } qs.Append("format", formatStr); qs.Append("size", string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}x{1}", Size.Width, Size.Height)); //qs.Append("scale", Scale == null ? (string)null : Scale.Value.ToString()) }
/// <summary> /// /// </summary> /// <param name="connection"></param> /// <param name="code"></param> /// <returns></returns> internal static string buildAuthorizationRequestUrl(Credentials credentials, AuthorizationRequest authorizationRequest) { QueryStringBuilder builder = new QueryStringBuilder(); IDictionary <string, string> data = AuthorizationParse.GetData(authorizationRequest); builder. EncodeCredentialsAsQueryString(credentials); foreach (KeyValuePair <string, string> pair in data) { #if !NETSTANDARD1_6 builder.Append(pair.Key, pair.Value.ToString(CultureInfo.InvariantCulture)); #else builder.Append(pair.Key, pair.Value); #endif } return(WebUtility.UrlDecode(builder.ToString())); }
public void Should_append_with_ampersand_if_not_first_param() { const string url = "http://test.com?other_param=other_value"; const string key = "my_param"; const string value = "my_value"; const string expected = "http://test.com?other_param=other_value&my_param=my_value"; var result = QueryStringBuilder.Append(url, key, value); result.Should().Be(expected); }
public void Should_not_append_empty_value() { const string url = "http://test.com"; const string key = "my_param"; const string value = null; const string expected = "http://test.com"; var result = QueryStringBuilder.Append(url, key, value); result.Should().Be(expected); }
public void Should_append_with_questionmark_if_first_param() { const string url = "http://test.com"; const string key = "my_param"; const string value = "my_value"; const string expected = "http://test.com?my_param=my_value"; var result = QueryStringBuilder.Append(url, key, value); result.Should().Be(expected); }
/// <summary> /// Generates the needed url depending on values delivered from UI /// </summary> /// <param name="locations"></param> /// <returns></returns> private string GenerateUrl(IEnumerable <LocationDto> locations) { if (locations == null || locations.Count() == 0) { return(null); } QueryStringBuilder qsb = new QueryStringBuilder(); qsb.Append(baseUrl); // if only one location is selected, center the location and zoom to factor 15 if (locations.Count() == 1) { qsb.Append("zoom", "15"); qsb.Append("center", locations.First().FormatedLatLon); } int counter = 0; var color = "red"; var label = "V"; foreach (var item in locations) { if (item.LocationType == LocationType.Origin) { color = "blue"; label = "S"; } else if (item.LocationType == LocationType.Destination) { color = "green"; label = "Z"; } else if (item.LocationType == LocationType.WayPoint) { color = "red"; label = "V"; } qsb.Append("markers", GetMarker(item, color, label)); counter++; } return(qsb.ToString()); }
/// <summary> /// Common implmentation of all SearchByDate methods /// </summary> /// <param name="credentials">PagSeguro credentials. Required.</param> /// <param name="initialDate"></param> /// <param name="finalDate">End of date range. Use DateTime.MaxValue to search without an upper boundary.</param> /// <param name="pageNumber">Page number, starting with 1. If passed as 0, it will call the web service to get the default page, also page number 1.</param> /// <param name="resultsPerPage">Results per page, optional.</param> /// <returns></returns> private static TransactionSearchResult SearchByDateCore(Credentials credentials, DateTime initialDate, DateTime finalDate, int pageNumber, int resultsPerPage) { UriBuilder uriBuilder = new UriBuilder(PagSeguroConfiguration.SearchUri); QueryStringBuilder query = new QueryStringBuilder(ServiceHelper.EncodeCredentialsAsQueryString(credentials)); query.Append(InitialDateParameterName, initialDate); if (finalDate < DateTime.MaxValue) { query.Append(FinalDateParameterName, finalDate); } if (pageNumber > 0) { query.Append(PageNumberParameterName, pageNumber); } if (resultsPerPage > 0) { query.Append(MaxPageResultsParameterName, resultsPerPage); } uriBuilder.Query = query.ToString(); PagSeguroTrace.Info(String.Format(CultureInfo.InvariantCulture, "TransactionSearchService.SearchByDate(initialDate={0}, finalDate={1}) - begin", initialDate, finalDate)); WebRequest request = WebRequest.Create(uriBuilder.Uri); request.Method = ServiceHelper.GetMethod; request.Timeout = PagSeguroConfiguration.RequestTimeout; try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) { TransactionSearchResult result = new TransactionSearchResult(); TransactionSearchResultSerializer.Read(reader, result); PagSeguroTrace.Info(String.Format(CultureInfo.InvariantCulture, "TransactionSearchService.SearchByDate(initialDate={0}, finalDate={1}) - end {2}", initialDate, finalDate, result)); return result; } } } catch (WebException exception) { PagSeguroServiceException pse = ServiceHelper.CreatePagSeguroServiceException((HttpWebResponse)exception.Response); PagSeguroTrace.Error(String.Format(CultureInfo.InvariantCulture, "TransactionSearchService.SearchByDate(initialDate={0}, finalDate={1}) - error {2}", initialDate, finalDate, pse)); throw pse; } }