public async Task SendMessageAsync(SubscriptionDto subscriptionDto) { var httpClient = _httpClientFactory.CreateClient(); var request = new HttpRequestMessage(HttpMethod.Post, subscriptionDto.URI); request.Headers.Accept.Clear(); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); request.Content = new StringContent(JsonSerializer.Serialize(subscriptionDto)); request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); try { using (var response = await httpClient.SendAsync(request)) { Console.WriteLine("Successful..."); response.EnsureSuccessStatusCode(); } } catch (Exception ex) { Console.WriteLine($"Unsuccessful {ex.Message}"); } }
public async Task StartAsync(CancellationToken cancellationToken) { Console.WriteLine("Starting up...."); _consumer.Subscribe(Program.TopicName); while (!cancellationToken.IsCancellationRequested) { var consumeResult = _consumer.Consume(cancellationToken); var message = consumeResult.Message.Value; Console.WriteLine($"Received Message : {message}"); // Get Subscription List from DB using (var currentSession = CreateSessionFactory().OpenSession()) { Console.WriteLine("Getting Subscriptions"); try { _subscriptions = currentSession.Query <Subscription>().ToList(); if (_subscriptions == null) { Console.WriteLine("Error! No subscriptions found...."); } } catch (Exception ex) { Console.WriteLine(ex.Message); Debug.WriteLine(ex); } } foreach (var subscription in _subscriptions) { Console.WriteLine("Sending Message"); var subscriptionDto = new SubscriptionDto { URI = subscription.URI, TopicName = subscription.TopicName, Message = message }; await _sendNotification.SendMessageAsync(subscriptionDto); } } _consumer.Close(); }