/// <summary> /// Returns a string of books available by category id, amount must be > 0 of the book. /// Also checks if the user's session is active. Then also returns out bool if user is inactve, and string error message /// </summary> /// <param name="userInput"></param> /// <param name="userId"></param> /// <param name="userIsInactive"></param> /// <param name="errorMsgOut"></param> /// <returns>String with results</returns> internal string GetBooksAvailableByCategoryId(int userInput, int userId, out bool userIsInactive, out string errorMsgOut) { userIsInactive = false; errorMsgOut = ""; if (!IsSessionActive(userId, out string errorMsgIn)) { userIsInactive = true; errorMsgOut = errorMsgIn; return(""); } else { string results = "Results below\n"; var list = webAPI.GetAvailableBooks(userInput); if (list != null) { foreach (Book b in list) { results += $"Id: {b.Id}, Title: {b.Title}, Author: {b.Author}, Amount avaible: {b.Amount}\n"; } return(results); } else { errorMsgOut = "Could not load books by cat id"; Debug.WriteLine("Get avaible books by cat id was null"); return(""); } } }
/// <summary> /// Uses all book categories to fetch all books in each category /// </summary> /// <returns></returns> public List <Books> GetAllBooks() { var listOfBooks = new List <Books>(); WebbShopAPI api = new WebbShopAPI(); var listOfCategories = api.GetCategories().ToList(); if (listOfCategories != null) { foreach (var category in listOfCategories) { listOfBooks.AddRange(api.GetAvailableBooks(category.ID).ToList()); } return(listOfBooks); } return(new List <Books>()); }
/// <summary> /// Runs a test-scenario /// </summary> public static void Run() { var api = new WebbShopAPI(); Console.Write("Logged in as: "); int userId = api.Login("TestCustomer", "Codic2021"); Console.WriteLine(userId); //--------------------------------------------------- Console.WriteLine("Searching all categories: "); var listOfCategories = api.GetCategories(); if (listOfCategories.Count > 0) { foreach (var category in listOfCategories) { Console.WriteLine(category.Genere); } } //--------------------------------------------------- Console.WriteLine("Searching all categories with \"or\"-keyword: "); listOfCategories = api.GetCategories("or"); if (listOfCategories.Count > 0) { foreach (var category in listOfCategories) { Console.WriteLine(category.Genere); } } //--------------------------------------------------- Console.WriteLine("Searching for all books with category \"Horror\": "); var listOfBooks = api.GetCategories(2); if (listOfBooks.Count > 0) { foreach (var book in listOfBooks) { Console.WriteLine(book.Title); } } var respons = api.Ping(userId); if (respons.Length > 0) { Console.WriteLine(respons); } //--------------------------------------------------- Console.WriteLine("Searching for all available books with category \"Horror\": "); var listOfAvailableBooks = api.GetAvailableBooks(2); foreach (var book in listOfAvailableBooks) { Console.WriteLine($"{book.Title}, Amount: {book.Amount}"); } //--------------------------------------------------- Console.WriteLine("Information around all books with genere \"Horror\""); var description = api.GetBook(4); Console.WriteLine(description); //--------------------------------------------------- Console.WriteLine("Searching for books matching search word \"shi\""); listOfBooks = api.GetBooks("shi"); foreach (var book in listOfBooks) { Console.WriteLine(book.Title); } respons = api.Ping(userId); if (respons.Length > 0) { Console.WriteLine(respons); } //--------------------------------------------------- Console.WriteLine("Searching for books matching Author \"Stephen King\""); listOfBooks = api.GetAuthor("Stephen King"); foreach (var book in listOfBooks) { Console.WriteLine(book.Title); } //--------------------------------------------------- Console.WriteLine("Selected book to purchase: \"Doctor Sleep\""); var succeed = api.BuyBook(userId, 2); if (succeed) { Console.WriteLine("Purchase made"); } //--------------------------------------------------- api.Logout(userId); }