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
        }
Example #2
0
        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
        }
Example #7
0
        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
        }
Example #8
0
        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
        }
Example #9
0
        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;
            }
        }
Example #10
0
 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;
 }
Example #11
0
 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;
 }
Example #12
0
 public TestConnectorListener(CloverConnector cc)
 {
     hasResponse = false;
     manualRefundResponse = null;
     voidPaymentResponse = null;
     refundPaymentResponse = null;
     saleResponse = null;
     this.cloverConnector = cc;
 }
Example #13
0
        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);
        }
Example #14
0
        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);
        }