Example #1
0
        public void Write(
            string fileName,
            IEnumerable <IMagicBinderCardViewModel> cards,
            MagicLanguage language,
            MagicGrade grade,
            Func <IMagicBinderCardViewModel, int> quantitySelector)
        {
            var outputCsv = new CsvWriter(File.CreateText(fileName));

            outputCsv.WriteField("Count");
            outputCsv.WriteField("Name");
            outputCsv.WriteField("Edition");
            outputCsv.WriteField("Foil");
            outputCsv.WriteField("Language");
            outputCsv.WriteField("Condition");
            outputCsv.WriteField("Comment");
            outputCsv.NextRecord();

            string             lastSetCode = "";
            MagicSetDefinition definition  = null;

            foreach (var card in cards)
            {
                if (lastSetCode != card.Definition.SetCode)
                {
                    lastSetCode = card.Definition.SetCode;
                    definition  = StaticMagicData.SetDefinitionsBySetCode[lastSetCode];
                }

                outputCsv.WriteField(quantitySelector(card));
                outputCsv.WriteField(PatchCardName(card.NameEN), true);
                outputCsv.WriteField(PatchSetName(definition.Name.Replace("Magic: The Gathering�Conspiracy", "Conspiracy")), true);
                outputCsv.WriteField(card.IsFoil ? "foil" : null);
                outputCsv.WriteField(card.Language.HasValue ? card.Language.Value.ToString() : language.ToString());
                outputCsv.WriteField(card.Grade.HasValue ? card.Grade.Value.ToCsv() : grade.ToCsv());
                outputCsv.WriteField(card.Comment);
                outputCsv.NextRecord();
            }

            outputCsv.Dispose();
        }