I have Following API Call in c# and I want to make it Synchronous and it should wait till it comes backs from other modules where delete logic is performed.
- 
                    4I don't see any async code? What am I missing please? – Paul Suart Jul 13 '18 at 10:36
- 
                    Why do you exactly want to make it sync? It's weird but review your return, since it's `async void` and it might be `async Task` and of course call your `CallExternalServiceAsync()` as `await CallExternalServiceAsync()` – Gonzo345 Jul 13 '18 at 10:39
2 Answers
I belive the following code is your problem: CallExternalServiceAsync(..)
It should return a task, which you can await if you declare your function async. Otherwise, if you are just interested in waiting, you may call CallExternalServiceAsync(...).Wait(), assuming that it returns a Task.
 
    
    - 90
- 8
As stated on comments, you might return a Task instead a void and perform the call of the CallExternalServiceAsync method with the await, assuming it's awaitable.
public async Task CallDeleteOrderApi()
{
    var responseMsg = await CallExternalServiceAsync(_apiPath, _validatePath, requestHeader);
}
Have a look at this question which explains how and why using async Task.
Basically, just specify async void return on method declaration when it's on an Event (for example frm_Load on WinForms). On custom methods, always declare it as async Task if you would just return a void (which is actually returning a Task) and async Task<int> if you, for example, want to return an int.
 
    
    - 1,133
- 3
- 20
- 42
- 
                    Public HttpResponseMessage CallExternalServiceAsync(string apiUrl, string apiPath, FormUrlEncodedContent postContent) { var client = new HttpClient { BaseAddress = new Uri(apiUrl) }; client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //Post implementation var response = client.PostAsync(apiPath, postContent).Result; return HttpResponseMessage; } – Vitthal Mokhare Jul 13 '18 at 10:50
- 
                    I have above code for CallExternalServiceAsync on on postasync it still dosent wait – Vitthal Mokhare Jul 13 '18 at 10:56
- 
                    @VitthalMokhare the problem is that you have to wait in your CallExternalServiceAsync clas for the result. – Darem Jul 13 '18 at 11:25
