private void DownloadFighters() { int warbandsToDownload = 1; int warbandProgress = 0; AddToLog("Step 1/2 - Downloading fighters..."); if (SelectedWarbandIndex == 1) { warbandsToDownload = WarbandList.Count() - 2; } for (int i = 2; i < warbandsToDownload + 2; i++) { warbandProgress++; string warbandName; int fighterSuccess = 0; int fighterSkipped = 0; bool isInspired = false; if (SelectedWarbandIndex == 1) { warbandName = WarbandList[i]; AddToLog("Warband " + warbandProgress.ToString() + "/" + warbandsToDownload.ToString() + " - " + warbandName); } else { warbandName = WarbandList[SelectedWarbandIndex]; AddToLog("Warband - " + warbandName); } for (int currentFighter = 1; currentFighter <= _maxFighters; currentFighter++) { if (!isInspired) { AddToLog("Fighter " + currentFighter.ToString() + " - Normal"); } else { AddToLog("Fighter " + currentFighter.ToString() + " - Inspired"); } string fighterFolderFullPath = _fightersFolderFullPath + warbandName + "\\"; string fighterFileName = GetPurifiedWarbandName(warbandName) + "-" + currentFighter.ToString(); if (isInspired) { fighterFileName += "-inspired"; } fighterFileName += _fighterFileExtension; string fighterFileFullPath = fighterFolderFullPath + fighterFileName; if (!Directory.Exists(fighterFolderFullPath)) { Directory.CreateDirectory(fighterFolderFullPath); } if (!File.Exists(fighterFileFullPath)) { try { _webDownloader.DownloadFile(GetFighterDownloadLink(warbandName, currentFighter, isInspired), fighterFileFullPath); fighterSuccess++; AddToLog("...Success!"); } catch { AddToLog("...doesn't exist. Aborting!"); break; } } else { AddToLog("...Skipped!"); fighterSkipped++; } if (!isInspired) { currentFighter--; } isInspired = !isInspired; } AddToLog(fighterSuccess + " downloaded"); AddToLog(fighterSkipped + " skipped"); } AddToLog("Step 1/2 - Finished"); }
private void CreateWarbandPDF() { int warbandsToCreate = 1; int warbandProgress = 0; AddToLog("Step 2/2 - Creating PDF..."); if (SelectedWarbandIndex == 1) { warbandsToCreate = WarbandList.Count() - 2; } if (!Directory.Exists(_warbandsFolderFullPath)) { Directory.CreateDirectory(_warbandsFolderFullPath); } for (int i = 2; i < warbandsToCreate + 2; i++) { warbandProgress++; string warbandName; int fighterSuccess = 0; bool isInspired = false; if (SelectedWarbandIndex == 1) { warbandName = WarbandList[i]; AddToLog("Warband " + warbandProgress.ToString() + "/" + warbandsToCreate.ToString() + " - " + warbandName); } else { warbandName = WarbandList[SelectedWarbandIndex]; AddToLog("Warband - " + warbandName); } string warbandFileName = warbandName + _warbandFileExtension; string warbandFileFullPath = _warbandsFolderFullPath + warbandFileName; AddToLog("PDF file: " + warbandFileFullPath); AddToLog("Creating file..."); PdfWriter pdfWriter = new PdfWriter(warbandFileFullPath); PdfDocument pdfDocument = new PdfDocument(pdfWriter); Document document = new Document(pdfDocument, PageSize.A4); document.SetMargins(20, 20, 20, 20); AddToLog("Creating layout..."); Table table = new Table(3, false); table.SetHorizontalAlignment(HorizontalAlignment.CENTER); AddToLog("Inserting fighters..."); for (int currentFighter = 1; currentFighter <= _maxFighters; currentFighter++) { if (!isInspired) { AddToLog("Fighter " + currentFighter.ToString() + " - Normal"); } else { AddToLog("Fighter " + currentFighter.ToString() + " - Inspired"); } string fighterFolderFullPath = _fightersFolderFullPath + warbandName + "\\"; string fighterFileName = GetPurifiedWarbandName(warbandName) + "-" + currentFighter.ToString(); if (isInspired) { fighterFileName += "-inspired"; } fighterFileName += _fighterFileExtension; string fighterFileFullPath = fighterFolderFullPath + fighterFileName; try { iText.Layout.Element.Image image = new iText.Layout.Element.Image(ImageDataFactory.Create(fighterFileFullPath)); image.ScaleAbsolute(_widthInPoints, _heightInPoints); Cell cell = new Cell(); cell.Add(image); cell.SetBorder(iText.Layout.Borders.Border.NO_BORDER); cell.SetPaddings(0, 1, 1, 0); table.AddCell(cell); fighterSuccess++; AddToLog("...Success!"); } catch { AddToLog("...doesn't exist. Aborting!"); break; } if (!isInspired) { currentFighter--; } isInspired = !isInspired; } document.Add(table); AddToLog(fighterSuccess + " inserted"); AddToLog("Finalizing..."); document.Close(); AddToLog("Step 2/2 - Finished"); pdfWriter.Close(); } }
private void Init() { AddToLog("Initializing..."); _backgroundWorker.DoWork += new DoWorkEventHandler(BackgroundWorker_DoWork); _backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BackgroundWorker_RunWorkerCompleted); _heightInPoints = 249.449f; _widthInPoints = 178.583f; _downloadURL = @"https://www.underworldsdb.com/cards/"; AddToLog("Download URL: " + _downloadURL); _decksFolderPath = AppDomain.CurrentDomain.BaseDirectory; _decksFolder = "decks"; _decksFolderFullPath = _decksFolderPath + _decksFolder + "\\"; AddToLog("Decks folder: " + _decksFolderFullPath); _deckFile = "Deck"; _deckFileExtension = ".pdf"; _decklistsFolderPath = AppDomain.CurrentDomain.BaseDirectory; _decklistsFolder = "decklists"; _decklistsFolderFullPath = _decklistsFolderPath + _decklistsFolder + "\\"; AddToLog("Decklists folder: " + _decklistsFolderFullPath); _decklistFile = "Decklist"; _decklistFileExtension = ".pdf"; _cardsFolderPath = AppDomain.CurrentDomain.BaseDirectory; _cardsFolder = "cards"; _cardsFolderFullPath = _cardsFolderPath + _cardsFolder + "\\"; AddToLog("Cards folder: " + _cardsFolderFullPath); _cardFileExtension = ".png"; _fightersFolderPath = AppDomain.CurrentDomain.BaseDirectory; _fightersFolder = "fighters"; _fightersFolderFullPath = _fightersFolderPath + _fightersFolder + "\\"; AddToLog("Fighters folder: " + _fightersFolderFullPath); _fighterFileExtension = ".png"; _maxFighters = 9; _warbandsFolderPath = AppDomain.CurrentDomain.BaseDirectory; _warbandsFolder = "warbands"; _warbandsFolderFullPath = _warbandsFolderPath + _warbandsFolder + "\\"; AddToLog("Warbands folder: " + _warbandsFolderFullPath); _warbandFileExtension = ".pdf"; _underworldsDBFilePath = AppDomain.CurrentDomain.BaseDirectory; _underworldsDBFile = "UnderworldsDB.csv"; _underworldsDBFileFullPath = _underworldsDBFilePath + _underworldsDBFile; AddToLog("UnderworldsDB file: " + _underworldsDBFileFullPath); AddToLog("Reading UnderworldsDB file..."); CardList = new ObservableCollection <Card>(File.ReadAllLines(_underworldsDBFileFullPath).Skip(1).Select(v => Card.FromCsv(v)).ToList()); List <Card> cardDeleteList = CardList.Where(card => string.IsNullOrEmpty(card.Name)).ToList(); foreach (Card card in cardDeleteList) { CardList.Remove(card); } foreach (Card currentCard in CardList) { string oldWarband = WarbandList.Where(x => x == currentCard.Faction).FirstOrDefault(); if (oldWarband == null && currentCard.Faction != "Universal") { WarbandCount++; WarbandList.Add(currentCard.Faction); } } WarbandList = new ObservableCollection <string>(WarbandList.OrderBy(i => i)); WarbandList.Insert(0, "-- Select Warband --"); WarbandList.Insert(1, "-- All Warbands --"); AddToLog("Finished reading UnderWorldsDB file: " + CardList.Count.ToString() + " cards / " + WarbandCount.ToString() + " warbands"); AddToLog("Initialized"); FilteredCardList = CardList; }