Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        public DbLock(DataStore store)
        {
            this._store = store;

            this.ObtainExclusiveAccess();
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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;
            }
        }