public static async Task<Card> GetCardByNameAsync(this MtgDb.Info.Driver.Db database, string name, SingletonRules singletonRule = SingletonRules.First) { using (var client = new HttpClient()) { var url = String.Format("{0}/cards/{1}", database.ApiUrl, name); var json = await client.GetStringAsync(url); var cards = JsonConvert.DeserializeObject<List<Card>>(json); return cards.GetCardFromCollection(singletonRule); } }
public static Card GetCardFromCollection(this IEnumerable<Card> cards, SingletonRules singletonRule) { switch(singletonRule) { case SingletonRules.Latest: return cards.LastOrDefault(); case SingletonRules.First: default: return cards.FirstOrDefault(); } }