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; } })); }
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); }
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"); }
public override ValueTask <UserEventResponse> OnMessageReceivedAsync(UserEventRequest request, CancellationToken cancellationToken) { return(base.OnMessageReceivedAsync(request, cancellationToken)); }