Beispiel #1
0
        public async Task MakeActionByPayload(Postback postback, long senderId)
        {
            var state = StateHelper.GetState(postback.Payload);

            switch (state)
            {
            case State.START:
                await _messagingService.GetStarted(senderId);

                break;


            case State.DEPARTURE_TO:
                await _messagingService.HandleDepartureTo(senderId);

                break;

            case State.DEPARTURE_TO_COUNTRIES:
                await _messagingService.HandleDepartureToCountries(senderId, postback.Title);

                break;

            case State.DEPARTURE_TO_CITIES:
                await _messagingService.HandleDepartureToCities(senderId, postback.Title);

                break;
            }
        }
        public void FindPostbackTest()
        {
            Postback postback         = transaction.Postbacks.FindAll(new Postback()).FirstOrDefault();
            Postback postbackReturned = transaction.Postbacks.Find(postback.Id);

            Assert.IsNotNull(postbackReturned.Id);
        }
 public DialogConfiguration(HtmlHelper htmlHelper, string target, RouteValueDictionary url, Postback postback)
 {
     _postback = postback;
     _url = url;
     _htmlHelper = htmlHelper;
     Target = target;
 }
        public void RedeliverPostbackTest()
        {
            Postback postback = transaction.Postbacks.FindAll(new Postback()).FirstOrDefault();

            postback.Redeliver();

            Assert.IsTrue(postback.Status == PostbackStatus.PendingRetry);
        }
 private async Task ProcessPostBack(string userId, string username, Postback postback)
 {
     if (postback.Payload == _quickReplyPayload_IsNotUserMsg)
     {
         await _Bot.SendApi.SendTextAsync(userId, $"Sorry about that {username}, try sending something else.");
     }
     else if (postback.Payload == _quickReplyPayload_IsUserMsg)
     {
         await _Bot.SendApi.SendTextAsync(userId, $"Yay! We got it.");
     }
 }
Beispiel #6
0
        private void _executePostback()
        {
            var postback = new Postback
            {
                Currency          = "USD",
                PaymentCode       = "001122",
                PaymentDate       = DateTime.UtcNow,
                PaymentSuccessful = true,
                Amount            = double.Parse("100"),
                TransactionId     = oauth_verifier
            };

            PostbackApi.Create(postback);
        }
Beispiel #7
0
 public PostbackEvent(WebhookEventSource source, long timestamp, string replyToken, Postback postback, string mode, string webhookEventId, DeliveryContext deliveryContext)
     : base(WebhookEventType.Postback, source, timestamp, replyToken, mode, webhookEventId, deliveryContext)
 {
     Postback = postback;
 }
 public PostbackEvent(WebhookEventSource source, long timestamp, string replyToken, Postback postback, string mode)
     : base(WebhookEventType.Postback, source, timestamp, replyToken, mode)
 {
     Postback = postback;
 }
        internal static WebhookEvent CreateFrom(dynamic dynamicObject)
        {
            if (dynamicObject == null)
            {
                throw new ArgumentNullException(nameof(dynamicObject));
            }

            var eventSource = WebhookEventSource.CreateFrom(dynamicObject?.source);

            if (eventSource == null)
            {
                return(null);
            }
            if (!Enum.TryParse((string)dynamicObject.type, true, out WebhookEventType eventType))
            {
                return(null);
            }

            switch (eventType)
            {
            case WebhookEventType.Message:
                EventMessage eventMessage = EventMessage.CreateFrom(dynamicObject);
                if (eventMessage == null)
                {
                    return(null);
                }
                return(new MessageEvent(eventSource, (long)dynamicObject.timestamp, eventMessage, (string)dynamicObject.replyToken));

            case WebhookEventType.Follow:
                return(new FollowEvent(eventSource, (long)dynamicObject.timestamp, (string)dynamicObject.replyToken));

            case WebhookEventType.Unfollow:
                return(new UnfollowEvent(eventSource, (long)dynamicObject.timestamp));

            case WebhookEventType.Join:
                return(new JoinEvent(eventSource, (long)dynamicObject.timestamp, (string)dynamicObject.replyToken));

            case WebhookEventType.Leave:
                return(new LeaveEvent(eventSource, (long)dynamicObject.timestamp));

            case WebhookEventType.Postback:
                var postback = new Postback(
                    (string)dynamicObject.postback?.data,
                    (string)dynamicObject.postback?.@params?.date,
                    (string)dynamicObject.postback?.@params?.time,
                    (string)dynamicObject.postback?.@params?.datetime);
                return(new PostbackEvent(eventSource, (long)dynamicObject.timestamp, (string)dynamicObject.replyToken, postback));

            case WebhookEventType.Beacon:
                if (!Enum.TryParse((string)dynamicObject.beacon.type, true, out BeaconType beaconType))
                {
                    return(null);
                }
                return(new BeaconEvent(eventSource, (long)dynamicObject.timestamp, (string)dynamicObject.replyToken,
                                       (string)dynamicObject.beacon.hwid, beaconType, (string)dynamicObject.beacon.dm));

            case WebhookEventType.AccountLink:
                var link = new Link((string)dynamicObject.link?.result, (string)dynamicObject.link?.nonce);
                return(new AccountLinkEvent(eventSource, (long)dynamicObject.timestamp, (string)dynamicObject.replyToken, link));

            case WebhookEventType.Things:
                var thingsType = (ThingsType)Enum.Parse(typeof(ThingsType), (string)dynamicObject.things?.type, true);
                var things     = new Things((string)dynamicObject.things?.deviceId, thingsType);
                return(DeviceEvent.Create(eventSource, (long)dynamicObject.timestamp, things));

            case WebhookEventType.MemberJoined:

                var joinedMembers = new List <WebhookEventSource>();
                foreach (var member in dynamicObject.joined.members)
                {
                    joinedMembers.Add(WebhookEventSource.CreateFrom(member));
                }
                return(new MemberJoinEvent(eventSource, (long)dynamicObject.timestamp, (string)dynamicObject.replyToken, joinedMembers));

            case WebhookEventType.MemberLeft:
                var leftMembers = new List <WebhookEventSource>();
                foreach (var member in dynamicObject.left.members)
                {
                    leftMembers.Add(WebhookEventSource.CreateFrom(member));
                }
                return(new MemberLeaveEvent(eventSource, (long)dynamicObject.timestamp, leftMembers));

            default:
                return(null);
            }
        }