Skip to content

Commit ac4602f

Browse files
Merge pull request #14 from sendgrid/891-async-fix
#9 async fix
2 parents a88053e + 0f98b2d commit ac4602f

File tree

5 files changed

+17
-26
lines changed

5 files changed

+17
-26
lines changed

CSharpHTTPClient/CSharpHTTPClient.csproj

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,6 @@
4545
<ItemGroup>
4646
<Reference Include="System" />
4747
<Reference Include="System.Core" />
48-
<Reference Include="System.Net.Http.Formatting">
49-
<HintPath>..\..\sendgrid-csharp\SendGrid\SendGrid\bin\Debug\System.Net.Http.Formatting.dll</HintPath>
50-
</Reference>
5148
<Reference Include="System.Web" />
5249
<Reference Include="System.Web.Extensions" />
5350
<Reference Include="System.Xml.Linq" />

CSharpHTTPClient/Client.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, o
280280
}
281281
i++;
282282
}
283-
result = RequestAsync(binder.Name.ToUpper(), requestBody: requestBody, queryParams: queryParams).Result;
283+
result = RequestAsync(binder.Name.ToUpper(), requestBody: requestBody, queryParams: queryParams).ConfigureAwait(false);
284284
return true;
285285
}
286286
else

Example/Example.cs

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using SendGrid.CSharp.HTTP.Client;
44
using System.Web.Script.Serialization;
5+
using System.Threading.Tasks;
56
using Newtonsoft.Json;
67

78
// This is a working example, using the SendGrid API
@@ -12,6 +13,11 @@ namespace Example
1213
class Example
1314
{
1415
static void Main(string[] args)
16+
{
17+
Execute().Wait();
18+
}
19+
20+
static async Task Execute()
1521
{
1622
String host = "https://e9sk3d3bfaikbpdq7.stoplight-proxy.io";
1723
Dictionary<String, String> globalRequestHeaders = new Dictionary<String, String>();
@@ -28,23 +34,11 @@ static void Main(string[] args)
2834
}";
2935
Dictionary<String, String> requestHeaders = new Dictionary<String, String>();
3036
requestHeaders.Add("X-Test", "test");
31-
dynamic response = client.api_keys.get(queryParams: queryParams, requestHeaders: requestHeaders);
37+
dynamic response = await client.api_keys.get(queryParams: queryParams, requestHeaders: requestHeaders);
3238
Console.WriteLine(response.StatusCode);
3339
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
3440
Console.WriteLine(response.Headers.ToString());
3541

36-
var dssResponseBody = response.DeserializeResponseBody(response.Body);
37-
foreach ( var value in dssResponseBody["result"])
38-
{
39-
Console.WriteLine("name: {0}, api_key_id: {1}",value["name"], value["api_key_id"]);
40-
}
41-
42-
var dssResponseHeaders = response.DeserializeResponseHeaders(response.Headers);
43-
foreach (var pair in dssResponseHeaders)
44-
{
45-
Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
46-
}
47-
4842
Console.WriteLine("\n\nPress any key to continue to POST.");
4943
Console.ReadLine();
5044

@@ -60,7 +54,7 @@ static void Main(string[] args)
6054
Object json = JsonConvert.DeserializeObject<Object>(requestBody);
6155
requestHeaders.Clear();
6256
requestHeaders.Add("X-Test", "test2");
63-
response = client.api_keys.post(requestBody: json.ToString(), requestHeaders: requestHeaders);
57+
response = await client.api_keys.post(requestBody: json.ToString(), requestHeaders: requestHeaders);
6458
Console.WriteLine(response.StatusCode);
6559
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
6660
Console.WriteLine(response.Headers.ToString());
@@ -72,7 +66,7 @@ static void Main(string[] args)
7266
Console.ReadLine();
7367

7468
// GET Single
75-
response = client.api_keys._(api_key_id).get();
69+
response = await client.api_keys._(api_key_id).get();
7670
Console.WriteLine(response.StatusCode);
7771
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
7872
Console.WriteLine(response.Headers.ToString());
@@ -85,7 +79,7 @@ static void Main(string[] args)
8579
'name': 'A New Hope'
8680
}";
8781
json = JsonConvert.DeserializeObject<Object>(requestBody);
88-
response = client.api_keys._(api_key_id).patch(requestBody: json.ToString());
82+
response = await client.api_keys._(api_key_id).patch(requestBody: json.ToString());
8983
Console.WriteLine(response.StatusCode);
9084
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
9185
Console.WriteLine(response.Headers.ToString());
@@ -102,7 +96,7 @@ static void Main(string[] args)
10296
]
10397
}";
10498
json = JsonConvert.DeserializeObject<Object>(requestBody);
105-
response = client.api_keys._(api_key_id).put(requestBody: json.ToString());
99+
response = await client.api_keys._(api_key_id).put(requestBody: json.ToString());
106100
Console.WriteLine(response.StatusCode);
107101
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
108102
Console.WriteLine(response.Headers.ToString());
@@ -111,7 +105,7 @@ static void Main(string[] args)
111105
Console.ReadLine();
112106

113107
// DELETE
114-
response = client.api_keys._(api_key_id).delete();
108+
response = await client.api_keys._(api_key_id).delete();
115109
Console.WriteLine(response.StatusCode);
116110
Console.WriteLine(response.Headers.ToString());
117111

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Here is a quick example:
4040
using SendGrid.CSharp.HTTP.Client;
4141
globalRequestHeaders.Add("Authorization", "Bearer XXXXXXX");
4242
dynamic client = new Client(host: baseUrl, requestHeaders: globalRequestHeaders);
43-
client.your.api._(param).call.get()
43+
var response = await client.your.api._(param).call.get()
4444
Console.WriteLine(response.StatusCode);
4545
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
4646
Console.WriteLine(response.Headers.ToString());
@@ -57,7 +57,7 @@ string queryParams = @"{'Hello': 0, 'World': 1}";
5757
requestHeaders.Add("X-Test", "test");
5858
string requestBody = @"{'some': 1, 'awesome': 2, 'data': 3}";
5959
Object json = JsonConvert.DeserializeObject<Object>(requestBody);
60-
var response = client.your.api._(param).call.post(requestBody: json.ToString(),
60+
var response = await client.your.api._(param).call.post(requestBody: json.ToString(),
6161
queryParams: queryParams,
6262
requestHeaders: requestHeaders)
6363
Console.WriteLine(response.StatusCode);

UnitTest/UnitTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ public void TestReflection()
6464
}
6565

6666
[Test]
67-
public void TestMethodCall()
67+
public async void TestMethodCall()
6868
{
6969
var host = "http://api.test.com";
7070
dynamic test_client = new MockClient(host: host);
71-
Response response = test_client.get();
71+
Response response = await test_client.get();
7272
Assert.IsNotNull(response);
7373
Assert.AreEqual(response.StatusCode, HttpStatusCode.OK);
7474
var content = new StringContent("{'test': 'test_content'}", Encoding.UTF8, "application/json");

0 commit comments

Comments
 (0)