public async Task Export(CardDatabaseContext database, IDatabaseExportInfo info) { Log.Information("Starting..."); var query = CreateQuery(database.WeissSchwarzCards, info); var resultFile = Path.CreateDirectory(info.Destination).Combine("cockatrice_card_db.xml"); var serializer = new XmlSerializer(typeof(CockatriceCardDatabase)); var cardSet = await CockatriceCardDatabase.CreateFromDatabase(query); resultFile.Open(s => serializer.Serialize(s, cardSet), System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.ReadWrite ); Log.Information($"Done: {resultFile.FullPath}"); }
private IAsyncEnumerable <WeissSchwarzCard> CreateQuery(IAsyncEnumerable <WeissSchwarzCard> query, IDatabaseExportInfo info) { var releaseIDLimitations = info.ReleaseIDs.ToArray(); var result = query; if (releaseIDLimitations.Length > 0) { result = result.Where(card => releaseIDLimitations.Contains(card.ReleaseID)); } return(result.Where(card => card.Images.Count > 0)); }