Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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;
        }