public override ValueTask <UserEventResponse> OnMessageReceivedAsync(UserEventRequest request, CancellationToken cancellationToken)
            {
                Assert.NotNull(request);
                Assert.AreEqual("my-host.webpubsub.net", request.ConnectionContext.Origin);
                var response = new UserEventResponse("ACK");

                // simple tests.
                switch (request.Data.ToString())
                {
                case "1": response.SetState("counter", 10);
                    break;

                case "2": response.SetState("new", "new");
                    break;

                case "3":
                    response.ClearStates();
                    break;

                case "4":
                    response.ClearStates();
                    response.SetState("new1", "new1");
                    break;

                default:
                    break;
                }
                ;
                return(new ValueTask <UserEventResponse>(response));
            }
        public async Task <Result> SendUserNotification(string userId, string message)
        {
            var messaging = new AccessTokenClient(AccessTokenClient.ApiDomainBaseAddress);
            var token     = (await messaging.Send(configuration.AldoClientId, configuration.AldoClientSecret)).Token;

            var deployEvent = new MessageReminder(
                new MessageReminderState(MessageReminderStatus.Unread, MessageReminderFreshness.New),
                new MessageReminderGroup(message, 1, MessageReminderUrgency.Urgent));

            var userReq = new UserEventRequest(userId, deployEvent)
            {
                ReferenceId = Guid.NewGuid().ToString(),
                ExpiryTime  = DateTimeExtensions.ItaNow().AddMinutes(6),
                TimeStamp   = DateTimeExtensions.ItaNow()
            };

            var client = new ProactiveEventsClient(ProactiveEventsClient.EuropeEndpoint, token, true);

            var result = await client.Send(userReq);

            if (result.IsSuccessStatusCode)
            {
                return(Result.Ok());
            }

            var errorContent = await result.Content.ReadAsStringAsync();

            var error = $"{result.ReasonPhrase}\n\r{errorContent}";

            return(Result.Fail(error));
        }
        public async Task HandleRequest()
        {
            await RequestProcessHelper.ProcessRequest("AlexaRequestHandler.HandleRequest()", "Alexa Request", (System.Func <Task>)(async() =>
            {
                string subRequestType = Core.Request.GetSubRequestType();

                switch (subRequestType)
                {
                // handle user gui event request
                case AlexaRequestType.UserEventRequest:
                    UserEventRequest userEventRequest = Core.Request.GetRequest().Request as UserEventRequest;

                    string title = userEventRequest.Arguments[0] as string;
                    string url   = userEventRequest.Arguments[1] as string;

                    Core.Logger.Write("AlexaRequestHandler.HandleRequest()", $"Media file title: {title}");
                    Core.Logger.Write("AlexaRequestHandler.HandleRequest()", $"Media file source url: {url}");
                    Core.State.UserState.Stage = Stage.Video;
                    Core.Response.AddVideoApp(url, title, title);
                    break;

                // handle unknown intent
                default:
                    Core.State.UserState.Stage = Stage.Menu;

                    Core.Response.SetSpeech(false, false, (string)SpeechTemplate.NoUnderstand);
                    break;
                }
            }));
        }
Exemple #4
0
 public static void Run(
     ILogger logger,
     [WebPubSubTrigger("hub", WebPubSubEventType.User, "message")] UserEventRequest request,
     string data,
     WebPubSubDataType dataType)
 {
     logger.LogInformation("Request from: {user}, data: {data}, dataType: {dataType}",
                           request.ConnectionContext.UserId, data, dataType);
 }
        public void TestUserEventRequestSerialize()
        {
            var connectionContext = new WebPubSubConnectionContext(
                WebPubSubEventType.System,
                null, null, "0f9c97a2f0bf4706afe87a14e0797b11",
                signature: "sha256=7767effcb3946f3e1de039df4b986ef02c110b1469d02c0a06f41b3b727ab561",
                origin: TestUri.Host);

            var request = new UserEventRequest(connectionContext, BinaryData.FromString("Hello World"), WebPubSubDataType.Text);

            var serialized = JsonSerializer.Serialize(request);
        }
Exemple #6
0
        public void UserEventGeneratesCorrectJson()
        {
            var userEvent = new UserEventRequest("userId")
            {
                TimeStamp   = DateTimeOffset.Parse("2018-06-18T22:10:01.00Z"),
                ReferenceId = "unique-id-of-this-instance",
                ExpiryTime  = DateTimeOffset.Parse("2018-06-19T22:10:01.00Z"),
                Event       = new DummyEvent(new Dictionary <string, List <LocaleAttribute> >
                {
                    { "testy", new List <LocaleAttribute>(new [] { new LocaleAttribute("en-GB", "thing"), }) }
                })
            };

            Assert.Equal("userId", userEvent.Audience.Payload.User);
            Assert.True(Utility.CompareJson(userEvent, "Individual.json", "timestamp", "expiryTime"));
        }
 public static UserEventResponse Run(
     [WebPubSubTrigger("hub", WebPubSubEventType.User, "message")] UserEventRequest request)
 {
     return(request.CreateResponse(BinaryData.FromString("ack"), WebPubSubDataType.Text));
 }
 // Test error return correct 500
 public override ValueTask <UserEventResponse> OnMessageReceivedAsync(UserEventRequest request, CancellationToken cancellationToken)
 {
     throw new Exception("Test Exception");
 }
Exemple #9
0
 public override ValueTask <UserEventResponse> OnMessageReceivedAsync(UserEventRequest request, CancellationToken cancellationToken)
 {
     return(base.OnMessageReceivedAsync(request, cancellationToken));
 }