public void Execute(MySqlConnection connection, MySqlTransaction transaction) { using (MySqlCommand mySqlCommand = new MySqlCommand(string.Format("SELECT relic_draws.*, items.name FROM relic_draws LEFT OUTER JOIN items ON relic_draws.itemid = items.id WHERE relic_draws.gacha_series_id = {0} AND relic_draws.isJapanese = {1}", (object)this.myBannerID, (object)(this.myIsJP ? 1 : 0)), connection, transaction)) { using (MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader()) { while (mySqlDataReader.Read()) { BasicRelicDropInfo basicRelicDropInfo = new BasicRelicDropInfo(); basicRelicDropInfo.ServerTime = (ulong)mySqlDataReader["server_time"]; basicRelicDropInfo.UserHash = (int)mySqlDataReader["userhash"]; basicRelicDropInfo.ItemID = (uint)mySqlDataReader["itemid"]; long key = this.HashValues(basicRelicDropInfo.ServerTime, basicRelicDropInfo.UserHash, basicRelicDropInfo.ItemID); basicRelicDropInfo.BannerID = (uint)mySqlDataReader["gacha_series_id"]; byte num = (byte)mySqlDataReader["isJapanese"]; basicRelicDropInfo.IsJP = num == (byte)1; basicRelicDropInfo.DropNum = (ushort)mySqlDataReader["drop_num"]; basicRelicDropInfo.Rarity = (byte)mySqlDataReader["rarity"]; basicRelicDropInfo.ItemTotal = (ushort)mySqlDataReader["total_items_pulled"]; basicRelicDropInfo.ItemName = (string)mySqlDataReader["name"]; this.myDraws.Add(key, basicRelicDropInfo); } } } }
private void ConsolidateRelicDrawList(Dictionary <long, BasicRelicDropInfo> draws) { this.myMiscInfo = new FFRKViewGacha2.MiscDropInfo(); bool flag1 = true; if (this.comboBoxPullTypeFilter.SelectedIndex == 1) { flag1 = false; } bool flag2 = true; if (this.comboBoxPullTypeFilter.SelectedIndex == 0) { flag2 = false; } Dictionary <uint, FilteredRelicDropInfo> dictionary1 = new Dictionary <uint, FilteredRelicDropInfo>(); Dictionary <long, bool> dictionary2 = new Dictionary <long, bool>(); foreach (BasicRelicDropInfo basicRelicDropInfo in draws.Values) { BasicRelicDropInfo dropInfo = basicRelicDropInfo; if ((dropInfo.ItemTotal != (ushort)11 || flag1) && (dropInfo.ItemTotal == (ushort)11 || flag2)) { long key = this.HashTimeAndUser(dropInfo.ServerTime, dropInfo.UserHash); if (!dictionary2.ContainsKey(key)) { this.myMiscInfo.totalPulls += (int)dropInfo.ItemTotal; dictionary2.Add(key, true); } switch (dropInfo.Rarity) { case 1: this.myMiscInfo.count1 += (int)dropInfo.DropNum; break; case 2: this.myMiscInfo.count2 += (int)dropInfo.DropNum; break; case 3: this.myMiscInfo.count3 += (int)dropInfo.DropNum; break; case 4: this.myMiscInfo.count4 += (int)dropInfo.DropNum; break; case 5: this.myMiscInfo.count5 += (int)dropInfo.DropNum; break; case 6: this.myMiscInfo.count6 += (int)dropInfo.DropNum; break; case 7: this.myMiscInfo.count7 += (int)dropInfo.DropNum; break; } if (dropInfo.Rarity > (byte)4) { if (dictionary1.ContainsKey(dropInfo.ItemID)) { dictionary1[dropInfo.ItemID].DropNum += dropInfo.DropNum; } else if (this.myFeaturedItems.Values.ToList <BasicFeaturedItemInfo>().Exists((Predicate <BasicFeaturedItemInfo>)(x => (int)x.ItemID == (int)dropInfo.ItemID))) { FilteredRelicDropInfo filteredRelicDropInfo = new FilteredRelicDropInfo(); filteredRelicDropInfo.DropNum = dropInfo.DropNum; filteredRelicDropInfo.ItemID = dropInfo.ItemID; filteredRelicDropInfo.ItemName = dropInfo.ItemName; filteredRelicDropInfo.Rarity = dropInfo.Rarity; BasicFeaturedItemInfo featuredItemInfo = this.myFeaturedItems.Values.First <BasicFeaturedItemInfo>((Func <BasicFeaturedItemInfo, bool>)(x => (int)x.ItemID == (int)dropInfo.ItemID)); filteredRelicDropInfo.DisplayOrder = featuredItemInfo.DisplayOrder; filteredRelicDropInfo.AssumedRate = featuredItemInfo.Rate; dictionary1.Add(dropInfo.ItemID, filteredRelicDropInfo); } else { switch (dropInfo.Rarity) { case 5: this.myMiscInfo.offBanner5count += (int)dropInfo.DropNum; break; case 6: this.myMiscInfo.offBanner6count += (int)dropInfo.DropNum; break; case 7: this.myMiscInfo.offBanner7count += (int)dropInfo.DropNum; break; } } } } } FiddlerApplication.Log.LogString(dictionary1.Values.Count.ToString()); this.myConsolidatedRelicDrops = dictionary1; }