예제 #1
0
        public async Task <CmdResponseBO <DequeueMessagesCmd> > Handle(DequeueMessagesCmd request, CancellationToken cancellationToken)
        {
            var queuedMessages = _cachingService.QueuedMessages.Where(i => i.Recipient == request.Client.Guid).ToList();

            if (queuedMessages.Any())
            {
                Console.WriteLine($"Dequeuing items from cache..");
                foreach (var message in queuedMessages)
                {
                    var entity = new PushMessageCmd()
                    {
                        Context      = request.Context,
                        MessageQueue = message
                    };
                    await _mediator.Send(entity).ConfigureAwait(false);

                    _cachingService.QueuedMessages.Remove(message);
                }
                Console.WriteLine($"Dequeued {queuedMessages.Count} item(s) from cache");
            }


            return(new()
            {
                HttpStatusCode = HttpStatusCode.Accepted
            });
        }
예제 #2
0
        public async Task <HttpStatusCode> Push(StreamFlowMessageBO request)
        {
            var entity = new PushMessageCmd()
            {
                Context      = Context,
                MessageQueue = request
            };
            var response = await _mediator.Send(entity).ConfigureAwait(false);

            return(response.HttpStatusCode);
        }