示例#1
0
        /// <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);
            }
        }
示例#2
0
        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();
        }
示例#3
0
        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();
 }