protected override async ValueTask <IEnumerable <CardFromFile> > Execute(FileParserContext context, Func <FileParserContext, ValueTask <IEnumerable <CardFromFile> > > next) { var fileExtension = Path.GetExtension(context.Name); if (string.IsNullOrEmpty(fileExtension) || !fileExtension.Equals(".dec", StringComparison.InvariantCultureIgnoreCase)) { return(await next(context)); } var fileContent = Encoding.ASCII.GetString(context.Content); var deck = new List <Item>(); var matches = Regex.Matches(fileContent, _parsingPattern, RegexOptions.Multiline); foreach (Match match in matches) { deck.Add(new Item { id = int.Parse(match.Groups[1].Value), r = int.Parse(match.Groups[2].Value) }); } context.Cards = await GetCardFromFilesFromItemsCollection(deck); return(context.Cards); }
protected override async ValueTask <IEnumerable <CardFromFile> > Execute(FileParserContext context, Func <FileParserContext, ValueTask <IEnumerable <CardFromFile> > > next) { //TODO: Known defect: Can't catch showcase cards. var fileExtension = Path.GetExtension(context.Name); if (string.IsNullOrEmpty(fileExtension) || !fileExtension.Equals(".coll2", StringComparison.InvariantCultureIgnoreCase)) { return(await next(context)); } var fileContent = Encoding.ASCII.GetString(context.Content); var collection = CollectionV2.FromYaml(Regex.Replace(fileContent, _simplificationPattern, _replacement)).items; context.Cards = await GetCardFromFilesFromItemsCollection(collection); return(context.Cards); }