/// <summary>
        /// Get all games from the game table
        /// </summary>
        public async Task <List <GameDatabaseEntry> > GetAllGames()
        {
            List <GameDatabaseEntry> gameList = new List <GameDatabaseEntry>();

            if (_connection.State == System.Data.ConnectionState.Open)
            {
                if (await ExecuteQuery("SELECT * FROM Games") is SQLiteDataReader reader)
                {
                    while (reader.Read())
                    {
                        GameDatabaseEntry entry = new GameDatabaseEntry
                        {
                            GameName     = reader.GetString((int)ColIndex.GameName),
                            AddedDate    = reader.GetString((int)ColIndex.AddedDate),
                            PC           = reader.GetString((int)ColIndex.PC),
                            PS3          = reader.GetString((int)ColIndex.PS3),
                            PS4          = reader.GetString((int)ColIndex.PS4),
                            PSVita       = reader.GetString((int)ColIndex.PSVita),
                            OwnedStatus  = reader.GetString((int)ColIndex.OwnedStatus),
                            PlayedStatus = reader.GetString((int)ColIndex.PlayedStatus)
                        };

                        gameList.Add(entry);
                    }
                }
            }

            return(gameList);
        }
        /// <summary>
        /// Edit an existing game item in the database
        /// </summary>
        public bool EditGame(string nameToEdit, GameDatabaseEntry entry)
        {
            if (_connection.State == System.Data.ConnectionState.Open)
            {
                if (DeleteGame(nameToEdit))
                {
                    return(AddGame(entry));
                }
            }

            return(false);
        }
예제 #3
0
        public GameListEntry(GameDatabaseEntry databaseEntry)
        {
            try
            {
                Name       = databaseEntry.GameName;
                IsOnPS4    = databaseEntry.PS4 == "true";
                IsOnPS3    = databaseEntry.PS3 == "true";
                IsOnPSVita = databaseEntry.PSVita == "true";
                IsOnPC     = databaseEntry.PC == "true";
                Owned      = databaseEntry.OwnedStatus == "true";

                string statusNoSpace = databaseEntry.PlayedStatus.Replace(" ", "");
                PlayStatus = (Status)Enum.Parse(typeof(Status), statusNoSpace, true);

                DateAdded = DateTime.Parse(databaseEntry.AddedDate);
            }
            catch (ArgumentException exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
        /// <summary>
        /// Add a game item to the database
        /// </summary>
        public bool AddGame(GameDatabaseEntry entry)
        {
            if (_connection.State == System.Data.ConnectionState.Open)
            {
                SQLiteCommand command = _connection.CreateCommand();
                command.CommandText = "INSERT OR REPLACE INTO Games" +
                                      "(GameName, AddedDate, PC, PS3, PS4, PSVita, OwnedStatus, PlayedStatus) " +
                                      "VALUES " +
                                      "(@GameName, @AddedDate, @PC, @PS3, @PS4, @PSVita, @OwnedStatus, @PlayedStatus)";

                command.Parameters.Add(new SQLiteParameter("@GameName", entry.GameName));
                command.Parameters.Add(new SQLiteParameter("@AddedDate", entry.AddedDate));
                command.Parameters.Add(new SQLiteParameter("@PC", entry.PC));
                command.Parameters.Add(new SQLiteParameter("@PS3", entry.PS3));
                command.Parameters.Add(new SQLiteParameter("@PS4", entry.PS4));
                command.Parameters.Add(new SQLiteParameter("@PSVita", entry.PSVita));
                command.Parameters.Add(new SQLiteParameter("@OwnedStatus", entry.OwnedStatus));
                command.Parameters.Add(new SQLiteParameter("@PlayedStatus", entry.PlayedStatus));

                return(command.ExecuteNonQuery() > 0);
            }

            return(false);
        }