예제 #1
0
        /// <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();
        }
예제 #2
0
        /// <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("");
                }
            }
        }
예제 #3
0
        /// <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);
        }