Ejemplo n.º 1
0
        public void OnMessageFromActivity(MessageFromActivity message)
        {
            OnMessageFromActivityMessage mfaMessage = new OnMessageFromActivityMessage();

            mfaMessage.payload = message;
            Send(Serialize(mfaMessage));
        }
 public void MessageFromActivity(HttpListenerContext context)
 {
     try
     {
         MessageFromActivity mfa = ParseResponse <MessageFromActivity>(context);
         connectorListener.ForEach(listener => listener.OnMessageFromActivity(mfa));
     }
     catch (Exception e)
     {
         context.Response.StatusCode        = 400;
         context.Response.StatusDescription = e.Message;
         SendTextResponse(context, "error processing request");
     }
 }
Ejemplo n.º 3
0
 public void OnMessageFromActivity(MessageFromActivity message)
 {
     /*PayloadMessage payloadMessage = JsonConvert.DeserializeObject<PayloadMessage>(message.Payload);
      * switch (payloadMessage.messageType)
      * {
      *  case MessageType.REQUEST_RATINGS:
      *      handleRequestRatings();
      *      break;
      *  case MessageType.RATINGS:
      *      handleRatings(message.Payload);
      *      break;
      *  case MessageType.PHONE_NUMBER:
      *      handleCustomerLookup(message.Payload);
      *      break;
      *  case MessageType.CONVERSATION_RESPONSE:
      *      handleJokeResponse(message.Payload);
      *      break;
      *  default:
      *      break;
      * }*/
 }
Ejemplo n.º 4
0
        /// <summary>
        /// The LOYALTY_SAMPLE_ACTIVITY sends messages using the
        /// CloverConnectorListener.OnMessageFromActivity() Custom Activity messaging system
        /// and the Clover Example POS routes that message here for handling
        /// </summary>
        public void OnMessageFromActivity(MessageFromActivity message)
        {
            Log($"\n \u2022 Message From Activity received from the loyalty sample activity");
            Log($"      activity: {message.Action}");
            Log($"      payload: {message.Payload.Replace("\n", "\n          ")}");

            // Route message as appropriate - sample messages don't have an action, so we'll detect by payload variables
            if (message.Payload.Contains("customerUUID") && message.Payload.Contains("offerId"))
            {
                if (JsonConvert.DeserializeObject(message.Payload) is JObject offer)
                {
                    Log($"\n   Offer '{offer["offerId"]}' accepted by customer '{offer["customerUUID"]}'");
                }
            }
            else if (message.Payload.Contains("LoyaltyRegistrationConfigs") || message.Payload.Contains("CustomerInfo"))
            {
                // The custom activity sends the registered configs and customer info upon request
            }
            else
            {
                Log("  ** unrecognized message ** ");
            }
        }
Ejemplo n.º 5
0
 public void OnMessageFromActivity(MessageFromActivity response) => Event?.Invoke(this, EventFrom("MessageFromActivity", response));
Ejemplo n.º 6
0
 public virtual void OnMessageFromActivity(MessageFromActivity message)
 {
     Send("/MessageFromActivity", Serialize(message));
 }
Ejemplo n.º 7
0
        private void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            // do the parsing of the message, targeted for the callback listener
            JObject jsonObj = null;

            try
            {
                jsonObj = (JObject)JsonConvert.DeserializeObject(e.Message);
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc.Message + " => " + e.Message);
                listeners.ForEach(listener => listener.OnDeviceError(new CloverDeviceErrorEvent(CloverDeviceErrorEvent.CloverDeviceErrorType.EXCEPTION, 0, null, exc.Message + " => " + e.Message)));
                return;
            }

            JToken method = jsonObj.GetValue(ServicePayloadConstants.PROP_METHOD);

            if (method == null)
            {
                listeners.ForEach(listener => listener.OnDeviceError(new CloverDeviceErrorEvent(CloverDeviceErrorEvent.CloverDeviceErrorType.VALIDATION_ERROR, 0, null, "Invalid message: " + e.Message)));
                return;
            }
            JObject         payload = (JObject)jsonObj.GetValue(ServicePayloadConstants.PROP_PAYLOAD);
            WebSocketMethod wsm     = (WebSocketMethod)Enum.Parse(typeof(WebSocketMethod), method.ToString());

            try
            {
                switch (wsm)
                {
                case WebSocketMethod.DeviceActivityStart:
                {
                    CloverDeviceEvent deviceEvent = JsonUtils.Deserialize <CloverDeviceEvent>(payload.ToString());
                    listeners.ForEach(listener => listener.OnDeviceActivityStart(deviceEvent));
                    break;
                }

                case WebSocketMethod.DeviceActivityEnd:
                {
                    CloverDeviceEvent deviceEvent = JsonUtils.Deserialize <CloverDeviceEvent>(payload.ToString());
                    listeners.ForEach(listener => listener.OnDeviceActivityEnd(deviceEvent));
                    break;
                }

                case WebSocketMethod.DeviceError:
                {
                    CloverDeviceErrorEvent deviceErrorEvent = JsonUtils.Deserialize <CloverDeviceErrorEvent>(payload.ToString());
                    listeners.ForEach(listener => listener.OnDeviceError(deviceErrorEvent));
                    break;
                }

                case WebSocketMethod.DeviceConnected:
                {
                    listeners.ForEach(listener => listener.OnDeviceConnected());
                    break;
                }

                case WebSocketMethod.DeviceDisconnected:
                {
                    listeners.ForEach(listener => listener.OnDeviceDisconnected());
                    break;
                }

                case WebSocketMethod.DeviceReady:
                {
                    MerchantInfo merchantInfo = JsonUtils.Deserialize <MerchantInfo>(payload.ToString());
                    listeners.ForEach(listener => listener.OnDeviceReady(merchantInfo));
                    break;
                }

                case WebSocketMethod.VerifySignatureRequest:
                {
                    VerifySignatureRequest        svr     = JsonUtils.Deserialize <VerifySignatureRequest>(payload.ToString());
                    WebSocketSigVerRequestHandler handler = new WebSocketSigVerRequestHandler(this, svr);
                    listeners.ForEach(listener => listener.OnVerifySignatureRequest(handler));
                    break;
                }

                case WebSocketMethod.SaleResponse:
                {
                    SaleResponse sr = JsonUtils.Deserialize <SaleResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnSaleResponse(sr));
                    break;
                }

                case WebSocketMethod.PreAuthResponse:
                {
                    PreAuthResponse pr = JsonUtils.Deserialize <PreAuthResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPreAuthResponse(pr));
                    break;
                }

                case WebSocketMethod.AuthResponse:
                {
                    AuthResponse ar = JsonUtils.Deserialize <AuthResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnAuthResponse(ar));
                    break;
                }

                case WebSocketMethod.CapturePreAuthResponse:
                {
                    CapturePreAuthResponse ar = JsonUtils.Deserialize <CapturePreAuthResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnCapturePreAuthResponse(ar));
                    break;
                }

                case WebSocketMethod.VoidPaymentRefundResponse:
                {
                    VoidPaymentRefundResponse response = JsonUtils.Deserialize <VoidPaymentRefundResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnVoidPaymentRefundResponse(response));
                    break;
                }

                case WebSocketMethod.RefundPaymentResponse:
                {
                    RefundPaymentResponse sr = JsonUtils.Deserialize <RefundPaymentResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnRefundPaymentResponse(sr));
                    break;
                }

                case WebSocketMethod.VoidPaymentResponse:
                {
                    VoidPaymentResponse sr = JsonUtils.Deserialize <VoidPaymentResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnVoidPaymentResponse(sr));
                    break;
                }

                case WebSocketMethod.ManualRefundResponse:
                {
                    ManualRefundResponse sr = JsonUtils.Deserialize <ManualRefundResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnManualRefundResponse(sr));
                    break;
                }

                case WebSocketMethod.TipAdjustAuthResponse:
                {
                    TipAdjustAuthResponse taar = JsonUtils.Deserialize <TipAdjustAuthResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnTipAdjustAuthResponse(taar));
                    break;
                }

                case WebSocketMethod.VaultCardResponse:
                {
                    VaultCardResponse vcr = JsonUtils.Deserialize <VaultCardResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnVaultCardResponse(vcr));
                    break;
                }

                case WebSocketMethod.ReadCardDataResponse:
                {
                    ReadCardDataResponse rcdr = JsonUtils.Deserialize <ReadCardDataResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnReadCardDataResponse(rcdr));
                    break;
                }

                case WebSocketMethod.CloseoutResponse:
                {
                    CloseoutResponse cr = JsonUtils.Deserialize <CloseoutResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnCloseoutResponse(cr));
                    break;
                }

                case WebSocketMethod.ConfirmPaymentRequest:
                {
                    ConfirmPaymentRequest cpr = JsonUtils.Deserialize <ConfirmPaymentRequest>(payload.ToString());
                    listeners.ForEach(listener => listener.OnConfirmPaymentRequest(cpr));
                    break;
                }

                case WebSocketMethod.RetrievePendingPaymentsResponse:
                {
                    RetrievePendingPaymentsResponse rppr = JsonUtils.Deserialize <RetrievePendingPaymentsResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnRetrievePendingPaymentsResponse(rppr));
                    break;
                }

                case WebSocketMethod.PrintManualRefundDeclinedReceipt:
                {
                    PrintManualRefundDeclineReceiptMessage pmrdrm = JsonUtils.Deserialize <PrintManualRefundDeclineReceiptMessage>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintManualRefundDeclineReceipt(pmrdrm));
                    break;
                }

                case WebSocketMethod.PrintManualRefundReceipt:
                {
                    PrintManualRefundReceiptMessage pmrrm = JsonUtils.Deserialize <PrintManualRefundReceiptMessage>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintManualRefundReceipt(pmrrm));
                    break;
                }

                case WebSocketMethod.PrintPaymentDeclinedReceipt:
                {
                    PrintPaymentDeclineReceiptMessage ppdrm = JsonUtils.Deserialize <PrintPaymentDeclineReceiptMessage>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintPaymentDeclineReceipt(ppdrm));
                    break;
                }

                case WebSocketMethod.PrintPaymentMerchantCopyReceipt:
                {
                    PrintPaymentMerchantCopyReceiptMessage ppmcrm = JsonUtils.Deserialize <PrintPaymentMerchantCopyReceiptMessage>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintPaymentMerchantCopyReceipt(ppmcrm));
                    break;
                }

                case WebSocketMethod.PrintPaymentReceipt:
                {
                    PrintPaymentReceiptMessage pprm = JsonUtils.Deserialize <PrintPaymentReceiptMessage>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintPaymentReceipt(pprm));
                    break;
                }

                case WebSocketMethod.PrintPaymentRefundReceipt:
                {
                    PrintRefundPaymentReceiptMessage prprm = JsonUtils.Deserialize <PrintRefundPaymentReceiptMessage>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintRefundPaymentReceipt(prprm));
                    break;
                }

                case WebSocketMethod.CustomActivityResponse:
                {
                    CustomActivityResponse car = JsonUtils.Deserialize <CustomActivityResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnCustomActivityResponse(car));
                    break;
                }

                case WebSocketMethod.MessageFromActivity:
                {
                    MessageFromActivity mta = JsonUtils.Deserialize <MessageFromActivity>(payload.ToString());
                    listeners.ForEach(listener => listener.OnMessageFromActivity(mta));
                    break;
                }

                case WebSocketMethod.RetrieveDeviceStatusResponse:
                {
                    RetrieveDeviceStatusResponse rdsr = JsonUtils.Deserialize <RetrieveDeviceStatusResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnRetrieveDeviceStatusResponse(rdsr));
                    break;
                }

                case WebSocketMethod.ResetDeviceResponse:
                {
                    ResetDeviceResponse rdr = JsonUtils.Deserialize <ResetDeviceResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnResetDeviceResponse(rdr));
                    break;
                }

                case WebSocketMethod.RetrievePaymentResponse:
                {
                    RetrievePaymentResponse rpr = JsonUtils.Deserialize <RetrievePaymentResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnRetrievePaymentResponse(rpr));
                    break;
                }

                case WebSocketMethod.RetrievePrintersResponse:
                {
                    RetrievePrintersResponse rpr = JsonUtils.Deserialize <RetrievePrintersResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnRetrievePrintersResponse(rpr));
                    break;
                }

                case WebSocketMethod.PrintJobStatusRequest:
                {
                    PrintJobStatusRequest pjsr = JsonUtils.Deserialize <PrintJobStatusRequest>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintJobStatusRequest(pjsr));
                    break;
                }

                case WebSocketMethod.PrintJobStatusResponse:
                {
                    PrintJobStatusResponse pjsr = JsonUtils.Deserialize <PrintJobStatusResponse>(payload.ToString());
                    listeners.ForEach(listener => listener.OnPrintJobStatusResponse(pjsr));
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 8
0
 public void OnMessageFromActivity(MessageFromActivity response)
 {
     Program.WriteLine(MethodBase.GetCurrentMethod().Name);
 }
Ejemplo n.º 9
0
 public void OnMessageFromActivity(MessageFromActivity response) => MessageFromActivity?.Invoke(this, response);