Exemple #1
0
        public void Print(PrintRequest request)
        {
            PrintRequest64 printRequest = new PrintRequest64();

            if (request.images.Count > 0)
            {
                Bitmap       bitmap = request.images[0];
                MemoryStream ms     = new MemoryStream();
                bitmap.Save(ms, ImageFormat.Png);
                byte[] imgBytes    = ms.ToArray();
                string base64Image = Convert.ToBase64String(imgBytes);

                printRequest.setBase64Strings(base64Image);
            }
            else if (request.imageURLs.Count > 0)
            {
                printRequest.setImageUrls(request.imageURLs[0]);
            }
            else if (request.text.Count > 0)
            {
                printRequest.setText(request.text);
            }
            printRequest.externalPrintJobId = request.printRequestId;
            printRequest.printDeviceId      = request.printDeviceId;
            Send("/Print", printRequest);
        }
Exemple #2
0
        static void Main(string[] args)
        {
#if NETCOREAPP1_0
            Console.WriteLine("Compiled for NetCore 1.0");
#elif NETCOREAPP2_0
            Console.WriteLine("Compiled for NetCore 2.0");
#elif NET35
            Console.WriteLine("Compiled for Net35");
#elif NET45
            Console.WriteLine("Compiled for Net45");
#elif NET461
            Console.WriteLine("Compiled for Net461");
#elif NET462
            Console.WriteLine("Compiled for Net462");
#elif NET471
            Console.WriteLine("Compiled for Net471");
#endif

            Console.WriteLine("Hello World from a Multitargeted App !");

            MultitargetedClass.WriteACommonMessage();
            MultitargetedClass.WriteACompilationSpecificMessage();

#if NET35
            Console.WriteLine("netstandard lib not supported in Net35 apps");
            Console.WriteLine("HttpClient dependent lib not supported in Net35 apps");
#else
            Console.WriteLine(NetstandardOnlyLib.NetstandardClass.ReturnAMessageFromANetstandardOnlyLibrary());
            Console.WriteLine($"WebRequest result is {PrintRequest.RequestSomething()}");
#endif
        }
Exemple #3
0
 public void Dispose()
 {
     if (_timer != null)
     {
         _timer.Stop();
     }
     _worker       = null;
     _printRequest = null;
 }
Exemple #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World from a Net 462 App!");

            MultitargetedClass.WriteACommonMessage();
            MultitargetedClass.WriteACompilationSpecificMessage();
            Console.WriteLine(NetstandardClass.ReturnAMessageFromANetstandardOnlyLibrary());
            Console.WriteLine($"WebRequest result is {PrintRequest.RequestSomething()}");
        }
Exemple #5
0
        public override Task <PrintReply> Print(PrintRequest request, ServerCallContext context)
        {
            var tasks  = _mapper.Map <IEnumerable <TaskDto> >(request.Tasks);
            var result = _taskParserService.PrintTasks(tasks);

            return(Task.FromResult(new PrintReply
            {
                Texts = { result }
            }));
        }
Exemple #6
0
 public int SubmitRequest(PrintRequest lobj)
 {
     if (lobj != null)
     {
         using (EF.DAO.ContextTableContainer db = new EF.DAO.ContextTableContainer())
         {
         }
         return(1);
     }
     return(0);
 }
Exemple #7
0
        public static string Serialize(PrintRequest job)
        {
            string result = string.Empty;

            foreach (var prop in job.GetType().GetProperties())
            {
                result += $"{prop.Name}={prop.GetValue(job)};";
            }

            return(result);
        }
Exemple #8
0
    private static PrintRequest BuildPrintRequest()
    {
        PrintRequest     request = new PrintRequest();
        GameObject       target  = TargetManager.Instance.Target;
        FlowerController fc      = target.GetComponent <FlowerController>();
        Quaternion       r       = fc.GetFixedDupRotation();

        request.scale       = target.transform.localScale.x;
        request.translation = new double[] { target.transform.localPosition.x, target.transform.localPosition.y, target.transform.localPosition.z };
        request.orientation = new double[] { r.w, r.x, r.y, r.z };
        return(request);
    }
        private void PrintLabelEvent(PrintRequest request, PrintPageEventArgs e)
        {
            var barcode = new Barcode();

            barcode.IncludeLabel = true;
            var settings = e.PageSettings.PrinterSettings.PaperSizes;

            //var settings1 = e.PageSettings.PrinterSettings;
            //var settings2 = e.PageSettings.PrinterSettings.PaperSizes;
            barcode.LabelPosition = LabelPositions.BOTTOMCENTER;
            barcode.LabelFont     = ProductNameFont;

            var dpiX = 100;
            var dpiY = 100;

            var labelWidth     = (int)(1.96 * dpiX);
            var labelHeight    = (int)(1.18 * dpiY);
            var encodedBarcode = barcode.Encode(TYPE.CODE39, request.BarcodeToPrint, (int)labelWidth, (int)(labelHeight * 0.3));

            e.Graphics.SmoothingMode      = SmoothingMode.HighQuality;
            e.Graphics.CompositingQuality = CompositingQuality.HighQuality;

            var priceString        = "Total (lei): " + request.PrintingProduct.Price.ToString() + " MDL";
            var priceStringMeasure = e.Graphics.MeasureString(priceString, ProductNameFont);

            var drawFormat = new StringFormat {
                Alignment = StringAlignment.Near
            };

            // Draw product name
            var productNameRect = new RectangleF(5, 10, labelWidth - 10, (int)(labelHeight / 3));

            e.Graphics.DrawString(request.PrintingProduct.ProductName, ProductNameFont, new SolidBrush(Color.Black), productNameRect, drawFormat);

            // Draw barcode
            var barcodeBitmap = new Bitmap(encodedBarcode);

            barcodeBitmap.SetResolution(dpiX, dpiY);

            e.Graphics.DrawImage(barcodeBitmap, new Point((int)XCentered(barcodeBitmap.Width, labelWidth), (int)labelHeight - barcodeBitmap.Height - 10));

            // Draw price
            var priceRectYPosition = labelHeight - barcodeBitmap.Height - priceStringMeasure.Height - 15;
            var priceRect          = new RectangleF(5, (int)priceRectYPosition, priceStringMeasure.Width, priceStringMeasure.Height);

            e.Graphics.DrawString(priceString, ProductNameFont, new SolidBrush(Color.Black), priceRect);
            //e.Graphics.PageUnit = GraphicsUnit.Pixel;
            //e.PageSettings.PrinterSettings.
            //e.Graphics.DrawRectangle(Pens.Black, new Rectangle(5, 5, 196 - 10, 118 - 10));

            e.Graphics.Save();
        }
Exemple #10
0
        public override string AddPrinter(PrintParameter parameter)
        {
            int           stime    = PrintTools.GetTotalSeconds(DateTime.Now);
            StringBuilder postData = new StringBuilder();

            postData.Append("printerContent=" + parameter.SnList);
            postData.Append("&user="******"&stime=" + stime);
            postData.Append("&sig=" + PrintTools.Sha1(USer, UKey, stime + ""));
            postData.Append("&apiname=" + "Open_printerAddlist");
            string result = PrintRequest.RequestMethod(postData.ToString(), Url, Encoding.UTF8);

            return(result);
        }
Exemple #11
0
        public IActionResult Post([FromBody] PrintRequest doc)
        {
            Dictionary <string, string> result = new Dictionary <string, string>
            {
                { "docLocation", doc.location }
            };

            using (DeviceClient client = new DeviceClient())
            {
                client.Print(doc.location);
                result["printer"] = client.getDefualtPrinter();
            }
            return(Ok(result));
        }
        public static bool AddBatch(BacthedPrintRequestDto requestDto)
        {
            lock (Padlock1)
            {
                var firstRequest = false;
                var request      = PrintRequestsInProgress.Find(r => r.PrintId == requestDto.PrintId);
                if (request == null)
                {
                    request = new PrintRequest(requestDto.PrintId, requestDto.DocumentType, new string[requestDto.BatchesTotal]);
                    PrintRequestsInProgress.Add(request);
                    firstRequest = true;
                }

                request.Batches[requestDto.BatchNr - 1] = requestDto.Document;
                return(firstRequest);
            }
        }
Exemple #13
0
        public ActionResult <PrintResponse> PostPrint(PrintRequest printRequest)
        {
            //生成TaskId
            string TaskId = Guid.NewGuid().ToString();

            //生成TodoItem并保存
            _context.TodoItems.Add(new TodoItem {
                TokenId = printRequest.TokenId, TaskId = TaskId, BartendExePath = this.BartendExePath, CurrentDirectory = _hostingEnvironment.WebRootPath, TemplateFolder = this.TemplateFolder, IsComplete = false
            });
            _context.SaveChanges();
            //返回结果
            PrintResponse printReponse = new PrintResponse {
                TokenId = printRequest.TokenId, TaskId = TaskId, Result = true, Msg = ""
            };

            return(printReponse);
        }
Exemple #14
0
        public override string QueryOrderInfoByDate(string SN = "", string Date = "")
        {
            StringBuilder postData = new StringBuilder($"sn={SN}");

            postData.Append($"&date={Date}");
            int itime = PrintTools.GetTotalSeconds(DateTime.Now);//时间戳秒数
            //string stime = itime.ToString();
            string sig = PrintTools.Sha1(USer, UKey, itime + "");

            postData.Append($"&user={USer}");
            postData.Append($"&stime={itime + ""}");
            postData.Append($"&sig={sig}" + sig);
            postData.Append("&apiname=Open_queryOrderInfoByDate");
            string result = PrintRequest.RequestMethod(postData.ToString(), Url, Encoding.UTF8);

            return(result);
        }
Exemple #15
0
        public override string QueryPrinterStatus(string SN = "")
        {
            if (string.IsNullOrEmpty(SN))
            {
                return("参数错误");
            }
            StringBuilder postData = new StringBuilder($"sn={SN}");
            int           itime    = PrintTools.GetTotalSeconds(DateTime.Now);//时间戳秒数
            //string stime = itime.ToString();
            string sig = PrintTools.Sha1(USer, UKey, itime + "");

            postData.Append($"&user={USer}");
            postData.Append($"&stime={itime + ""}");
            postData.Append($"&sig={sig}");
            postData.Append("&apiname=Open_queryPrinterStatus");
            string result = PrintRequest.RequestMethod(postData.ToString(), Url, Encoding.UTF8);

            return(result);
        }
Exemple #16
0
        public override string QureyOrderState(string orderID = "")
        {
            if (string.IsNullOrEmpty(orderID))
            {
                return("参数错误");
            }
            string postData = $"orderid={orderID}";
            int    itime    = PrintTools.GetTotalSeconds(DateTime.Now);//时间戳秒数
            string stime    = itime.ToString();
            string sig      = PrintTools.Sha1(USer, UKey, stime);

            postData += ("&user="******"&stime=" + stime);
            postData += ("&sig=" + sig);
            postData += ("&apiname=" + "Open_queryOrderState");
            string result = PrintRequest.RequestMethod(postData.ToString(), Url, Encoding.UTF8);

            return(result);
        }
Exemple #17
0
        public override string PrinterRequest(PrintParameter parameter, Data.Printer printer)
        {
            string        orderinfo = GetRequsetContent(parameter, printer.PrintWay);
            string        order     = Uri.UnescapeDataString(orderinfo.ToString());
            StringBuilder postData  = new StringBuilder("sn=" + parameter.SN);

            postData.Append($"&content={order}");
            postData.Append($"&times={(string.IsNullOrEmpty(parameter.Times) || !int.TryParse(parameter.Times, out int times) ? 1 + "" : parameter.Times)}");
            // int itime = DateTimeToStamp(System.DateTime.Now);//时间戳秒数
            int    stime = PrintTools.GetTotalSeconds(DateTime.Now);
            string sig   = PrintTools.Sha1(USer, UKey, stime + "");

            postData.Append("&user="******"&stime=" + stime);
            postData.Append("&sig=" + sig);
            postData.Append("&apiname=Open_printMsg");
            string result = PrintRequest.RequestMethod(postData.ToString(), Url, Encoding.UTF8);

            return(result);
        }
Exemple #18
0
        /// <summary>
        /// Ищет принтеры в сети
        ///
        /// Параметр bool reScanNetwork уточняет, следует ли пересканировать всю сеть даже если принтер указан.
        /// Следует сказать False при автозапусе и True при настройке
        /// </summary>
        private void StartPrintService()
        {
            if (_printRequest == null)
            {
                _printRequest = new PrintRequest();
                _printRequest.OnPrinterDiscoveryBegin     += OnPrinterDiscoveryBegin;
                _printRequest.OnPrinterDiscoveryCompleted += OnPrinterDiscoveryCompleted;
                _printRequest.OnPrinting += OnPrinting;
                _printRequest.OnPrinted  += OnPrinted;
            }

            Printer printer = new Printer()
            {
                PrinterIp   = PrinterIp,
                NetworkMask = NetworkMask,
                IsFound     = false,
                AutoSearch  = AutoSearch,
                PrinterInfo = String.Empty
            };

            ThreadPool.QueueUserWorkItem(_printRequest.Begin, printer);
        }
        public bool PrintLabel(PrintRequest request)
        {
            using (PrintDocument pd = new PrintDocument())
            {
                try
                {
                    pd.PrintController             = new StandardPrintController();
                    pd.PrinterSettings.PrinterName = "Xprinter_XP-370B";
                    pd.PrintPage += (sender, args) => PrintLabelEvent(request, args);

                    for (int i = 0; i < request.LabelsCount; i++)
                    {
                        pd.Print();
                    }
                }
                catch (Exception ex)
                {
                }
            }

            return(true);
        }
Exemple #20
0
        public override Task <PrintReply> PrintAgeAndGender(PrintRequest request, ServerCallContext context)
        {
            string gender = "";
            string age    = "";

            if (request.Cnp.Length >= 7 && ValidateCNP(request.Cnp))
            {
                var genderChar  = request.Cnp.ElementAt(0);
                var dateOfBirth = request.Cnp.Substring(1, 6);

                if (genderChar == '1' || genderChar == '5')
                {
                    gender = "male";
                }
                else
                {
                    if (genderChar == '2' || genderChar == '6')
                    {
                        gender = "female";
                    }
                }

                age = GetAge(genderChar, dateOfBirth).ToString();
                Console.WriteLine(request.Name + " is " + gender + " and is " + age + " years old.");
            }
            else
            {
                Console.WriteLine(request.Name + " provided a faulty input.");
            }

            return(Task.FromResult(new PrintReply
            {
                MessageName = request.Name,
                MessageAge = age,
                MessageGender = gender
            }));
        }
Exemple #21
0
    async void UploadAndPrint(byte[] data, string url, PrintRequest request)
    {
        // upload model data, in stl format
        hintMsg = "uploading model";
        string respondString = await Upload(data, url);

        DetectRespond detectRespond = JsonUtility.FromJson <DetectRespond>(respondString);

        // log
        hintMsg = "model uploaded, mesh id is: " + detectRespond.mesh_id.ToString();

        // wait for a while to ensure the model is uploaded, then send print request
        // the print request should carry a mesh id which is returned from uploading
        await Task.Delay(3000);

        request.meshId = detectRespond.mesh_id;
        string json = JsonUtility.ToJson(request);

        hintMsg = "sending print request";
        string printRespond = await Print(json);

        // log
        hintMsg = "printing in progress";
    }
Exemple #22
0
 public void Print(HttpListenerContext context)
 {
     try
     {
         PrintRequest64 message = ParseRequest <PrintRequest64>(context);
         PrintRequest   request = null;
         if (message != null)
         {
             if (message.base64strings.Count > 0)
             {
                 byte[]       imgBytes = Convert.FromBase64String(message.base64strings[0]);
                 MemoryStream ms       = new MemoryStream();
                 ms.Write(imgBytes, 0, imgBytes.Length);
                 Bitmap bp = new Bitmap(ms);
                 ms.Close();
                 request = new PrintRequest(bp, message.externalPrintJobId, message.printDeviceId);
             }
             else if (message.imgUrls.Count > 0)
             {
                 request = new PrintRequest(message.imgUrls[0], message.externalPrintJobId, message.printDeviceId);
             }
             else if (message.textLines.Count > 0)
             {
                 request = new PrintRequest(message.textLines, message.externalPrintJobId, message.printDeviceId);
             }
             GetServer.CloverConnector.Print(request);
             this.SendTextResponse(context, "");
         }
     }
     catch (Exception e)
     {
         context.Response.StatusCode        = 400;
         context.Response.StatusDescription = e.Message;
         this.SendTextResponse(context, "error processing request");
     }
 }
 public bool PrintLabel(PrintRequest request)
 {
     return(true);
 }
Exemple #24
0
 public override Task <Empty> Print(PrintRequest request, ServerCallContext context)
 {
     return(base.Print(request, context));
 }
Exemple #25
0
        protected override void OnStart(string[] args)
        {
            base.OnStart(args);
            string logSource = "_TransportEventLog";

            if (!EventLog.SourceExists(logSource))
            {
                EventLog.CreateEventSource(logSource, logSource);
            }

            EventLogTraceListener myTraceListener = new EventLogTraceListener(logSource);

            // Add the event log trace listener to the collection.
            Trace.Listeners.Add(myTraceListener);

            if (args.Length == 0)
            {
                // Retrieve the arguments from the service ImagePath
                args = Environment.GetCommandLineArgs();
            }

            if (args.Length > 0)
            {
                if (((ICollection <string>)args).Contains("-debug"))
                {
                    Debug = true;
                }

                if (((ICollection <string>)args).Any(a => a.Contains("-timer")))
                {
                    IEnumerable <string> timerStrings = ((ICollection <string>)args).Where(a => a.Contains("-timer"));
                    if (timerStrings.Count() == 1)
                    {
                        try
                        {
                            string timerString  = timerStrings.First();
                            int    index        = timerString.IndexOf('=');
                            string timerSeconds = timerString.Substring(index + 1);
                            Timer = Convert.ToInt32(timerSeconds);
                        }
                        catch
                        {
                            Timer = 1;
                            EventLog.WriteEntry(SERVICE_NAME, "Error parsing the -timer command line argument.  Setting timer to 1 second.");
                        }
                    }
                }
            }

            //load args in to dictionary
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            if (args != null)
            {
                for (int i = 0; i < args.Length; i++)
                {
                    if ("/T".Equals(args[i]))
                    {
                        parameters.Add("/T", "true");
                    }
                    else if (i + 1 < args.Length)
                    {
                        parameters.Add(args[i], args[++i]);
                    }
                }
            }

            IWebSocketConnection          sendSocket   = null;
            Action <IWebSocketConnection> serverSocket = socket =>
            {
                socket.OnOpen = () =>
                {
                    Console.WriteLine("Open! " + clientConnections.Count);
                    if (clientConnections.Count > 0)
                    {
                        if (clientConnections[0].IsAvailable)
                        {
                            socket.Close();
                            connectorListener.OnDeviceError(new CloverDeviceErrorEvent(CloverDeviceErrorEvent.CloverDeviceErrorType.EXCEPTION, 0, null, "Another client is already connected"));
                            return;
                        }
                    }
                    sendSocket = socket;
                    clientConnections.Add(socket);

                    connectorListener.WebSocket = sendSocket;
                    connectorListener.SendConnectionStatus();
                };
                socket.OnClose = () =>
                {
                    clientConnections.Remove(socket);
                    Console.WriteLine("Close!");
                    connectorListener.WebSocket = null;
                };
                socket.OnMessage = message =>
                {
                    try
                    {
                        JObject         jsonObj = (JObject)JsonConvert.DeserializeObject(message);
                        JToken          method  = jsonObj.GetValue(ServicePayloadConstants.PROP_METHOD);
                        JObject         payload = (JObject)jsonObj.GetValue(ServicePayloadConstants.PROP_PAYLOAD);
                        WebSocketMethod wsm     = (WebSocketMethod)Enum.Parse(typeof(WebSocketMethod), method.ToString());

                        switch (wsm)
                        {
                        case WebSocketMethod.Status:
                        {
                            connectorListener.SendConnectionStatus();
                            break;
                        }

                        case WebSocketMethod.OpenCashDrawer:
                        {
                            OpenCashDrawerRequest request = JsonUtils.Deserialize <OpenCashDrawerRequest>(payload.ToString());
                            cloverConnector.OpenCashDrawer(request);
                            break;
                        }

                        case WebSocketMethod.ShowMessage:
                        {
                            string msg = ((JObject)payload).GetValue("Message").Value <string>();
                            cloverConnector.ShowMessage(msg);
                            break;
                        }

                        case WebSocketMethod.ShowThankYouScreen:
                        {
                            cloverConnector.ShowThankYouScreen();
                            break;
                        }

                        case WebSocketMethod.ShowWelcomeScreen:
                        {
                            cloverConnector.ShowWelcomeScreen();
                            break;
                        }

                        case WebSocketMethod.Break:     // deprecated. use ResetDevice
                        case WebSocketMethod.ResetDevice:
                        {
                            cloverConnector.ResetDevice();
                            break;
                        }

                        case WebSocketMethod.PrintText:
                        {
                            JArray        messages    = (JArray)payload.GetValue("Messages");
                            List <string> messageList = new List <string>();
                            foreach (string msg in messages)
                            {
                                messageList.Add(msg);
                            }
                            cloverConnector.Print(new PrintRequest()
                                {
                                    text = messageList
                                });
                            break;
                        }

                        case WebSocketMethod.PrintImage:
                        {
                            string       base64Img = ((JObject)payload).GetValue("Bitmap").Value <string>();
                            byte[]       imgBytes  = Convert.FromBase64String(base64Img);
                            MemoryStream ms        = new MemoryStream();
                            ms.Write(imgBytes, 0, imgBytes.Length);
                            Bitmap bp = new Bitmap(ms);
                            ms.Close();
                            cloverConnector.Print(new PrintRequest()
                                {
                                    images = new List <Bitmap> {
                                        bp
                                    }
                                });
                            break;
                        }

                        case WebSocketMethod.PrintImageFromURL:
                        {
                            string url = ((JObject)payload).GetValue("Url").Value <string>();
                            cloverConnector.Print(new PrintRequest()
                                {
                                    imageURLs = new List <string> {
                                        url
                                    }
                                });
                            break;
                        }

                        case WebSocketMethod.Auth:
                        {
                            AuthRequest authRequest = JsonUtils.Deserialize <AuthRequest>(payload.ToString());
                            cloverConnector.Auth(authRequest);
                            break;
                        }

                        case WebSocketMethod.PreAuth:
                        {
                            PreAuthRequest preAuthRequest = JsonUtils.Deserialize <PreAuthRequest>(payload.ToString());
                            cloverConnector.PreAuth(preAuthRequest);
                            break;
                        }

                        case WebSocketMethod.TipAdjustAuth:
                        {
                            TipAdjustAuthRequest tipAdjustRequest = JsonUtils.Deserialize <TipAdjustAuthRequest>(payload.ToString());
                            cloverConnector.TipAdjustAuth(tipAdjustRequest);
                            break;
                        }

                        case WebSocketMethod.CapturePreAuth:
                        {
                            CapturePreAuthRequest capturePreAuthRequest = JsonUtils.Deserialize <CapturePreAuthRequest>(payload.ToString());
                            cloverConnector.CapturePreAuth(capturePreAuthRequest);
                            break;
                        }

                        case WebSocketMethod.Sale:
                        {
                            SaleRequest saleRequest = JsonUtils.Deserialize <SaleRequest>(payload.ToString());
                            cloverConnector.Sale(saleRequest);
                            break;
                        }

                        case WebSocketMethod.InvokeInputOption:
                        {
                            InputOption io = JsonUtils.Deserialize <InputOption>(payload.ToString());
                            cloverConnector.InvokeInputOption(io);
                            break;
                        }

                        case WebSocketMethod.VoidPayment:
                        {
                            VoidPaymentRequest request = JsonUtils.Deserialize <VoidPaymentRequest>(payload.ToString());
                            cloverConnector.VoidPayment(request);
                            break;
                        }

                        case WebSocketMethod.ManualRefund:
                        {
                            ManualRefundRequest mrr = JsonUtils.Deserialize <ManualRefundRequest>(payload.ToString());
                            cloverConnector.ManualRefund(mrr);
                            break;
                        }

                        case WebSocketMethod.RefundPayment:
                        {
                            RefundPaymentRequest request = JsonUtils.Deserialize <RefundPaymentRequest>(payload.ToString());
                            cloverConnector.RefundPayment(request);
                            break;
                        }

                        case WebSocketMethod.DisplayPaymentReceiptOptions:
                        {
                            DisplayPaymentReceiptOptionsRequest request = JsonUtils.Deserialize <DisplayPaymentReceiptOptionsRequest>(payload.ToString());
                            cloverConnector.DisplayPaymentReceiptOptions(request);
                            break;
                        }

                        case WebSocketMethod.ShowDisplayOrder:
                        {
                            com.clover.remote.order.DisplayOrder displayOrder = JsonUtils.Deserialize <com.clover.remote.order.DisplayOrder>(payload.ToString());
                            cloverConnector.ShowDisplayOrder(displayOrder);
                            break;
                        }

                        case WebSocketMethod.AcceptSignature:
                        {
                            WSVerifySignatureRequest svr = JsonUtils.Deserialize <WSVerifySignatureRequest>(payload.ToString());
                            cloverConnector.AcceptSignature(svr);
                            break;
                        }

                        case WebSocketMethod.RejectSignature:
                        {
                            WSVerifySignatureRequest svr = JsonUtils.Deserialize <WSVerifySignatureRequest>(payload.ToString());
                            cloverConnector.RejectSignature(svr);
                            break;
                        }

                        case WebSocketMethod.ConfirmPayment:
                        {
                            AcceptPayment acceptPayment = JsonUtils.Deserialize <AcceptPayment>(payload.ToString());
                            cloverConnector.AcceptPayment(acceptPayment.Payment);
                            break;
                        }

                        case WebSocketMethod.RejectPayment:
                        {
                            RejectPayment rp = JsonUtils.Deserialize <RejectPayment>(payload.ToString());
                            cloverConnector.RejectPayment(rp.Payment, rp.Challenge);
                            break;
                        }

                        case WebSocketMethod.VaultCard:
                        {
                            VaultCardMessage vcm = JsonUtils.Deserialize <VaultCardMessage>(payload.ToString());
                            cloverConnector.VaultCard(vcm.cardEntryMethods);
                            break;
                        }

                        case WebSocketMethod.ReadCardData:
                        {
                            ReadCardDataRequest request = JsonUtils.Deserialize <ReadCardDataRequest>(payload.ToString());
                            cloverConnector.ReadCardData(request);
                            break;
                        }

                        case WebSocketMethod.Closeout:
                        {
                            CloseoutRequest cr = new CloseoutRequest();
                            cloverConnector.Closeout(cr);
                            break;
                        }

                        case WebSocketMethod.RetrievePendingPayments:
                        {
                            cloverConnector.RetrievePendingPayments();
                            break;
                        }

                        case WebSocketMethod.StartCustomActivity:
                        {
                            CustomActivityRequest request = JsonUtils.Deserialize <CustomActivityRequest>(payload.ToString());
                            cloverConnector.StartCustomActivity(request);
                            break;
                        }

                        case WebSocketMethod.RetrieveDeviceStatus:
                        {
                            RetrieveDeviceStatusRequest request = JsonUtils.Deserialize <RetrieveDeviceStatusRequest>(payload.ToString());
                            cloverConnector.RetrieveDeviceStatus(request);
                            break;
                        }

                        case WebSocketMethod.SendMessageToActivity:
                        {
                            MessageToActivity mta = JsonUtils.Deserialize <MessageToActivity>(payload.ToString());
                            cloverConnector.SendMessageToActivity(mta);
                            break;
                        }

                        case WebSocketMethod.RetrievePaymentRequest:
                        {
                            RetrievePaymentRequest rpr = JsonUtils.Deserialize <RetrievePaymentRequest>(payload.ToString());
                            cloverConnector.RetrievePayment(rpr);
                            break;
                        }

                        case WebSocketMethod.RetrievePrintersRequest:
                        {
                            RetrievePrintersRequest rpr = JsonUtils.Deserialize <RetrievePrintersRequest>(payload.ToString());
                            cloverConnector.RetrievePrinters(rpr);
                            break;
                        }

                        case WebSocketMethod.PrintJobStatusRequest:
                        {
                            PrintJobStatusRequest req = JsonUtils.Deserialize <PrintJobStatusRequest>(payload.ToString());
                            cloverConnector.RetrievePrintJobStatus(req);
                            break;
                        }

                        case WebSocketMethod.PrintRequest:
                        {
                            PrintRequest64Message request      = JsonUtils.Deserialize <PrintRequest64Message>(payload.ToString());
                            PrintRequest          printRequest = null;
                            if (request.base64strings.Count > 0)
                            {
                                byte[]       imgBytes = Convert.FromBase64String(request.base64strings[0]);
                                MemoryStream ms       = new MemoryStream();
                                ms.Write(imgBytes, 0, imgBytes.Length);
                                Bitmap bp = new Bitmap(ms);
                                ms.Close();
                                printRequest = new PrintRequest(bp, request.externalPrintJobId, request.printDeviceId);
                            }
                            else if (request.imageUrls.Count > 0)
                            {
                                printRequest = new PrintRequest(request.imageUrls[0], request.externalPrintJobId, request.printDeviceId);
                            }
                            else if (request.textLines.Count > 0)
                            {
                                printRequest = new PrintRequest(request.textLines, request.externalPrintJobId, request.printDeviceId);
                            }
                            cloverConnector.Print(printRequest);
                            break;
                        }

                        default:
                        {
                            Console.WriteLine("received unknown websocket method: " + method.ToString() + " in CloverWebSocketService.");
                            break;
                        }
                        }
                    }
                    catch (InvalidOperationException ioe)
                    {
                        Console.WriteLine(ioe.Message);
                        socket.Send("Error Deserializing");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        socket.Send("Error Parsing: " + message);
                    }
                };
            };

            InitializeConnector(parameters);
            server.Start(serverSocket);
        }
Exemple #26
0
 public override Task <Empty> Print(PrintRequest request, ServerCallContext context)
 {
     Console.WriteLine("Print");
     Connector.Print(Translate.From(request));
     return(Task.FromResult(new Empty()));
 }