internal static async Task <CockatriceCardDatabase> CreateFromDatabase(IAsyncEnumerable <WeissSchwarzCard> query) { var result = new CockatriceCardDatabase(); var tempSetList = new Dictionary <string, CockatriceSet>(); var tempCardList = new List <CockatriceCard>(); await foreach (var card in query) { try { var newCckCard = new CockatriceCard(); newCckCard.Name = card.Name.AsNonEmptyString(); newCckCard.Set = GetOrCreateSet(tempSetList, card).AsSetRelationship(); newCckCard.Set.PicURL = card.Images[^ 1].ToString();
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}"); }