Beispiel #1
0
        public void HistorcialTransfers(List <TransferHistory> transfers) // Used for menu option #2 // Still need to figure out return type.
        {
            // Do I need to check premission for spefic user's right to access transfers below?

            List <int> validID = new List <int>();

            // View your past transfers
            Console.WriteLine("-------------------------------------------\n" +
                              "Transfers\nID\t\t\tFrom/To\t\t\tAmount\n" +
                              "-------------------------------------------\n");
            foreach (TransferHistory transfer in transfers)
            {
                Console.WriteLine($"{transfer.TransferID}        {transfer.Direction}: {transfer.Username}      $ {transfer.Amount}");
                validID.Add(transfer.TransferID);
            }
            Console.WriteLine("---------\n" +
                              "Please enter transfer ID to view details (0 to cancel): ");
            // TransferHistory has TransferID, Username, Direction, & Amount
            //Transfer Details
            int subMenuSelection = -1;

            while (subMenuSelection != 0)
            {
                if (!int.TryParse(Console.ReadLine(), out subMenuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (validID.Contains(subMenuSelection))
                {
                    APIService      service = new APIService();
                    TransferDetails details = service.GetTransferDetails(subMenuSelection);
                    PrintTransferDetails(details);


                    //Show Transfer details
                    //Console.WriteLine("--------------------------------------------\n" +
                    //    "Transfer Details\n" +
                    //    "--------------------------------------------\n" +
                    //    $"Id: {details.ID}\n" +
                    //    $"From: {details.FromUser}\n" +
                    //    $"To: {details.ToUser}\n" +
                    //    $"Type: {details.Type}\n" + // Send or Request
                    //    $"Status: {details.Status}\n" + // Pending, Approved, Rejected
                    //    $"Amount: ${details.Amount}");
                }
                else if (subMenuSelection == 0)
                {
                    return;
                }
            }
        }
Beispiel #2
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    decimal balance = api.GetBalance();
                    if (balance >= 0)
                    {
                        Console.WriteLine($"Your account balance is: ${balance}");
                    }
                }
                else if (menuSelection == 2)
                {
                    List <Transfer> transferHistory = api.GetTransfers();

                    if (transferHistory != null && transferHistory.Count > 0)
                    {
                        consoleService.PrintTransfer(transferHistory);
                    }
                    Console.WriteLine($"Please enter transfer ID to view details (0 to cancel):");
                    if (!int.TryParse(Console.ReadLine(), out int transferSelection))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    if (transferSelection > 0)
                    {
                        Transfer transferDetails = api.GetTransferDetails(transferSelection);
                        consoleService.PrintTransferDetails(transferDetails);
                    }
                    else if (transferSelection == 0)
                    {
                        MenuSelection();
                    }

                    // Pulls list with all transfers relating to user THEN hase menu to look at details of each transfer  (5 & 6 From sample Screen)
                }
                else if (menuSelection == 3)
                {
                    // Is part of optional use cases ( Step 8 on ReadMe )
                }
                else if (menuSelection == 4)
                {
                    List <Users> users = api.GetUsers();
                    if (users != null && users.Count > 0)
                    {
                        consoleService.PrintUsers(users);
                    }

                    Console.WriteLine("Enter ID of user you are sending to(0 to cancel):");

                    if (!int.TryParse(Console.ReadLine(), out int userSelection))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }

                    Console.WriteLine("Enter amount: ");

                    if (!decimal.TryParse(Console.ReadLine(), out decimal amountToSend))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    Transfer transfer = new Transfer
                    {
                        TransferTypeId   = 2,
                        TransferStatusId = 2,
                        AccountFrom      = UserService.GetUserId(),
                        AccountTo        = userSelection,
                        Amount           = amountToSend
                    };

                    api.UpdateUserBalance(transfer);
                    api.UpdateRecieverBalance(transfer);

                    if (api.TransferRequest(transfer))
                    {
                        Console.WriteLine("Ya boi got his money");
                    }
                    else
                    {
                        Console.WriteLine("YOU ARE A FAILURE!");
                    }
                }
                else if (menuSelection == 5)
                {
                    // Is part of option use cases ( Step 7 on the ReadMe )
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }