public void Register() { //Setup the connection with the message broker ////////////////// TextWriter oldOut = Console.Out; ///////////////// ConnectionFactory factory = new ConnectionFactory(); IProtocol protocol = Protocols.AMQP_0_9_1; factory.VirtualHost = virtualHost; factory.UserName = userName; factory.Password = password; factory.HostName = hostName; factory.Port = port; factory.Protocol = protocol; IConnection conn = factory.CreateConnection(); IModel channel = conn.CreateModel(); uint messageCount = GetMessageCount(factory, queueName); EntryService.CreateGeneralAuditoria(Environment.MachineName, Environment.UserName, messageCount); if (messageCount == 0) { EntryService.CreateEntryAuditoria(Environment.MachineName, Environment.UserName, new Entries()); Environment.Exit(0); } else { int messageCountIndex = 0; var consumer = new EventingBasicConsumer(channel); consumer.Received += (ch, ea) => { var body = ea.Body; string message = Encoding.UTF8.GetString(body); EntryDTO result = JsonConvert.DeserializeObject <EntryDTO>(message); EntryService.CreateEntryAuditoria(Environment.MachineName, Environment.UserName, result.entries); if (EntryService.CreateNotaEntry(result.entries)) { channel.BasicAck(ea.DeliveryTag, false); } messageCountIndex++; }; if (messageCountIndex == messageCount) { Environment.Exit(0); } String consumerTag = channel.BasicConsume(queueName, false, consumer); } }