private static async Task ReadXmlAsync()
 {
     WriteLine(nameof(ReadXmlAsync));
     var client = new BookChapterClient(Addresses.BaseAddress);
     XElement chapters = await client.GetAllXmlAsync(Addresses.BooksApi);
     WriteLine(chapters);
     WriteLine();
 }
 private static async Task ReadNotExistingChapterAsync()
 {
    
     WriteLine(nameof(ReadNotExistingChapterAsync));
     string requestedIdentifier = Guid.NewGuid().ToString();
     try
     {
         var client = new BookChapterClient(Addresses.BaseAddress);
         BookChapter chapter = await client.GetAsync(Addresses.BooksApi + requestedIdentifier.ToString());
         WriteLine($"{chapter.Number} {chapter.Title}");
     }
     catch (HttpRequestException ex) when (ex.Message.Contains("404")) 
     {
         WriteLine($"book chapter with the identifier {requestedIdentifier} not found");
     }
     WriteLine();
 }
 private static async Task AddChapterAsync()
 {
     WriteLine(nameof(AddChapterAsync));
     var client = new BookChapterClient(Addresses.BaseAddress);
     BookChapter chapter = new BookChapter
     {
         Number = 42,
         Title = "ASP.NET Web API",
         Pages = 35
     };
     chapter = await client.PostAsync(Addresses.BooksApi, chapter);
     WriteLine($"added chapter {chapter.Title} with id {chapter.Id}");
     WriteLine();
 }
        private static async Task UpdateChapterAsync()
        {
            WriteLine(nameof(UpdateChapterAsync));
            var client = new BookChapterClient(Addresses.BaseAddress);
            var chapters = await client.GetAllAsync(Addresses.BooksApi);
            var chapter = chapters.SingleOrDefault(c => c.Title == "Windows Store Apps");
            if (chapter != null)
            {
                chapter.Number = 32;
                chapter.Title = "Windows Apps";
                await client.PutAsync(Addresses.BooksApi + chapter.Id, chapter);
                WriteLine($"updated chapter {chapter.Title}");
            }

            WriteLine();
        }
        private static async Task ReadChaptersAsync()
        {
            WriteLine(nameof(ReadChaptersAsync));
            var client = new BookChapterClient(Addresses.BaseAddress);
            IEnumerable<BookChapter> chapters = await client.GetAllAsync(Addresses.BooksApi);

            foreach (BookChapter chapter in chapters)
            {
                WriteLine(chapter.Title);
            }
            WriteLine();
        }
 private static async Task ReadChapterAsync()
 {
     WriteLine(nameof(ReadChapterAsync));
     var client = new BookChapterClient(Addresses.BaseAddress);
     var chapters = await client.GetAllAsync(Addresses.BooksApi);
     Guid id = chapters.First().Id;
     BookChapter chapter = await client.GetAsync(Addresses.BooksApi + id);
     WriteLine($"{chapter.Number} {chapter.Title}");
     WriteLine();
 }
        private static async Task RemoveChapterAsync()
        {
            WriteLine(nameof(RemoveChapterAsync));
            var client = new BookChapterClient(Addresses.BaseAddress);
            var chapters = await client.GetAllAsync(Addresses.BooksApi);
            var chapter = chapters.SingleOrDefault(c => c.Title == "ASP.NET Web Forms");
            if (chapter != null)
            {
                await client.DeleteAsync(Addresses.BooksApi + chapter.Id);
                WriteLine($"removed chapter {chapter.Title}");
            }

            WriteLine();
        }