Ejemplo n.º 1
0
        static void ConfirmBookingFlow()
        {
            BookingServiceProvider bookingService = new BookingServiceProvider(loggedInUser);
            List <Booking>         bookingsMade   = bookingService.UsersBookingsGenerator();

            foreach (Booking display in bookingsMade)
            {
                AttributeDisplayHelper.DisplayAttributes <Booking>(display);
            }
            Console.WriteLine("Enter Booking ID");
            string bookingID = Console.ReadLine();

            Console.WriteLine("Enter a response (1 to accept and 2 to reject)");
            int response = Convert.ToInt32(Console.ReadLine());

            response = response % 2;
            response = response == 0 ? 2 : response;
            try
            {
                bookingService.ConfirmBooking(response, bookingID);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 2
0
        static void PaymentFlow()
        {
            BookingServiceProvider bookingService = new BookingServiceProvider(loggedInUser);
            WalletServiceProvider  walletService  = new WalletServiceProvider(loggedInUser);
            List <Booking>         Completed      = bookingService.ViewCompletedRides();

            if (Completed.ToArray().Length == 0)
            {
                Console.WriteLine("No trips made so far!");
                Menu();
            }
            else
            {
                List <Booking>       SortedBookings    = Completed.OrderByDescending(o => o.DateCreated).ToList();
                Repository <Booking> bookingDataAccess = new Repository <Booking>();
                Console.WriteLine("Your last ride from " + SortedBookings.ElementAt(0).StartPoint + " to " + SortedBookings.ElementAt(0).EndPoint + " amounts to Rs. " + SortedBookings.ElementAt(0).Price);
                if (walletService.IsFundSufficient(SortedBookings.ElementAt(0).Price))
                {
                    decimal LeftMoney = walletService.DeductWalletFund(SortedBookings.ElementAt(0).Price);
                    bookingDataAccess.Remove(SortedBookings.ElementAt(0));
                    SortedBookings.ElementAt(0).IsPaid = true;
                    bookingDataAccess.Add(SortedBookings.ElementAt(0));
                    Console.WriteLine("Money left is Rs. " + LeftMoney);
                }
                else
                {
                    Console.WriteLine("Wallet money not sufficient");
                    Console.WriteLine("Redirecting to Top Up!");
                    TopUpWalletFlow();
                }
            }
        }
Ejemplo n.º 3
0
        static void MakeBookingFlow()
        {
            BookingServiceProvider bookingService  = new BookingServiceProvider(loggedInUser);
            OfferServiceProvider   offerService    = new OfferServiceProvider(loggedInUser);
            List <Offer>           availableOffers = offerService.ViewAllOffersOtherThanUser();

            if (availableOffers.ToArray().Length != 0)
            {
                foreach (var offer in availableOffers)
                {
                    AttributeDisplayHelper.DisplayAttributes <Offer>(offer);
                }
                Console.WriteLine("Enter offer ID");
                string OfferID = Console.ReadLine();
                try
                {
                    bookingService.MakeBooking(OfferID);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
            else
            {
                Console.WriteLine("No offers made by any user");
            }
        }
Ejemplo n.º 4
0
        static void ViewDebtsFlow()
        {
            BookingServiceProvider bookingService = new BookingServiceProvider(loggedInUser);
            List <Booking>         DebtedBookings = bookingService.ViewDebtedBookings();

            foreach (Booking booking in DebtedBookings)
            {
                AttributeDisplayHelper.DisplayAttributes <Booking>(booking);
            }
        }
Ejemplo n.º 5
0
        static void RideHistoryFlow()
        {
            BookingServiceProvider bookingService = new BookingServiceProvider(loggedInUser);
            List <Booking>         completed      = bookingService.ViewCompletedRides();

            foreach (Booking display in completed)
            {
                AttributeDisplayHelper.DisplayAttributes <Booking>(display);
            }
        }
Ejemplo n.º 6
0
        static void ViewBookingsFlow()
        {
            BookingServiceProvider bookingService   = new BookingServiceProvider(loggedInUser);
            List <Booking>         bookingToDisplay = bookingService.ViewBookings();

            foreach (Booking display in bookingToDisplay)
            {
                AttributeDisplayHelper.DisplayAttributes <Booking>(display);
            }
        }
Ejemplo n.º 7
0
        static void CreateOfferFlow()
        {
            OfferServiceProvider   offerService   = new OfferServiceProvider(loggedInUser);
            BookingServiceProvider bookingService = new BookingServiceProvider(loggedInUser);

            if (bookingService.IsBookingPending(loggedInUser))
            {
                Console.WriteLine("Please clear pending booking");
                ConfirmBookingFlow();
            }
            else
            {
                Console.WriteLine("Determine a cost per km");

                int costPerKm = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Decide a starting point for the ride");

                string startPoint = Console.ReadLine();
                Console.WriteLine("Decide upto 3 via points (Seperate the points with a space)");

                string viaPoints = Console.ReadLine();
                if (viaPoints.Split(' ').Length > 3)
                {
                    CreateOfferFlow();
                }
                Console.WriteLine("Decide an ending point");

                string EndPoint = Console.ReadLine();
                Console.WriteLine("Enter max number of people");

                int maxPeople = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Enter the car you are using");
                string carModel = Console.ReadLine();
                offerService.CreateOffer(startPoint, viaPoints, EndPoint, costPerKm, maxPeople, carModel);
            }
        }
Ejemplo n.º 8
0
        static void Menu()
        {
            Console.Clear();
            Console.WriteLine("Logged in as " + loggedInUser);
            Console.WriteLine("Please choose an option");
            Console.WriteLine("1. Create an offer");
            Console.WriteLine("2. Make a booking");
            Console.WriteLine("3. View all offers");
            if (sessionUser.BookingIDs.ToArray().Length == 0)
            {
                Console.WriteLine("4. View all bookings (No bookings made)");
            }
            else
            {
                int numberBookings = sessionUser.BookingIDs.ToArray().Length;
                Console.WriteLine("4. View all " + numberBookings + " bookings ");
            }
            BookingServiceProvider bookingService  = new BookingServiceProvider(loggedInUser);
            List <Booking>         pendingBookings = bookingService.GetPendingBookings();

            if (pendingBookings.ToArray().Length == 0)
            {
                Console.WriteLine("5. Confirm a booking (No bookings to confirm)");
            }
            else
            {
                Console.WriteLine("5. You have " + pendingBookings.ToArray().Length + "bookings to confirm");
            }

            Console.WriteLine("6. Ride History");
            Console.WriteLine("7. Top Up Wallet");
            Console.WriteLine("8. Payment");
            Console.WriteLine("9. Show Debts");
            Console.WriteLine("10. Logout");
            int userInput = Convert.ToInt32(Console.ReadLine());

            switch (userInput)
            {
            case 1:
                CreateOfferFlow();
                break;

            case 2:
                MakeBookingFlow();
                break;

            case 3:
                ViewOffersFlow();
                break;

            case 4:
                ViewBookingsFlow();
                break;

            case 5:
                ConfirmBookingFlow();
                break;

            case 6:
                RideHistoryFlow();
                break;

            case 7:
                TopUpWalletFlow();
                break;

            case 8:
                PaymentFlow();
                break;

            case 9:
                ViewDebtsFlow();
                break;

            case 10:
                Console.WriteLine("Logging out..");
                loggedInUser = "";
                sessionUser  = null;
                break;
            }
        }