public void StartConsumer() { try { _consumerConfigurations.RegistryConfiguration(3); using (var connection = _rabbitServer.Connect()) using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "log", durable: false, exclusive: false, autoDelete: false, arguments: null); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var a = _databaseObjects._eps.Get(); if (a.Count == 0) { _databaseObjects._eps.Create(new EpsData { Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), EpsCalculate = 100 }); } else { if (a[0].Date == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) { var eps = a[0].EpsCalculate + 100; _databaseObjects._eps.Update(a[0].Id, new EpsData { Id = a[0].Id, EpsCalculate = eps, Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }); } else { _databaseObjects._eps.Update(a[0].Id, new EpsData { Id = a[0].Id, EpsCalculate = 100, Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }); } } var body = ea.Body.ToArray(); var message = Encoding.UTF8.GetString(body); _logFormat = JsonSerializer.Deserialize <LogFormat>(message); Console.WriteLine(" [x] Received {0}", message); var unregsteredDevice = _databaseObjects._unRegisteredDeviceService.Get().Find(device => device.IPAdress == _logFormat.IPAdress); var registeredDevice = _databaseObjects._registeredDeviceService.Get().Find(device => device.IPAdress == _logFormat.IPAdress); if (registeredDevice != null) { var process = _instances.Where(x => x.Value == registeredDevice.DeviceBrand).Select(x => x.Key).First(); process.Work(_logFormat.Log.Replace("\"", ""), registeredDevice); _logFormat.IPAdress = null; unregsteredDevice = null; registeredDevice = null; _logFormat.Log = null; } else if (unregsteredDevice == null) { _databaseObjects._unRegisteredDeviceService.Create(new UnRegisteredDevice { DeviceName = "unKnown", IPAdress = _logFormat.IPAdress, DeviceDescription = "Discovered Device", isActive = true }); _logFormat.IPAdress = null; unregsteredDevice = null; registeredDevice = null; _logFormat.Log = null; } }; channel.BasicConsume(queue: "log", autoAck: true, consumer: consumer); while (true) { Thread.Sleep(10000); } } } catch (Exception) { Console.WriteLine("Bağlantı Kurulamadı"); } }