using System; using System.Collections.Generic; using System.Text.RegularExpressions; using IronXL; using static System.Text.RegularExpressions.Regex; namespace FabStarterDeckGen { public class FABCollectionReader { public static readonly string COLUMN_NUMBER = "B"; public static readonly string COLUMN_NAME = "C"; public static readonly string COLUMN_RARITY = "D"; public static readonly string COLUMN_RED = "E"; public static readonly string COLUMN_YELLOW = "F"; public static readonly string COLUMN_BLUE = "G"; public static readonly string[] COLUMNS_PITCHES = { COLUMN_RED, COLUMN_YELLOW, COLUMN_BLUE }; public static readonly string[] COLUMNS_DETAILS = { COLUMN_NUMBER, COLUMN_NAME, COLUMN_RARITY }; public readonly int STARTING_ROW_INDEX = 3; public Dictionary CollectionCounts = new Dictionary(); public void LoadCollection(string pFilePath, ReferenceCardLoader pReferenceCard) { WorkBook workbook = WorkBook.Load(pFilePath); foreach (var sheet in workbook.WorkSheets) { var current_row_index = STARTING_ROW_INDEX; var current_card_name = sheet[COLUMN_NAME + current_row_index.ToString()].StringValue; while (current_card_name != "") { Console.WriteLine(current_card_name); var reference_cards = pReferenceCard.GetCardsWithName(current_card_name); foreach (var card in reference_cards) { if (card.IsPitchless) { if( !CollectionCounts.ContainsKey(card.CleanName) ) CollectionCounts.Add(card.CleanName, 0); CollectionCounts[card.CleanName] += sheet[COLUMN_RED + current_row_index.ToString()].IntValue; } else { if (card.IsRed) { if( !CollectionCounts.ContainsKey(card.CleanNameRed) ) CollectionCounts.Add(card.CleanNameRed, 0); CollectionCounts[card.CleanNameRed] += sheet[COLUMN_RED + current_row_index.ToString()].IntValue; } if (card.IsYellow) { if( !CollectionCounts.ContainsKey(card.CleanNameYellow) ) CollectionCounts.Add(card.CleanNameYellow, 0); CollectionCounts[card.CleanNameYellow] += sheet[COLUMN_YELLOW + current_row_index.ToString()].IntValue; } if (card.IsBlue) { if( !CollectionCounts.ContainsKey(card.CleanNameBlue) ) CollectionCounts.Add(card.CleanNameBlue, 0); CollectionCounts[card.CleanNameBlue] += sheet[COLUMN_BLUE + current_row_index.ToString()].IntValue; } } } current_row_index++; current_card_name = sheet[COLUMN_NAME + current_row_index.ToString()].StringValue; } } } } }