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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        public void ClientConstructor()
        {
            var http   = new HttpClient();
            var client = new ProactiveEventsClient(http);

            Assert.Equal(http, client.Client);
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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);
        }