public void Test_ListRequest_ToQueryString() { string expected = "?fields=PersonID,LastName,FirstName,BirthDate&order=PersonID,LastName,FirstName,BirthDate&offset=50&limit=25&where[PersonID]=eq:123&where[LastName]=lt:test&where[FirstName]=like:test&where[BirthDate]=gt:1900-01-01"; //?fields=PersonID,LastName,FirstName,BirthDate&order=PersonID,LastName,FirstName,BirthDate&offset=50&limit=25&where[PersonID]=eq:123&where[LastName]=lt:test&where[FirstName]=like:test&where[BirthDate]=gt:1900-01-01 var request = new ListRequest(); request.Offset = 50; request.Limit = 25; request.Fields = new string[] { "PersonID", "LastName", "FirstName", "BirthDate" }; request.Filters = new List <ListFilter> { new ListFilter() { Name = "PersonID", Operator = ListFilterOperator.Equal, Value = "123" }, new ListFilter() { Name = "LastName", Operator = ListFilterOperator.LessThan, Value = "test" }, new ListFilter() { Name = "FirstName", Operator = ListFilterOperator.Like, Value = "test" }, new ListFilter() { Name = "BirthDate", Operator = ListFilterOperator.GreaterThan, Value = "1900-01-01" }, }; request.Order = new List <SortField> { new SortField() { Name = "PersonID" }, new SortField() { Name = "LastName" }, new SortField() { Name = "FirstName" }, new SortField() { Name = "BirthDate" }, }; var result = request.ToQueryString(); Assert.AreEqual(expected, result); }
/// <summary> /// The get all async. /// </summary> /// <param name="request"> /// The request. /// </param> /// <returns> /// The <see cref="Task"/>. /// </returns> /// <exception cref="ArgumentNullException"><paramref> /// <name>uriString</name> /// </paramref> /// is null. </exception> /// <exception cref="ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity" />. </exception> /// <exception cref="UriFormatException">In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, <see cref="T:System.FormatException" />, instead.<paramref name="uriString" /> is empty.-or- The scheme specified in <paramref name="uriString" /> is not correctly formed. See <see cref="M:System.Uri.CheckSchemeName(System.String)" />.-or- <paramref name="uriString" /> contains too many slashes.-or- The password specified in <paramref name="uriString" /> is not valid.-or- The host name specified in <paramref name="uriString" /> is not valid.-or- The file name specified in <paramref name="uriString" /> is not valid. -or- The user name specified in <paramref name="uriString" /> is not valid.-or- The host or authority name specified in <paramref name="uriString" /> cannot be terminated by backslashes.-or- The port number specified in <paramref name="uriString" /> is not valid or cannot be parsed.-or- The length of <paramref name="uriString" /> exceeds 65519 characters.-or- The length of the scheme specified in <paramref name="uriString" /> exceeds 1023 characters.-or- There is an invalid character sequence in <paramref name="uriString" />.-or- The MS-DOS path specified in <paramref name="uriString" /> must start with c:\\.</exception> /// <exception cref="NotSupportedException"><paramref name="element" /> is not a constructor, method, property, event, type, or field. </exception> /// <exception cref="MailChimpException"> /// Custom Mail Chimp Exception /// </exception> /// <exception cref="TypeLoadException">A custom attribute type cannot be loaded. </exception> public async Task <ListResponse> GetResponseAsync(ListRequest request = null) { using (var client = this.CreateMailClient("lists")) { var response = await client.GetAsync(request?.ToQueryString()).ConfigureAwait(false); await response.EnsureSuccessMailChimpAsync().ConfigureAwait(false); var listResponse = await response.Content.ReadAsAsync <ListResponse>().ConfigureAwait(false); return(listResponse); } }
public async Task <IEnumerable <List> > GetAllAsync(ListRequest request = null) { using (var client = CreateMailClient("lists")) { var response = await client.GetAsync(request?.ToQueryString()); await response.EnsureSuccessMailChimpAsync(); var listResponse = await response.Content.ReadAsAsync <ListResponse>(); return(listResponse.Lists); } }
public async Task <IEnumerable <List> > GetAllAsync(ListRequest request = null) { try { using (var client = CreateMailClient("lists")) { var response = await client.GetAsync(request?.ToQueryString()); response.EnsureSuccessStatusCode(); var listResponse = await response.Content.ReadAsAsync <ListResponse>(); return(listResponse.Lists); } } catch (Exception ex) { } return(null); }