private bool GetLoot(LootTO loot) { using var sqLiteCommand = new SQLiteCommand("SELECT COUNT(*) FROM Loot WHERE Date = @Date AND Item_ID = @ItemID AND Player_ID = @Player_ID", connection); sqLiteCommand.Parameters.AddWithValue("@Date", loot.Date.ToFileTimeUtc()); sqLiteCommand.Parameters.AddWithValue("@ItemID", loot.Item.ID); sqLiteCommand.Parameters.AddWithValue("@Player_ID", loot.Player.ID); using var sqLiteDataReader = sqLiteCommand.ExecuteReader(); while (sqLiteDataReader.Read()) { return(sqLiteDataReader.GetInt32(0) > 0); } return(false); }
private void WriteLoot(RaidTO raid, LootTO loot) { if (GetLoot(loot)) { return; } using var sqLiteCommand = new SQLiteCommand("INSERT INTO Loot(Date, Item_ID, Mob_ID, Raid_ID, Player_ID) VALUES(@Date,@ItemID,@MobID,@RaidID,@PlayerID)", connection); sqLiteCommand.Parameters.AddWithValue("@Date", loot.Date.ToFileTimeUtc()); sqLiteCommand.Parameters.AddWithValue("@ItemID", loot.Item.ID); sqLiteCommand.Parameters.AddWithValue("@MobID", loot.Mob.ID); sqLiteCommand.Parameters.AddWithValue("@RaidID", raid.ID); sqLiteCommand.Parameters.AddWithValue("@PlayerID", loot.Player.ID); Console.WriteLine("Add new Loot: " + loot.Item.Name + " given to " + loot.Player.Name + " (" + loot.Player.Guild + ")"); sqLiteCommand.ExecuteNonQuery(); sqLiteCommand.CommandText = "SELECT last_insert_rowid()"; var lastRowId64 = (long)sqLiteCommand.ExecuteScalar(); loot.ID = (int)lastRowId64; }