using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Newtonsoft.Json; using System.Net.Http; using System.Text; using Microsoft.Owin.Hosting; namespace CloudSimulator { public partial class CloudForm : Form { string FusionUri; string serverBaseAddress; IDisposable webApp; string carPlateGun = System.Configuration.ConfigurationManager.AppSettings["CarPlateGun"]; string oilName = System.Configuration.ConfigurationManager.AppSettings["OilName"]; public CloudForm() { InitializeComponent(); FusionUri = System.Configuration.ConfigurationManager.AppSettings["FusionUri"]; serverBaseAddress = System.Configuration.ConfigurationManager.AppSettings["PaymentCloudAndPosListeningPoint"]; webApp = WebApp.Start(url: serverBaseAddress); AppendText("PaymentCloud and Pos started listensing at " + serverBaseAddress); } private async void btnSendCarPlate_Click(object sender, EventArgs e) { var httpClient = new HttpClient(); var data = new CarPlateTrxRequest { car_Number = "京NS1695", card_No = "9876543210123456789", ttc = "6565656565", amount = GetCardBalance(), token = "2323232323", tid = "12345", display_Msg = "", gun = textBoxNozzleId.Text, oilName = textBoxFuelGrade.Text, }; rtbLog.Text += data.ToString() + Environment.NewLine; var result = await httpClient.PostAsync(FusionUri, data.AsJson()); rtbLog.Text += result.ToString() + Environment.NewLine; } private void CloudForm_Load(object sender, EventArgs e) { } public void AppendText(string text) { rtbLog.Text += text + Environment.NewLine; } public void AppendTextThreadSafe(string text) { this.Invoke((MethodInvoker)(() => AppendText(text))); } public decimal GetCardBalance() { return decimal.Parse(textBoxCardBalance.Text); } public double GetCardBalanceThreadSafe() { double balance = 0; this.Invoke((MethodInvoker)(() => balance = double.Parse(textBoxCardBalance.Text))); return balance; } } public static class Extensions { public static StringContent AsJson(this object o) => new StringContent(JsonConvert.SerializeObject(o), Encoding.UTF8, "application/json"); } }