Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        public MagicBinderCardViewModel(
            IMagicCardDefinition definition,
            MagicBinderCard card)
        {
            _notificationCenter = NotificationCenter.Instance;
            _definition         = definition;
            _card  = card;
            _price = StaticPriceDatabase.FindPrice(_definition, false, false, "", false);
            _price.PriceChanged += OnPricePriceChanged;

            UpdatePrice();
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 public string MakeConsolidateString(MagicBinderCard card)
 {
     return(card.IsFoil.ToString() + card.CardId + card.Language + card.Comment);
 }