/// <summary> /// Hilfs Methode welche von der Jokes-API die Witze lädt und lokal abspeichert /// </summary> /// <returns></returns> private static async Task SaveJokesToFile() { var api = new ChuckNorrisApi(); var result = await api.GetRandomJokesFromCategory(JokeCategories.Dev, 10); SaveJokes(result); void SaveJokes(ChuckNorrisApi.ChuckNorrisJoke[] jokesToSerialize) { // TODO: Nur für Vorlesungszwecke! Das referenzieren von Strings erzeugt // eine Kopie, problematisch bei großen strings (LOH) var raw = JsonSerializer.Serialize(jokesToSerialize); File.WriteAllText($"jokes_{DateTime.Now.Ticks}.json", raw); } }
static async Task Main(string[] args) { ChuckNorrisApi api = new ChuckNorrisApi(); try { Console.WriteLine("Getting random joke:"); Joke joke = await api.GetRandomJoke(); PrintProperties <Joke>(joke); Console.WriteLine("Getting random joke from a set of categories:"); Joke jokeFromCategory = await api.GetRandomJoke(new string[] { "dev", "music" }); PrintProperties <Joke>(jokeFromCategory); Console.WriteLine("Getting random personalized joke:"); Joke personalizedJoke = await api.GetRandomJoke("Peter"); PrintProperties <Joke>(personalizedJoke); Console.WriteLine("Getting random personalized joke from a set of categories:"); Joke personalizedJokeFromCategory = await api.GetRandomJoke("Peter", new string[] { "dev", "music" }); PrintProperties <Joke>(personalizedJokeFromCategory); Console.WriteLine("Getting categories:"); string[] categories = await api.GetCategories(); Console.WriteLine(string.Join(",", categories)); Console.WriteLine("Getting all jokes containing a particular word or phrase:"); List <Joke> searchResults = await api.SearchForText("films"); foreach (Joke result in searchResults) { PrintProperties <Joke>(result); } } catch (Exception ex) { Console.WriteLine(ex); } api.Dispose(); }
private static async Task SaveJokesToFile() { var api = new ChuckNorrisApi(); var result = await api.GetRandomJokesFromCategory(JokeCategories.Dev, 10); SaveJokes(result); void SaveJokes(ChuckNorrisApi.ChuckNorrisJoke[] jokesToSerialize) { // TODO: Nur für Vorlesungszwecke! Das referenzieren von Strings erzeugt // eine Kopie, problematisch bei großen strings (LOH) // Mit .net core 3.0 wird es performantere Möglichkeiten zur // Serialisierung und Deserialisierung geben. var raw = JsonConvert.SerializeObject(jokesToSerialize); File.WriteAllText($"jokes_{DateTime.Now.Ticks}.json", raw); } }
public ApiJokeProvider() { _api = new ChuckNorrisApi(); }