public static void testManualRefund(CloverConnector cloverConnector, TestConnectorListener connListener) { //BEGIN: Test Refund ManualRefundRequest refundRequest = new ManualRefundRequest(); refundRequest.Amount = 5432; System.Console.WriteLine("Preparing To Test Refund: $" + refundRequest.Amount * 100.00); System.Console.WriteLine("Press Any Key to Continue..."); System.Console.ReadKey(); //cloverConnector.Refunds += refundListener; cloverConnector.ManualRefund(refundRequest); while (connListener.hasResponse) { System.Console.WriteLine("Waiting for refundResponse"); System.Threading.Thread.Sleep(1000); } System.Console.WriteLine("RefundResponse:" + connListener.manualRefundResponse.Result); System.Console.WriteLine("RefundResponse:" + connListener.manualRefundResponse.Credit.amount); //END: Test Refund }
public static void testDisplayOrder(CloverConnector cloverConnector, TestConnectorListener connListener) { DisplayOrder order = DisplayFactory.createDisplayOrder(); order.title = "Get Ready!"; order.note = "Here is the note field"; order.serviceChargeName = "Gonna Getcha"; order.serviceChargeAmount = "$2,123.34"; DisplayLineItem lineItem = DisplayFactory.createDisplayLineItem(); lineItem.name = "My Item Name"; lineItem.price = "$123.43"; order.addDisplayLineItem(lineItem); DisplayDiscount discount = DisplayFactory.createDisplayDiscount(); discount.amount = "$543.21"; discount.name = "Nice Guy discount"; order.addDisplayDiscount(discount); cloverConnector.ShowDisplayOrder(order); DisplayLineItem line2 = DisplayFactory.createDisplayLineItem(); line2.name = "another item"; line2.price = "$4.68"; line2.quantity = "2"; line2.unitPrice = "$2.34"; cloverConnector.LineItemAddedToDisplayOrder(order, line2); }
static void Main(string[] args) { CloverDeviceConfiguration config = new USBCloverDeviceConfiguration("__deviceID__", "com.clover.TestTransport", true, 1); CloverConnector cloverConnector = new CloverConnector(config); cloverConnector.InitializeConnection(); TestConnectorListener connListener = new TestConnectorListener(cloverConnector); while (!connListener.ready) { System.Console.WriteLine("Connected:" + connListener.connected); System.Console.WriteLine("Ready:" + connListener.ready); System.Threading.Thread.Sleep(3 * 1000); } System.Console.WriteLine("Connected:" + connListener.connected); System.Console.WriteLine("Ready:" + connListener.ready); //TEST DisplayOrder testDisplayOrder(cloverConnector, connListener); //TEST Payment and Void of that Payment testPaymentAndVoid(cloverConnector, connListener); //TEST Manual Refund (Naked Credit) testManualRefund(cloverConnector, connListener); }
public static void testDisplayOrder(CloverConnector cloverConnector, TestConnectorListener connListener) { DisplayOrder order = DisplayFactory.createDisplayOrder(); order.title = "Get Ready!"; order.note = "Here is the note field"; order.serviceChargeName = "Gonna Getcha"; order.serviceChargeAmount = "$2,123.34"; DisplayLineItem lineItem = DisplayFactory.createDisplayLineItem(); lineItem.name = "My Item Name"; lineItem.price = "$123.43"; order.addDisplayLineItem(lineItem); DisplayDiscount discount = DisplayFactory.createDisplayDiscount(); discount.amount = "$543.21"; discount.name = "Nice Guy discount"; order.addDisplayDiscount(discount); cloverConnector.ShowDisplayOrder(order); DisplayLineItem line2 = DisplayFactory.createDisplayLineItem(); line2.name = "another item"; line2.price = "$4.68"; line2.quantity = "2"; line2.unitPrice = "$2.34"; order.addDisplayLineItem(line2); cloverConnector.ShowDisplayOrder(order); }
public TestConnectorListener(CloverConnector cc) : base(cc) { hasResponse = false; manualRefundResponse = null; voidPaymentResponse = null; refundPaymentResponse = null; saleResponse = null; this.cloverConnector = cc; }
public static void testPaymentAndVoid(CloverConnector cloverConnector, TestConnectorListener connListener) { //BEGIN: Test Void SaleRequest paymentRequest = new SaleRequest(); paymentRequest.ExternalId = ExternalIDUtil.GenerateRandomString(13); paymentRequest.Amount = 1324; paymentRequest.TipAmount = 123; System.Console.WriteLine("Preparing To Test Sale: $" + paymentRequest.Amount * 100.00); System.Console.WriteLine("Press Any Key to Continue..."); System.Console.ReadKey(); //cloverConnector.Sales += paymentListener; cloverConnector.Sale(paymentRequest); while (!connListener.hasResponse) { System.Console.WriteLine("Waiting for paymentResponse"); System.Threading.Thread.Sleep(1000); } SaleResponse response = connListener.saleResponse; string paymentId = response.Payment.id; string orderId = response.Payment.order.id; string employeeId = response.Payment.employee.id; VoidPaymentRequest voidRequest = new VoidPaymentRequest(); voidRequest.OrderId = orderId; voidRequest.PaymentId = paymentId; voidRequest.EmployeeId = employeeId; voidRequest.VoidReason = VoidReason.USER_CANCEL.ToString(); cloverConnector.VoidPayment(voidRequest); while (!connListener.hasResponse) { System.Console.WriteLine("Waiting for voidResponse"); System.Threading.Thread.Sleep(1000); } VoidPaymentResponse voidResponse = connListener.voidPaymentResponse; System.Console.WriteLine(voidResponse.Result); //END: Test Void }
private void InitializeConnector(CloverDeviceConfiguration config) { if (cloverConnector != null) { cloverConnector -= (this); OnDeviceDisconnected(); // for any disabling, messaging, etc. PayButton.Enabled = false; // everything can work except Pay } cloverConnector = new CloverConnector(config); cloverConnector += this; //ui cleanup this.Text = OriginalFormTitle + " - " + config.getName(); if (config is TestCloverDeviceConfiguration) { TestDeviceMenuItem.Checked = true; CloverMiniUSBMenuItem.Checked = false; WebSocketMenuItem.Checked = false; } else if (config is USBCloverDeviceConfiguration) { TestDeviceMenuItem.Checked = false; CloverMiniUSBMenuItem.Checked = true; WebSocketMenuItem.Checked = false; } else if (config is WebSocketCloverDeviceConfiguration) { TestDeviceMenuItem.Checked = false; CloverMiniUSBMenuItem.Checked = false; WebSocketMenuItem.Checked = true; } }
public void OnVoidPaymentResponse(VoidPaymentResponse response) { System.Console.WriteLine("Void Response: " + response.Result); //this.cloverConnector.Voids.Remove(this); this.cloverConnector = null; this.voidPaymentResponse = response; this.hasResponse = true; }
public void OnSaleResponse(SaleResponse response) { System.Console.WriteLine("BlockableSaleResponse: " + response.Result); //this.cloverConnector.Sales.Remove(this); this.cloverConnector = null; this.saleResponse = response; this.hasResponse = true; }
public TestConnectorListener(CloverConnector cc) { hasResponse = false; manualRefundResponse = null; voidPaymentResponse = null; refundPaymentResponse = null; saleResponse = null; this.cloverConnector = cc; }
static void Main(string[] args) { CloverDeviceConfiguration config = new USBCloverDeviceConfiguration("__deviceID__"); CloverConnector cloverConnector = new CloverConnector(config); cloverConnector.InitializeConnection(); TestConnectorListener connListener = new TestConnectorListener(cloverConnector); while (!connListener.ready) { System.Console.WriteLine("Connected:" + connListener.connected); System.Console.WriteLine("Ready:" + connListener.ready); System.Threading.Thread.Sleep(3 * 1000); } System.Console.WriteLine("Connected:" + connListener.connected); System.Console.WriteLine("Ready:" + connListener.ready); //TEST DisplayOrder testDisplayOrder(cloverConnector, connListener); //TEST Payment and Void of that Payment testPaymentAndVoid(cloverConnector, connListener); //TEST Manual Refund (Naked Credit) testManualRefund(cloverConnector, connListener); }
static void Main(string[] args) { string startFilePath = "c:/clover/SaleRequest.txt"; //testFile //string startFilePath = "c:/users/bryanc/Desktop/test.txt"; ICloverConnector cloverConnector; CloverDeviceConfiguration USBConfig = new USBCloverDeviceConfiguration("__deviceID__", "com.Fromuth.BC.tech", false, 1); cloverConnector = new CloverConnector(USBConfig); cloverConnector.AddCloverConnectorListener(new YourListener(cloverConnector)); cloverConnector.InitializeConnection(); Logging log = new Logging("CloverLog"); log.WriteMessage("Clover Program Started"); DateTime timeStamp = DateTime.Now; Thread.Sleep(5000); do { if (cloverConnector.IsReady && !isBusy) { try { //output a clover isConnected file if (File.Exists("c:/clover/isConnected.txt")) { File.WriteAllText("c:/clover/isConnected.txt", DateTime.Now.ToString()); } else { File.Create("c:/clover/isConnected.txt"); File.WriteAllText("c:/clover/isConnected.txt", DateTime.Now.ToString()); } //If the SaleRequest is made, proceed, else keep repeatig loop. if (File.Exists(startFilePath) && !isBusy) { isBusy = true; string startFileText = File.ReadAllText(startFilePath); //File.Delete(startFilePath); //File.Move(startFilePath, "c:/clover/clover-request-sale-file.txt"); string[] startFileContent = startFileText.Split('\t'); switch (startFileContent[0].ToLower()) { case "SALE": case "Sale": case "sale": { //StartOrder(cloverConnector); StartSale(cloverConnector, startFileContent[1], Int32.Parse(startFileContent[2])); break; } case "mrefund": case "MREFUND": case "MRefund": case "refund": { StartRefund(cloverConnector, startFileContent[1], Int32.Parse(startFileContent[2])); break; } case "fdrefund": case "FDREFUND": case "FDRefund": { StartDirectRefund(cloverConnector, startFileContent[1], startFileContent[2]); break; } case "pdrefund": case "PDREFUND": case "PDRefund": { StartDirectRefund(cloverConnector, startFileContent[1], startFileContent[2], Int32.Parse(startFileContent[3])); break; } case "cancel": case "CANCEL": case "Cancel": { cloverConnector.ShowMessage("Transaction Canceled by the cashier."); Thread.Sleep(1500); cloverConnector.ShowWelcomeScreen(); break; } default: { cloverConnector.ShowMessage("Invalid Response"); Thread.Sleep(3000); cloverConnector.ShowWelcomeScreen(); break; } } //File.Delete(startFilePath); } Thread.Sleep(5000); }catch (Exception ex) { Console.WriteLine(ex.Message); log.WriteError(ex.Message); isBusy = false; Thread.Sleep(5000); } } } while (true); }
private void InitializeConnector(CloverDeviceConfiguration config) { if(cloverConnector != null) { cloverConnector -= (this); OnDeviceDisconnected(); // for any disabling, messaging, etc. PayButton.Enabled = false; // everything can work except Pay } cloverConnector = new CloverConnector(config); cloverConnector += this; //ui cleanup this.Text = OriginalFormTitle + " - " + config.getName(); if (config is TestCloverDeviceConfiguration) { TestDeviceMenuItem.Checked = true; CloverMiniUSBMenuItem.Checked = false; WebSocketMenuItem.Checked = false; } else if (config is USBCloverDeviceConfiguration) { TestDeviceMenuItem.Checked = false; CloverMiniUSBMenuItem.Checked = true; WebSocketMenuItem.Checked = false; } else if (config is WebSocketCloverDeviceConfiguration) { TestDeviceMenuItem.Checked = false; CloverMiniUSBMenuItem.Checked = false; WebSocketMenuItem.Checked = true; } }
private void ExamplePOSForm_Load(object sender, EventArgs e) { //MessageBox.Show("Would "); // what to do in the background thread //CloverDeviceConfiguration config = new USBCloverDeviceConfiguration("__deviceID__"); CloverDeviceConfiguration config = new TestCloverDeviceConfiguration(); cloverConnector = new CloverConnector(config); cloverConnector.Connections += this; cloverConnector.Devices += this; cloverConnector.Sales += this; cloverConnector.Voids += this; cloverConnector.ManualRefunds += this; Store = new Store(); Store.AvailableItems.Add(new POSItem("abc123", "Hamburger ", 239)); Store.AvailableItems.Add(new POSItem("def456", "Cheeseburger ", 269)); Store.AvailableItems.Add(new POSItem("ace135", "Dbl. Hamburger ", 329)); Store.AvailableItems.Add(new POSItem("fda321", "Dbl. Cheeseburger ", 379)); Store.AvailableItems.Add(new POSItem("fdc742", "Chicken Sandwich ", 379)); Store.AvailableItems.Add(new POSItem("cea987", "French Fries - Small ", 129)); Store.AvailableItems.Add(new POSItem("acb654", "French Fries - Medium ", 159)); Store.AvailableItems.Add(new POSItem("dfa342", "French Fries - Large ", 179)); Store.AvailableItems.Add(new POSItem("dea937", "Soft Drink - Small ", 119)); Store.AvailableItems.Add(new POSItem("afc470", "Soft Drink - Medium ", 139)); Store.AvailableItems.Add(new POSItem("bce328", "Soft Drink - Large ", 189)); Store.AvailableItems.Add(new POSItem("eda216", "Gift Card ", 3000)); foreach (POSItem item in Store.AvailableItems) { ListViewItem lvi = new ListViewItem(); lvi.Tag = item; lvi.Name = item.Name; lvi.Text = item.Name + (item.Price / 100.0).ToString("C2"); StoreItems.Items.Add(lvi); } UpdateUI(); }
private void InitializeConnector(Dictionary <string, string> parameters) { string protocol; string port; bool testConfig = false; string lanConfig = null; string testConfigString; if (!parameters.TryGetValue("/P", out port)) { port = "8889";// default } string certPath = null; if (!parameters.TryGetValue("/C", out certPath)) { protocol = "ws";// default } else { protocol = "wss"; } if (!parameters.TryGetValue("/T", out testConfigString)) { testConfig = false; } else { testConfig = true; // } parameters.TryGetValue("/L", out lanConfig); server = new WebSocketServer(protocol + "://127.0.0.1:" + port); if (certPath != null) { server.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certPath); } CloverDeviceConfiguration config = null; if (testConfig) { config = new TestCloverDeviceConfiguration(); } else if (lanConfig != null) { int loc = lanConfig.IndexOf(':'); if (loc == -1) { throw new InvalidDataException("invalid lan host. arguments must be '/L <hostname>:<port>'"); } try { string lanHostname = lanConfig.Substring(0, loc); string lanPortStr = lanConfig.Substring(loc + 1); int lanPort = int.Parse(lanPortStr); if (lanPort < 0 || lanPort > 65535) { throw new InvalidDataException("Invalid port. must be between 1 and 65535"); } config = new WebSocketCloverDeviceConfiguration(lanHostname, lanPort, getPOSNameAndVersion(), Debug, Timer); } catch (FormatException fe) { throw new InvalidDataException("invalid port: " + lanConfig.Substring(loc + 1)); } } else { config = new USBCloverDeviceConfiguration(null, getPOSNameAndVersion(), Debug, Timer); } cloverConnector = new CloverConnector(config); cloverConnector.InitializeConnection(); cloverConnector.AddCloverConnectorListener(connectorListener); }