public PokeTradeDetail(TPoke pkm, PokeTradeTrainerInfo info, GiveawayPoolEntry poolEntry, IPokeTradeNotifier <TPoke> notifier, PokeTradeType type, int code, bool favored = false) { Code = code; TradeData = pkm; PoolEntry = poolEntry; Trainer = info; Notifier = notifier; Type = type; Time = DateTime.Now; IsFavored = favored; ID = Interlocked.Increment(ref CreatedCount) % 3000; }
public int NewEntry(GiveawayPoolEntry entry) { SQLiteConnection conn = NewConnection();; int result = -1; int entryID = 0; try { using SQLiteCommand cmd = new SQLiteCommand(conn); cmd.CommandText = "INSERT INTO " + entry.Pool + " (Name, Pokemon, Status, PK8, Tag, Uploader)" + "VALUES (@name, @pokemon, @status, @pk8, @tag, @uploader)"; cmd.Prepare(); cmd.Parameters.AddWithValue("@name", entry.Name); cmd.Parameters.AddWithValue("@pokemon", entry.Pokemon); cmd.Parameters.AddWithValue("@status", entry.Status); cmd.Parameters.AddWithValue("@pk8", Utils.PK8ToB64(entry.PK8)); cmd.Parameters.AddWithValue("@tag", entry.Tag); cmd.Parameters.AddWithValue("@uploader", entry.Uploader); result = cmd.ExecuteNonQuery(); } catch (SQLiteException e) { LogUtil.LogInfo("Error inserting new entry: " + e.Message, nameof(GiveawayPool)); return(0); } try { using SQLiteCommand getRow = new SQLiteCommand(conn); getRow.CommandText = "SELECT last_insert_rowid()"; var lastRow = getRow.ExecuteScalar(); Int32.TryParse(lastRow.ToString(), out entryID); } catch (SQLiteException e) { LogUtil.LogInfo("Error getting new entry id: " + e.Message, nameof(GiveawayPool)); entryID = 0; } finally { conn.Close(); } return(entryID); }
public List <GiveawayPoolEntry> SearchPool(string pool, string search) { List <GiveawayPoolEntry> entries = new List <GiveawayPoolEntry>(); SQLiteConnection conn = NewConnection(); var name = search; var tag = search; try { using SQLiteCommand cmd = new SQLiteCommand(conn); cmd.CommandText = "SELECT * FROM " + pool + " WHERE Name like @name OR Tag like @tag"; cmd.Prepare(); LogUtil.LogInfo(cmd.CommandText, "SQL"); LogUtil.LogInfo("Pool: " + pool + " Search: " + name + "/" + tag, "SQL"); cmd.Parameters.AddWithValue("name", name); cmd.Parameters.AddWithValue("tag", tag); using SQLiteDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { GiveawayPoolEntry entry = new GiveawayPoolEntry(); Int32.TryParse(reader["Id"].ToString(), out var id); entry.Id = id; #pragma warning disable CS8601 // Possible null reference assignment. if (reader["Name"] != null) { entry.Name = reader["Name"].ToString(); } if (reader["Tag"] != null) { entry.Tag = reader["Tag"].ToString(); } if (reader["Status"] != null) { entry.Status = reader["Status"].ToString(); } if (reader["PK8"] != null) { entry.PK8 = Utils.B64ToPK8(reader["PK8"].ToString()); } if (reader["Pokemon"] != null) { entry.Pokemon = reader["Pokemon"].ToString(); } if (reader["Description"] != null) { entry.Description = reader["Description"].ToString(); } if (reader["Uploader"] != null) { entry.Uploader = reader["Uploader"].ToString(); } #pragma warning restore CS8601 // Possible null reference assignment. entries.Add(entry); } } catch (SQLiteException e) { LogUtil.LogInfo("Error querying database: " + e.Message, nameof(GiveawayPool)); } finally { conn.Close(); } return(entries); }