public void AddCard( IMagicCardDefinition cardDefinition, int quantity, MagicGrade grade, MagicLanguage language, bool isFoil, bool updateTotals) { var binderCard = new MagicBinderCard() { CardId = cardDefinition.CardId, Grade = grade, Language = language, IsFoil = isFoil, Quantity = quantity }; var viewModel = new MagicBinderCardViewModel(cardDefinition, binderCard); _sortedCards.Add(binderCard.RowId, viewModel); _cards.Add(viewModel); _magicCollection.Cards.Add(binderCard); viewModel.PriceChanged += Card_PriceChanged; if (updateTotals) { CalculateTotals(); } }
public MagicBinderCardViewModel( IMagicCardDefinition definition, MagicBinderCard card) { _notificationCenter = NotificationCenter.Instance; _definition = definition; _card = card; _price = StaticPriceDatabase.FindPrice(_definition, false, false, "", false); _price.PriceChanged += OnPricePriceChanged; UpdatePrice(); }
public IEnumerable <MagicBinderCardViewModel> ReadFileContent(string content) { var result = new List <MagicBinderCardViewModel>(); var groupedCards = StaticMagicData.CardDefinitions.GroupBy(d => d.SetCode).ToList(); MagicSetDefinition set = null; MagicCardDefinition definition = null; string lastSetCodeName; using (var inputCsv = new CsvReader(new StringReader(content))) { while (inputCsv.Read()) { var card = new MagicBinderCard() { Quantity = inputCsv.GetField <int>("Count"), QuantityTrade = inputCsv.GetField <int>("Tradelist Count"), Grade = inputCsv.GetField <string>("Condition").ToMagicGrade(), IsFoil = inputCsv.GetField <string>("Foil") == "foil", Language = inputCsv.GetField <string>("Language").ToMagicLanguage() }; var cardNumber = inputCsv.GetField <string>("Card Number"); var cardName = inputCsv.GetField <string>("Name"); var setName = inputCsv.GetField <string>("Edition"); if (set == null || !set.Name.Equals(setName, StringComparison.InvariantCultureIgnoreCase)) { if (!StaticMagicData.SetDefinitionsBySetName.TryGetValue(setName, out set)) { // TODO: Handle error _notificationCenter.FireNotification(LogLevel.Error, string.Format("Cannot find set for card {0} ({1})", cardName, setName)); continue; } } var setCodeName = StaticMagicData.MakeNameSetCode(set.Code, cardName, cardNumber); lastSetCodeName = setCodeName; if (!StaticMagicData.CardDefinitionsByNameSetCode.TryGetValue(setCodeName, out definition)) { _notificationCenter.FireNotification(LogLevel.Error, string.Format("Cannot find card {0} ({1})", cardName, setName)); continue; } result.Add(new MagicBinderCardViewModel(definition, card)); } } return(result); }
public IEnumerable <MagicBinderCardViewModel> ReadFileContent(string content) { var stopwatch = Stopwatch.StartNew(); var result = ReadFileContentDec(content); var finalList = new List <MagicBinderCardViewModel>(); foreach (var card in result) { var binderCard = new MagicBinderCard { CardId = card.CardId, Quantity = card.Quantity, Language = null, }; MagicCardDefinition definition; if (string.IsNullOrWhiteSpace(binderCard.CardId)) { definition = StaticMagicData.CardDefinitions .First(c => c.NameEN == card.Name); binderCard.CardId = definition.CardId; } else { definition = StaticMagicData.CardDefinitionsByCardId[binderCard.CardId]; } finalList.Add(new MagicBinderCardViewModel(definition, binderCard)); } stopwatch.Stop(); // _notificationCenter.FireNotification(null, string.Format("Loading dec {0} took {1}", file, stopwatch.Elapsed)); return(finalList); }
public string MakeConsolidateString(MagicBinderCard card) { return(card.IsFoil.ToString() + card.CardId + card.Language + card.Comment); }