public ServerBase[] GetServers() { using (var dc = new Arma3BeServiceContext()) { return dc.ServerInfo.OrderBy(x => x.Name).ToArray().Select(x => x.Map<ServerBase>()).ToArray(); } }
public ServerBase AddOrUpdateServer(Server server) { if (server.Id == Guid.Empty) { server.Id = Guid.NewGuid(); using (var dc = new Arma3BeServiceContext()) { var res = dc.ServerInfo.Add(server.Map<ServerInfo>()).Map<ServerBase>(); dc.SaveChanges(); return res; } } else { using (var dc = new Arma3BeServiceContext()) { var s = dc.ServerInfo.Single(x => x.Id == server.Id); s.Host = server.Host; s.Name = server.Name; s.Password = server.Password; s.Active = server.Active; s.Port = server.Port; dc.SaveChanges(); return s.Map<ServerBase>(); } } }
public void Run() { using (var dc = new Arma3BeServiceContext()) { foreach (var serverInfo in dc.ServerInfo) { var model = new ServerWorker(serverInfo, _log); var thread = new Thread(x => { model.Run(); }); _models.Add(serverInfo.Id, new Tuple<Thread, ServerWorker>(thread, model)); thread.Start(); } } }
static Arma3BeServiceContext() { Database.SetInitializer(new DbInitializer()); using (var db = new Arma3BeServiceContext()) db.Database.Initialize(false); }