static void Main(string[] args) { var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>(); optionsBuilder.UseSqlServer("Data Source=DECAIREPC;Initial Catalog=DemoData;Integrated Security=True"); _databaseContext = new DatabaseContext(optionsBuilder.Options); _soldierDatabaseManager = new SoldierDatabaseManager(_databaseContext, _distinctQueue); var thread = new Thread(() => { _soldierDatabaseManager.QueueMonitor(); /* * var data = FindOneSoldier(soldier.Id); * * if (data != null) * { * data.X = soldier.X; * data.Y = soldier.Y; * _databaseContext.SaveChanges(); * } */ }); thread.Start(); var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "SoldierQueue", durable: true, exclusive: false, autoDelete: false, arguments: null); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var body = ea.Body; var soldier = JsonConvert.DeserializeObject <Soldier>(Encoding.UTF8.GetString(body)); _distinctQueue.Enqueue(soldier); //Console.WriteLine(" [x] Received {0}", soldier.X + "," + soldier.Y); //_logger.Debug($"{soldier.Id}"); }; channel.BasicConsume(queue: "SoldierQueue", autoAck: true, consumer: consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } }
public void FindOneSoldierNoSoldier() { ResetRecords(); var queue = new DistinctQueue(); var soldierDatabaseManager = new SoldierDatabaseManager(_databaseContext, queue); Assert.Null(soldierDatabaseManager.FindOneSoldier(Guid.NewGuid())); }
public void FindOneSoldierOneMatch() { ResetRecords(); var soldier = new SoldierRecord { X = 5, Y = 5 }; _databaseContext.SoldierRecords.Add(soldier); _databaseContext.SaveChanges(); var queue = new DistinctQueue(); var soldierDatabaseManager = new SoldierDatabaseManager(_databaseContext, queue); Assert.NotNull(soldierDatabaseManager.FindOneSoldier(soldier.Id)); }