private void RefreshPlayers() { if (this.InvokeRequired) { this.Invoke(new MethodInvoker(this.RefreshPlayers)); } else { _playersDataSet.Player.Clear(); Data.SQLite.DataStore ds = Data.SQLite.DataStore.Instance; using (ds.Lock()) { List <Data.Player> results = ds.GetPlayers(); _playersDataSet.Player.BeginLoadData(); foreach (Data.Player p in results) { Players.PlayerRow row = _playersDataSet.Player.NewPlayerRow(); row.Id = p.Id; row.Name = p.Name; row.HandCount = ds.GetHandPlayerCount(p.Id); row.DateAdded = p.DateAdded.UtcTime.ToLocalTime(); _playersDataSet.Player.AddPlayerRow(row); } _playersDataSet.Player.EndLoadData(); } } }
public bool Save(SQLite.DataStore store, System.Data.SQLite.SQLiteConnection connection) { if (this.Saved == true) { return(false); } if (connection.State != ConnectionState.Open) { connection.Open(); } Hand existing = store.GetHand(this.SiteId, this.HandNumber); if (existing == null) { this.Id = store.InsertHand(this.SiteId, this.HandNumber, connection); foreach (HandPlayer player in this.HandPlayers) { player.HandId = this.Id; if (player.Saved == false) { player.Save(store, connection); } } } else { Logger.Error("Hand {0} already imported", this.HandNumber); } this.Saved = true; return(true); }
private void MainWindow_Load(object sender, EventArgs e) { _store = Data.SQLite.DataStore.Instance; _parser = new PartyPoker.PartyPokerParser(_store); _parser.HandImported += new EventHandler(parser_HandImported); string exe = Application.ExecutablePath; System.IO.FileInfo exeInfo = new System.IO.FileInfo(exe); System.IO.DirectoryInfo dirInfo = exeInfo.Directory; string programDir = dirInfo.FullName; string appPath = System.IO.Path.Combine(programDir, "Http"); int port = this.IISExpressPort; bool sysTray = this.IISExpressSysTray; _iisExpress = new IISExpress(appPath, port, sysTray); string httpPath = _iisExpress.Path; bool httpPathExists = System.IO.Directory.Exists(httpPath); if (httpPathExists) { if (_iisExpress.IsRunning == false) { this.StartIIS(); } } else { Logger.Warn("Hand Analysis ASP.NET Applicaton not found at {0}", httpPath); } // Parse existing files this.DiscoverExistingFiles(); this.UpdateStats(); this.StartImport(); _monitor = new PartyPoker.HandHistoryMonitor(_parser.HandHistoryDir); _monitor.FileChanged += new FileSystemEventHandler(this._monitor_FileChanged); _monitor.Start(); _statsRefreshTimer.Start(); this.RefreshPlayers(); }
public void Save(SQLite.DataStore store, System.Data.SQLite.SQLiteConnection connection) { if (this.Saved == true) { return; } if (string.IsNullOrEmpty(this.PlayerName)) { return; } this.PlayerId = -1; if (store.PlayerIdCache.ContainsKey(this.PlayerName)) { this.PlayerId = store.PlayerIdCache[this.PlayerName]; } else { Data.Player player = store.GetPlayer(this.SiteId, this.PlayerName, connection); if (player == null) { this.PlayerId = store.InsertPlayer(this.SiteId, this.PlayerName, connection); } else { this.PlayerId = player.Id; } store.PlayerIdCache[this.PlayerName] = this.PlayerId; } long handId = this.HandId; long offButton = -1; // TODO this.Id = store.InsertHandPlayer(handId, this.PlayerId, this.Stack, this.SeatNumber, offButton, this.HoleCard1, this.HoleCard2, this.FinalHand, connection); this.Saved = true; }
public DbLock(DataStore store) { this._store = store; this.ObtainExclusiveAccess(); }
public static string InitializeDatabase() { string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location; FileInfo exeInfo = new FileInfo(exePath); string filename = Data.DataFolder.DatabaseFileName; string defaultDatabasePath = Path.Combine(exeInfo.Directory.FullName, filename); string defaultDatabaseVersion = null; string currentDatabaseVersion = null; bool defaultDatabaseExists = File.Exists(defaultDatabasePath); bool currentDatabaseExists = File.Exists(Data.DataFolder.FullDatabasePath); bool databaseVersionsDifferent = false; if (!defaultDatabaseExists && !currentDatabaseExists) { Logger.Error("Database could not be initialized because the default database {0} is missing", defaultDatabasePath); return(null); } if (defaultDatabaseExists) { DataStore ds = new DataStore(defaultDatabasePath); Setting setting = ds.GetSetting("Version"); if (setting != null) { UnixTimestamp ts = setting.DateAdded; long unixTime = ts.UnixTime; DateTime utc = ts.UtcTime; DateTime local = utc.ToLocalTime(); defaultDatabaseVersion = setting.Value; Logger.Info("Default database: {0} version: {1} ", defaultDatabasePath, defaultDatabaseVersion); } } if (currentDatabaseExists) { DataStore ds = Data.SQLite.DataStore.Instance; Setting setting = ds.GetSetting("Version"); if (setting != null) { UnixTimestamp ts = setting.DateAdded; long unixTime = ts.UnixTime; DateTime utc = ts.UtcTime; DateTime local = utc.ToLocalTime(); currentDatabaseVersion = setting.Value; Logger.Info("Current database: {0} version: {1} ", Data.DataFolder.FullDatabasePath, currentDatabaseVersion); } } else { Logger.Warn("Database is missing."); } if (defaultDatabaseExists && currentDatabaseExists) { databaseVersionsDifferent = string.Compare(currentDatabaseVersion, defaultDatabaseVersion, true) != 0; } if (databaseVersionsDifferent) { Logger.Warn("Database version mismatch."); } if (!currentDatabaseExists || databaseVersionsDifferent) { string src = defaultDatabasePath; Logger.Warn("Trying to copy the default database from '{0}'", src); FileInfo source = new FileInfo(src); if (source.Exists == true) { source.CopyTo(Data.DataFolder.FullDatabasePath, true); Logger.Info("Default database copied to data directory"); return(Data.DataFolder.FullDatabasePath); } else { Logger.Warn("Default database not found: '{0}'", src); return(null); } } else { return(Data.DataFolder.FullDatabasePath); } }
private void MainWindow_Load(object sender, EventArgs e) { _store = Data.SQLite.DataStore.Instance; _parser = new PartyPoker.PartyPokerParser(_store); _parser.HandImported += new EventHandler(parser_HandImported); string exe = Application.ExecutablePath; System.IO.FileInfo exeInfo = new System.IO.FileInfo(exe); System.IO.DirectoryInfo dirInfo = exeInfo.Directory; string programDir = dirInfo.FullName; string appPath = System.IO.Path.Combine(programDir, "Http"); int port = this.IISExpressPort; bool sysTray = this.IISExpressSysTray; _iisExpress = new IISExpress(appPath, port, sysTray); string httpPath = _iisExpress.Path; bool httpPathExists = System.IO.Directory.Exists(httpPath); if (httpPathExists) { if (_iisExpress.IsRunning == false) { this.StartIIS(); } } else { Logger.Warn("Hand Analysis ASP.NET Applicaton not found at {0}", httpPath); } // Parse existing files this.DiscoverExistingFiles(); this.UpdateStats(); this.StartImport(); _monitor = new PartyPoker.HandHistoryMonitor(_parser.HandHistoryDir); _monitor.FileChanged += new FileSystemEventHandler(this._monitor_FileChanged); _monitor.Start(); _statsRefreshTimer.Start(); this.RefreshPlayers(); }
public void SetPlayerChipCount(string seat, string name, Data.ChipStack stack, SQLite.DataStore store) { HandPlayer player = new HandPlayer(); player.SeatNumber = long.Parse(seat); player.PlayerName = name; player.Stack = stack.ToInt64(); player.SiteId = this.SiteId; player.Saved = false; this.HandPlayers.Add(player); }
public static string InitializeDatabase() { string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location; FileInfo exeInfo = new FileInfo(exePath); string filename = Data.DataFolder.DatabaseFileName; string defaultDatabasePath = Path.Combine(exeInfo.Directory.FullName, filename); string defaultDatabaseVersion = null; string currentDatabaseVersion = null; bool defaultDatabaseExists = File.Exists(defaultDatabasePath); bool currentDatabaseExists = File.Exists(Data.DataFolder.FullDatabasePath); bool databaseVersionsDifferent = false; if (!defaultDatabaseExists && !currentDatabaseExists) { Logger.Error("Database could not be initialized because the default database {0} is missing", defaultDatabasePath); return null; } if (defaultDatabaseExists) { DataStore ds = new DataStore(defaultDatabasePath); Setting setting = ds.GetSetting("Version"); if (setting != null) { UnixTimestamp ts = setting.DateAdded; long unixTime = ts.UnixTime; DateTime utc = ts.UtcTime; DateTime local = utc.ToLocalTime(); defaultDatabaseVersion = setting.Value; Logger.Info("Default database: {0} version: {1} ", defaultDatabasePath, defaultDatabaseVersion); } } if (currentDatabaseExists) { DataStore ds = Data.SQLite.DataStore.Instance; Setting setting = ds.GetSetting("Version"); if (setting != null) { UnixTimestamp ts = setting.DateAdded; long unixTime = ts.UnixTime; DateTime utc = ts.UtcTime; DateTime local = utc.ToLocalTime(); currentDatabaseVersion = setting.Value; Logger.Info("Current database: {0} version: {1} ", Data.DataFolder.FullDatabasePath, currentDatabaseVersion); } } else { Logger.Warn("Database is missing."); } if (defaultDatabaseExists && currentDatabaseExists) { databaseVersionsDifferent = string.Compare(currentDatabaseVersion, defaultDatabaseVersion, true) != 0; } if (databaseVersionsDifferent) { Logger.Warn("Database version mismatch."); } if (!currentDatabaseExists || databaseVersionsDifferent) { string src = defaultDatabasePath; Logger.Warn("Trying to copy the default database from '{0}'", src); FileInfo source = new FileInfo(src); if (source.Exists == true) { source.CopyTo(Data.DataFolder.FullDatabasePath, true); Logger.Info("Default database copied to data directory"); return Data.DataFolder.FullDatabasePath; } else { Logger.Warn("Default database not found: '{0}'", src); return null; } } else { return Data.DataFolder.FullDatabasePath; } }