示例#1
0
        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());
            }
        }