예제 #1
0
        private void bwUpdateLibrary_DoWork(object sender, DoWorkEventArgs e)
        {
            SortableBindingList <Archivist.MagicObjects.MagicCard> tempLib = new SortableBindingList <Archivist.MagicObjects.MagicCard>();

            if (File.Exists(libraryFile))
            {
                ArchivistDatabase adb = new ArchivistDatabase();

                using (StreamReader reader = new StreamReader(libraryFile))
                {
                    while (!reader.EndOfStream)
                    {
                        string[] split = reader.ReadLine().Split(';');
                        Archivist.MagicObjects.MagicCard card = adb.GetCard(Convert.ToInt32(split[0])) as Archivist.MagicObjects.MagicCard;
                        if (card != null)
                        {
                            card.Amount = Convert.ToInt32(split[1]);
                            tempLib.Add(card);
                        }
                    }
                }
            }

            e.Result = tempLib;
        }
예제 #2
0
        private void addToLibraryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dgCards.SelectedRows.Count < 1)
            {
                return;
            }

            var list = ((SortableBindingList <Archivist.MagicObjects.Card>)dgCards.DataSource);

            Archivist.MagicObjects.Card card = list[dgCards.SelectedRows[0].Index];

            Archivist.MagicObjects.MagicCard findCard = cardsLibrary.FirstOrDefault(sel => sel.Multiverseid == card.Multiverseid);
            if (findCard != null)
            {
                findCard.Amount++;
            }
            else
            {
                cardsLibrary.Add(card.Duplicate() as Archivist.MagicObjects.MagicCard);
            }
        }
예제 #3
0
        /// <summary>
        /// DEC Format or Text files of form: Amount Name
        /// </summary>
        /// <param name="path"></param>
        /// <param name="cards"></param>
        private void ParseFormatDEC(string path, ref SortableBindingList <Card> cards)
        {
            using (StreamReader sr = new StreamReader(path))
            {
                string    line;
                MagicCard card;

                while (!sr.EndOfStream)
                {
                    line = sr.ReadLine().Trim();
                    if (string.IsNullOrEmpty(line))
                    {
                        continue;
                    }

                    card = null;

                    if (line.StartsWith("//"))                     // Comment, may contain "Name:"
                    {
                    }
                    else if (line.StartsWith("SB:"))
                    {
                        card = GetCardFromText(line.Replace("SB:", "").Trim());
                        card.IsInSideboard = true;
                    }
                    else
                    {
                        card = GetCardFromText(line);
                    }

                    if (card != null)
                    {
                        cards.Add(card);
                    }
                }
            }
        }
예제 #4
0
        public void AddCard(Card card)
        {
            if (card == null)
            {
                return;
            }

            Card findCard = cards.FirstOrDefault(sel => sel.Multiverseid == card.Multiverseid);

            if (findCard != null)
            {
                findCard.Amount++;
            }
            else
            {
                cards.Add(card.Duplicate());
            }

            IsModified = true;

            dgDeck.BindDatasource(cards);

            UpdateAll();
        }