public bool SendToQueueOutput(OutputQueueMessage outputQueueMessage)
        {
            string json = JsonConvert.SerializeObject(outputQueueMessage, new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            return(_rabbitMQService.SendMessage(json, _rabbitMqSettings.OutputQueueName));
        }
        private async Task Consumer_Received(object sender, BasicDeliverEventArgs ea)
        {
            var body               = ea.Body;
            var message            = Encoding.UTF8.GetString(body);
            var outputQueueMessage = new OutputQueueMessage();

            try
            {
                CreateEventDto dto = JsonConvert.DeserializeObject <CreateEventDto>(message);
                outputQueueMessage.Md5 = dto.Md5;
                using (var scope = _serviceProvider.CreateScope())
                {
                    var eventService = scope.ServiceProvider.GetRequiredService <IEventService>();
                    await eventService.CreateAsync(dto);
                }
                outputQueueMessage.EventStatus = EventStatusConstants.SUCCESSFULLY_RECEIVED;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                outputQueueMessage.EventStatus = EventStatusConstants.UNSUCCESSFULLY_RECEIVED;
            }

            try
            {
                var sended = true;
                using (var scope = _serviceProvider.CreateScope())
                {
                    var queueSenderService = scope.ServiceProvider.GetRequiredService <IQueueSenderService>();
                    sended = queueSenderService.SendToQueueOutput(outputQueueMessage);
                }

                if (outputQueueMessage.EventStatus == EventStatusConstants.SUCCESSFULLY_RECEIVED)
                {
                    using (var scope = _serviceProvider.CreateScope())
                    {
                        var eventService = scope.ServiceProvider.GetRequiredService <IEventService>();
                        await eventService.UpdateSendedToOutputAsync(outputQueueMessage.Md5, sended);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }