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; }
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); } }
/// <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); } } } }
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(); }