protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            stoppingToken.ThrowIfCancellationRequested();

            var consumer = new AsyncEventingBasicConsumer(_channel);

            consumer.Received += async(bc, ea) =>
            {
                _logger.LogInformation($"Auditing msg# '{ea.BasicProperties.MessageId}'.");

                try
                {
                    await _messagesService.Create(ParseMessage(ea));

                    _channel.BasicAck(ea.DeliveryTag, false);
                }
                catch (AlreadyClosedException)
                {
                    _logger.LogInformation("RabbitMQ is closed!");
                }
                catch (Exception e)
                {
                    _logger.LogError(default, e, e.Message);
Example #2
0
        public async Task <ActionResult> Create(int userId, MessageCreationRequest request)
        {
            var message = await _serv.Create(userId, request);

            return(CreatedAtRoute("GetMessage", new { userId, id = message.Id }, message));
        }
        public ActionResult <Message> Create([FromBody] MessagesCreateBindingModel message)
        {
            var addedMessage = service.Create(message.Content, message.Username).GetAwaiter().GetResult();

            return(addedMessage);
        }