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 void TokenConstructor() { var client = new ProactiveEventsClient(ProactiveEventsClient.EuropeEndpoint, "token"); Assert.Equal(ProactiveEventsClient.EuropeEndpoint + ProactiveEventsClient.DevelopmentPathExtension, client.Client.BaseAddress.ToString()); Assert.Equal("token", client.Client.DefaultRequestHeaders.Authorization.Parameter); }
public void ClientConstructor() { var http = new HttpClient(); var client = new ProactiveEventsClient(http); Assert.Equal(http, client.Client); }
public async Task ThrowsExceptionWithoutReference() { var client = new ProactiveEventsClient(ProactiveEventsClient.EuropeEndpoint, "token"); var alert = new WeatherAlert(WeatherAlertType.Tornado); var request = new BroadcastEventRequest(alert) { ExpiryTime = DateTimeOffset.Now.AddMinutes(5), TimeStamp = DateTimeOffset.Now }; await Assert.ThrowsAsync <ArgumentNullException>(() => client.Send(request)); }
public async Task SendsExpectedRequest() { var http = new HttpClient(new ActionHandler(req => { Assert.Equal(HttpMethod.Post, req.Method); Assert.Equal("application/json", req.Content.Headers.ContentType.MediaType); return(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK))); })); var client = new ProactiveEventsClient(ProactiveEventsClient.EuropeEndpoint, "token", http); var alert = new WeatherAlert(WeatherAlertType.Tornado); var request = new BroadcastEventRequest(alert) { ReferenceId = "broadcastTest", ExpiryTime = DateTimeOffset.Now.AddMinutes(5), TimeStamp = DateTimeOffset.Now }; await client.Send(request); }