/// <summary> /// Allows you to view details for a specific book /// </summary> /// <param name="bookId"></param> public void ViewDetails(int bookId) { WebbShopAPI api = new WebbShopAPI(); var bookDetails = api.GetBook(bookId); if (bookDetails != string.Empty) { BookViews.DisplayDetails(bookDetails); return; } MessageViews.DisplayErrorMessage(); }
/// <summary> /// Returns string of information about the book provided by bookId from the parameters /// 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="bookId"></param> /// <param name="userId"></param> /// <param name="userIsInactive"></param> /// <param name="errorMsgOut"></param> /// <returns>String with results</returns> internal string GetInfoOfBookById(int bookId, 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 book = webAPI.GetBook(bookId); if (book != null) { if (book.Category != null) { results += $"Title: {book.Title}\nAuthor: {book.Author}\nPrice: {book.Price}\nAmount in stock: {book.Amount}\nCategory: {book.Category.Category}\n"; return(results); } else { results += $"Title: {book.Title}\nAuthor: {book.Author}\nPrice: {book.Price}\nAmount in stock: {book.Amount}\nCategory: No category added to book\n"; return(results); } } else { errorMsgOut = "Could not load book by book id"; Debug.WriteLine("Book was null"); return(""); } } }
/// <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); }