private static async Task SendExpense(decimal amount, string reason) { try { var client = new RestSharp.RestClient(); var content = new RestSharp.RestRequest(new Uri(SERVICE_URL), RestSharp.Method.POST) { RequestFormat = RestSharp.DataFormat.Json }; content.AddJsonBody(new { Amount = amount, Reason = reason, LicenseKey = PASample.Wpf.App.LicenseKey, Id = Guid.NewGuid(), Department = PASample.Wpf.App.Department }); content.Resource = "api/Expense/Approve"; client.BaseUrl = new Uri(SERVICE_URL); var uri = client.BuildUri(content); var response = await client.ExecuteTaskAsync(content); if (response.ResponseStatus != RestSharp.ResponseStatus.Completed) { MessageBox.Show("Unknown Error Processing Request", "Error"); return; } var respStream = response.Content; var js = new Newtonsoft.Json.JsonSerializer(); var expResponse = (ExpenseApprovalResponse)js.Deserialize(new Newtonsoft.Json.JsonTextReader(new StringReader(respStream)), typeof(ExpenseApprovalResponse)); var msg = string.Empty; if (expResponse.Exception == null || string.IsNullOrEmpty(expResponse.Exception.Message)) { msg = "Your request was processed."; } else { msg = "Your request was rejected because - " + expResponse.Exception.Message; } MessageBox.Show(msg, "Result"); } catch (Exception ex) { MessageBox.Show("Error", "Error"); System.Diagnostics.Debug.WriteLine(ex.ToString()); } }