Beispiel #1
0
        public bool AddPlayerCompanion(VF.SQLPlayerID _PlayerID, VF.SQLUploadID _UploadID, DateTime _UpdateTime, int _CompanionID)
        {
            var conn = OpenConnection();

            try
            {
                using (var cmd = new NpgsqlCommand("INSERT INTO playercompaniontable(playerid, uploadid, updatetime, companionid) VALUES(:PlayerID, :UploadID, :UpdateTime, :CompanionID)", conn))
                {
                    cmd.Parameters.Add(new NpgsqlParameter("PlayerID", NpgsqlDbType.Integer)).Value     = (int)_PlayerID;
                    cmd.Parameters.Add(new NpgsqlParameter("UploadID", NpgsqlDbType.Integer)).Value     = (int)_UploadID;
                    cmd.Parameters.Add(new NpgsqlParameter("UpdateTime", NpgsqlDbType.Timestamp)).Value = _UpdateTime;
                    cmd.Parameters.Add(new NpgsqlParameter("CompanionID", NpgsqlDbType.Integer)).Value  = _CompanionID;
                    int rowsAffected = cmd.ExecuteNonQuery();
                }
                return(true);
            }
            catch (NpgsqlException ex)
            {
                if (ex.Code == "23505") //unique key violation
                {
                    //Ignore error, this just means the data was already in the DB!
                    return(true);
                }
                else
                {
                    VF_RealmPlayersDatabase.Logger.ConsoleWriteLine("AddPlayerCompanion() Failed to add PlayerID(" + (int)_PlayerID + "), UploadID(" + (int)_UploadID + ") UpdateTime(" + _UpdateTime + ") CompanionID(" + _CompanionID + ")");
                    VF_RealmPlayersDatabase.Logger.LogException(ex);
                }
            }
            finally
            {
                CloseConnection();
            }
            return(false);
        }
Beispiel #2
0
        public bool UpsertItemOwner(int _ItemID, int _SuffixID, VF.SQLPlayerID _PlayerID, VF.SQLIngameItemID?_LatestItemInfo = null, DateTime?_DateAquired = null)
        {
            if (_LatestItemInfo.HasValue == false)
            {
                _LatestItemInfo = new SQLIngameItemID(0);
            }
            if (_DateAquired.HasValue == false)
            {
                _DateAquired = DateTime.MaxValue;
            }

            var conn = OpenConnection();

            try
            {
                using (var cmd = new NpgsqlCommand("INSERT INTO ItemOwnerTable(ItemID, SuffixID, PlayerID, DateAquired, LatestItemInfo) VALUES(:ItemID, :SuffixID, :PlayerID, :DateAquired, :LatestItemInfo) ON CONFLICT ON CONSTRAINT itemownertable_pkey DO UPDATE SET DateAquired = EXCLUDED.DateAquired, LatestItemInfo  = EXCLUDED.LatestItemInfo", conn))
                {
                    cmd.Parameters.Add(new NpgsqlParameter("ItemID", NpgsqlDbType.Integer)).Value         = _ItemID;
                    cmd.Parameters.Add(new NpgsqlParameter("SuffixID", NpgsqlDbType.Integer)).Value       = _SuffixID;
                    cmd.Parameters.Add(new NpgsqlParameter("PlayerID", NpgsqlDbType.Integer)).Value       = (int)_PlayerID;
                    cmd.Parameters.Add(new NpgsqlParameter("DateAquired", NpgsqlDbType.Timestamp)).Value  = _DateAquired.Value;
                    cmd.Parameters.Add(new NpgsqlParameter("LatestItemInfo", NpgsqlDbType.Integer)).Value = (int)_LatestItemInfo.Value;

                    int affectedRows = cmd.ExecuteNonQuery();
                    if (affectedRows == 1)
                    {
                        return(true);
                    }
                }
            }
            finally
            {
                CloseConnection();
            }
            return(false);
        }