public void ListAllTransfers()
        {
            RestRequest request = new RestRequest(API_Base_URL + "transactions");
            IRestResponse <List <Transfer> > response = client.Get <List <Transfer> >(request);
            List <Transfer> result = new List <Transfer>();

            result = response.Data;
            foreach (Transfer transfer in result)
            {
                if (transfer.ToAccountID == UserService.GetUserId())
                {
                    Console.WriteLine($"{transfer.TransferID}       From:{GetUsernameByID(transfer.FromAccountID)}      {transfer.TransferAmount:C}");
                }
                else
                {
                    Console.WriteLine($"{transfer.TransferID}      To:{GetUsernameByID(transfer.ToAccountID)}       {transfer.TransferAmount:C}");
                }
            }
        }
        public Transfer PromptForTransferData()
        {
            Transfer transfer = new Transfer();

            transfer.AccountFrom = UserService.GetUserId();
            transfer.StatusId    = 1;
            transfer.TypeId      = 2;

            int     accountTo   = -1;
            decimal amount      = -1;
            bool    isGoodInput = false;

            while (!isGoodInput || accountTo < 0)
            {
                Console.Write("Enter User ID you wish to transfer to: ");
                isGoodInput = int.TryParse(Console.ReadLine(), out accountTo);

                if (isGoodInput && accountTo > 0)
                {
                    transfer.AccountTo = accountTo;
                }
                else
                {
                    Console.WriteLine("Invalid input. Only input an existing User ID number.");
                }
            }

            while (!isGoodInput || amount < 0)
            {
                Console.Write("Enter the amount you wish to transfer to " + accountTo + ": ");
                isGoodInput = decimal.TryParse(Console.ReadLine(), out amount);

                if (isGoodInput && amount > 0)
                {
                    transfer.Amount = amount;
                }
                else
                {
                    Console.WriteLine("Invalid input. Only input a valid dollar amount.");
                }
            }
            return(transfer);
        }
Esempio n. 3
0
        public Transfer SendMoney(int toUserId, decimal sentMoney)
        {
            if (LoggedIn)
            {
                Transfer transfer = new Transfer();
                transfer.AccountFrom      = UserService.GetUserId();
                transfer.AccountTo        = toUserId;
                transfer.Amount           = sentMoney;
                transfer.TransferStatusId = 2;
                transfer.TransferTypeId   = 2;

                RestRequest request = new RestRequest($"{API_TRANSFER_URL}/sends");
                request.AddJsonBody(transfer);

                authClient.Authenticator = new JwtAuthenticator(UserService.GetToken());

                IRestResponse <Transfer> response = authClient.Post <Transfer>(request);

                if (response.ResponseStatus != ResponseStatus.Completed)
                {
                    //response not received
                    Console.WriteLine("An error occurred communicating with the server.");
                    return(null);
                }
                else if (!response.IsSuccessful)
                {
                    //response non-2xx
                    Console.WriteLine("An error response was received from the server. The status code is " + (int)response.StatusCode);
                    return(null);
                }
                else
                {
                    //success
                    return(response.Data);
                }
            }
            else
            {
                Console.WriteLine("You are not logged in");
                return(null);
            }
        }
Esempio n. 4
0
        private static List <Transfer> PrintTransferList()
        {
            Console.WriteLine("\n-------------------------------------------\nTransfers");
            Console.WriteLine(String.Format("{0, 0}\t|  {1,-18}  {2,2} ", "ID", "FROM/TO", "|  Amount"));
            Console.WriteLine("-------------------------------------------");
            List <Transfer> t = transferServices.GetTransfers();

            foreach (Transfer transfer in t)
            {
                if (transfer.UserFromId == UserService.GetUserId())
                {
                    Console.WriteLine(String.Format("{0, 0}\t|  {1,-18}  {2,2:C} ", transfer.TransferId, "To: " + transfer.UserNameTo, "|  " + transfer.Amount.ToString("C2")));
                }
                else if (transfer.UserToId == UserService.GetUserId())
                {
                    Console.WriteLine(String.Format("{0, 0}\t|  {1,-18}  {2,2:C} ", transfer.TransferId, "From: " + transfer.UserNameFrom, "|  " + transfer.Amount.ToString("C2")));
                }
            }
            return(t);
        }
Esempio n. 5
0
        private static void PrintTransfers(List <Transfer> allTransfers)
        {
            Console.Clear();
            Console.WriteLine("----------------------------------------------");
            Console.WriteLine("Transfer");
            Console.WriteLine("IDs               From/To               Amount");
            Console.WriteLine("----------------------------------------------");
            Console.WriteLine();

            if (allTransfers.Count == 0)
            {
                Console.WriteLine("There are no transfers associated with this User");
                Console.WriteLine();
            }
            else
            {
                foreach (Transfer trans in allTransfers)
                {
                    if (trans.account_To_ID == UserService.GetUserId())
                    {
                        string id     = $"Id: {trans.transfer_ID}";
                        string name   = $"From: {trans.account_From_UserName}";
                        string amount = $" {trans.AmountToTransfer:C2}";


                        Console.WriteLine(String.Format("{0,-9} |   {1,-22} | {2,6} ", id, name, amount));
                    }
                    else
                    {
                        string id     = $"Id: {trans.transfer_ID}";
                        string name   = $"To: {trans.account_To_UserName}";
                        string amount = $" {trans.AmountToTransfer:C2}";

                        Console.WriteLine(String.Format("{0,-9} |   {1,-22} | {2,6}", id, name, amount));
                    }
                }
            }
            Console.WriteLine("----------------------------------------------");
            Console.WriteLine();
            Console.Write("Please enter the Id of which you would like to view the details (0 to exit): ");
        }
Esempio n. 6
0
        private static void Transaction()
        {
            Account  account   = new Account();
            Transfer transfers = new Transfer();

            try
            {
                int recipient = CLIHelper.GetInteger("Enter id of user you are trying to send to: ");
                account = api.GetAccounts(recipient);

                if (recipient == 0 || account == null)
                {
                    MenuSelection();
                }
                else
                {
                    decimal amount = CLIHelper.GetDecimal("Enter amount: ");

                    if (amount > api.GetBalance().Balance)
                    {
                        Console.WriteLine("Insufficient funds. Please try again.");
                        Transaction();
                    }
                    else
                    {
                        Account userAccount = new Account();
                        int     id          = UserService.GetUserId();
                        transfers.AccountFrom = id;
                        transfers.accountTo   = recipient;
                        transfers.Amount      = amount;
                        api.Transactions(transfers);
                        api.UpdateBalace(transfers);
                        Console.WriteLine("Your transfer has been approved!");
                        MenuSelection();
                    }
                }
            }catch (Exception e)
            {
            }
        }
Esempio n. 7
0
        public Transfer ValidateTransferDetailsChoice(List <Transfer> transferList, bool request)
        {
            Dictionary <int, Transfer> transferIdAndObject = new Dictionary <int, Transfer>();

            string transferStatus = request ? "approve/reject" : "view details";

            foreach (Transfer transfer in transferList)
            {
                if (request)
                {
                    if (transfer.transfer_status == "Pending" && UserService.GetUserId() != transfer.to_account)
                    {
                        transferIdAndObject[transfer.transferId] = transfer;
                    }
                }
                else
                {
                    transferIdAndObject[transfer.transferId] = transfer;
                }
            }

            while (true)
            {
                Console.WriteLine("Please enter transfer ID to " + transferStatus + " (0 to cancel): ");
                if (int.TryParse(Console.ReadLine(), out int transferId))
                {
                    if (transferId == 0)
                    {
                        return(null);
                    }
                    if (transferIdAndObject.ContainsKey(transferId))
                    {
                        return(transferIdAndObject[transferId]);
                    }

                    Console.WriteLine("*** Not a valid option ***");
                }
            }
        }
Esempio n. 8
0
        // View your past transfers
        public List <Transfer> GetListOfTransfers()
        {
            RestRequest request = new RestRequest(API_BASE_URL + "transfer/all");

            client.Authenticator = new JwtAuthenticator(UserService.GetToken());
            IRestResponse <List <Transfer> > response = client.Get <List <Transfer> >(request);

            if (response.ResponseStatus != ResponseStatus.Completed || !response.IsSuccessful)
            {
                ProcessErrorResponse(response);
            }
            else
            {
                foreach (Transfer t in response.Data)
                {
                    t.AccountFrom = UserService.GetUserId();
                    t.AccountTo   = UserService.GetUserId();
                }
            }

            return(response.Data);
        }
        public void DisplayUsers()
        {
            RestRequest request = new RestRequest(API_Base_URL + "users");
            IRestResponse <Dictionary <int, string> > response = client.Get <Dictionary <int, string> >(request);
            Dictionary <int, string> result = new Dictionary <int, string>();

            result = response.Data;
            int myID = UserService.GetUserId();

            foreach (KeyValuePair <int, string> entry in result)
            {
                if (entry.Key == myID)
                {
                    //TODO: format (padding)
                    Console.WriteLine($"{entry.Key}            {entry.Value} (*YOU*)");
                }
                else
                {
                    Console.WriteLine($"{entry.Key}            {entry.Value}");
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Prompts for a UserId from list (Printed previously).
        /// </summary>
        /// <param name="list"></param>
        /// <param name="action"></param> String to print in prompt Expected values are "Send to" or "Request from"
        /// <returns>Returns the ID as an int</returns>
        public int PromptForUserId(List <UserDTO> list, string action)
        {
            bool exists = false;
            int  result = -1;

            Console.WriteLine("");
            Console.Write("Please enter ID you wish to " + action + "(0 to cancel): ");
            if (!int.TryParse(Console.ReadLine(), out int actionId))
            {
                Console.WriteLine("Invalid input. Only input a number.");
                return(result);
            }
            foreach (UserDTO user in list)
            {
                if (user.UserId == actionId)
                {
                    result = user.AccountNumber;
                    if (actionId == UserService.GetUserId())
                    {
                        Console.WriteLine("You can't " + action + " yourself.");
                        result = -1;
                    }
                    exists = true;
                    break;
                }
            }
            if (actionId == 0)
            {
                Console.WriteLine("Returning to main menu...\n");
                result = actionId;
            }
            else if (!exists)
            {
                Console.WriteLine("Account does not exist please try again.");
                return(result);
            }

            return(result);
        }
Esempio n. 11
0
        public void TransferFunds(int recipientId, decimal amount)
        {
            Transfer t = new Transfer();

            t.AccountFrom    = UserService.GetUserId();
            t.AccountTo      = recipientId;
            t.Amount         = amount;
            t.TransferTypeId = 2;
            RestRequest request = new RestRequest(API_BASE_URL + "transfer");

            client.Authenticator = new JwtAuthenticator(UserService.GetToken());
            request.AddJsonBody(t);
            IRestResponse response = client.Post(request);

            if (response.ResponseStatus != ResponseStatus.Completed || !response.IsSuccessful)
            {
                ProcessErrorResponse(response);
            }
            else
            {
                Console.WriteLine("Funds transferred successfully");
            }
        }
Esempio n. 12
0
        public Transfer Transfer(int userIdTo, decimal amount)
        {
            Transfer transfer = new Transfer();

            transfer.AccountFrom      = UserService.GetUserId();
            transfer.AccountTo        = userIdTo;
            transfer.Amount           = amount;
            transfer.TransferStatusId = 2;
            transfer.TransferTypeId   = 2;

            RestRequest request = new RestRequest(API_BASE_URL + "transfers");

            request.AddJsonBody(transfer);

            client.Authenticator = new JwtAuthenticator(UserService.GetToken());

            IRestResponse <Transfer> response = client.Put <Transfer>(request);

            if (response.ResponseStatus != ResponseStatus.Completed)
            {
                throw new Exception("Error occurred - unable to reach server.");
            }
            if (!response.IsSuccessful)
            {
                if (response.StatusCode == HttpStatusCode.Unauthorized)
                {
                    throw new Exception("Authorization is required, please log in");
                }
                if (response.StatusCode == HttpStatusCode.Forbidden)
                {
                    throw new Exception("You do not have permission");
                }
                throw new Exception($"Error occurred: {response.StatusCode} ({(int)response.StatusCode})");
            }
            return(response.Data);
        }
Esempio n. 13
0
        public void WriteTransferList(List <API_Transfer> transfers)
        {
            int selection = -1;

            while (selection != 0)
            {
                Console.WriteLine("-------------------------------------");
                Console.WriteLine("Transfers");
                Console.WriteLine("ID\t \tFrom/To\t \tAmount");
                Console.WriteLine("-------------------------------------");
                foreach (API_Transfer transfer in transfers)
                {
                    if (transfer.UserFromID == UserService.GetUserId())
                    {
                        Console.WriteLine($"{transfer.TransferID}\t \tTo: {transfer.UsernameTo}\t${transfer.TransferAmount}\r\n");
                    }
                    else if (transfer.UserFromID != UserService.GetUserId())
                    {
                        Console.WriteLine($"{transfer.TransferID}\t \tFrom: {transfer.UsernameFrom}\t${transfer.TransferAmount}\r\n");
                    }
                }
                selection = 0;
            }
        }
        public void WriteTransferList(List <API_Transfer> transfers)
        {
            int selection = -1;

            while (selection != 0)
            {
                Console.WriteLine("-------------------------------------");
                Console.WriteLine("Transfers");
                Console.WriteLine("ID        From/To      Amount");
                Console.WriteLine("-------------------------------------");
                foreach (API_Transfer transfer in transfers)
                {
                    if (transfer.userFromID == UserService.GetUserId())
                    {
                        Console.WriteLine($"{transfer.transferID} To: {transfer.usernameTo} ${transfer.transferAmount}");
                    }
                    else if (transfer.userFromID != UserService.GetUserId())
                    {
                        Console.WriteLine($"{transfer.transferID} From: {transfer.usernameFrom} ${transfer.transferAmount}");
                    }
                }
                break;
            }
        }
Esempio n. 15
0
        public void TransferMoney(int userToId, decimal amount)
        {
            Transfer t = new Transfer();

            t.TransferTypeId   = 2; //send
            t.TransferStatusId = 2; //approved
            t.UserFromId       = UserService.GetUserId();
            t.UserToId         = userToId;
            t.Amount           = amount;

            RestClient  client  = new RestClient();
            RestRequest request = new RestRequest(API_BASE_URL + "transfer/");

            client.Authenticator = new JwtAuthenticator(UserService.GetToken());
            request.AddJsonBody(t);

            IRestResponse response = client.Post(request);

            if (response.ResponseStatus != ResponseStatus.Completed)
            {
                Console.WriteLine("An error occurred communicating with the server.");
            }

            else if (!response.IsSuccessful)
            {
                //Console.WriteLine("An error response was received from the server. The status code is " + (int)response.StatusCode + response.Content);
                if ((int)response.StatusCode == 400)
                {
                    Console.WriteLine("An error response was received from the server. Can't input a NEGATIVE NUMBER.");
                }
                else if ((int)response.StatusCode == 404)
                {
                    Console.WriteLine("An error response was received from the server. INVALID USER ID.");
                }
            }
        }
Esempio n. 16
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: ");

                menuSelection = CLIHelper.GetNumberInRange(0, 6);

                if (menuSelection == 1)
                {
                    Account account = apiService.GetAccount();
                    if (account != null)
                    {
                        Console.WriteLine($"Your current account balance is: {account.Balance.ToString("C2")}");
                    }
                }
                else if (menuSelection == 2)
                {
                    List <TransferWithDetails> transferHistory = apiService.GetTransferHistory();
                    var allTransferIDs = new List <int>();
                    allTransferIDs.Add(0);
                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("Transfer IDs         From/To         Amount");
                    Console.WriteLine("-------------------------------------------");
                    foreach (var item in transferHistory)
                    {
                        if (item.TransferId < 10)
                        {
                            if (item.FromUser == UserService.GetUsername())
                            {
                                Console.WriteLine($"0{item.TransferId}              To: {item.ToUser}             {item.Amount}");
                            }
                            else
                            {
                                Console.WriteLine($"0{item.TransferId}              From: {item.FromUser}             {item.Amount}");
                            }
                        }
                        else
                        {
                            if (item.FromUser == UserService.GetUsername())
                            {
                                Console.WriteLine($"{item.TransferId}              To: {item.ToUser}             {item.Amount}");
                            }
                            else
                            {
                                Console.WriteLine($"{item.TransferId}              From: {item.FromUser}             {item.Amount}");
                            }
                        }

                        allTransferIDs.Add(item.TransferId);
                    }
                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("Please enter transfer ID to view details (0 to cancel):");
                    int transferId = CLIHelper.GetNumberInList(allTransferIDs);

                    if (transferId != 0)
                    {
                        TransferWithDetails transfer = apiService.GetTransferById(transferId);

                        Console.WriteLine("-------------------------------------------");
                        Console.WriteLine("Transfer details");
                        Console.WriteLine("-------------------------------------------");
                        Console.WriteLine($"ID: {transfer.TransferId}");
                        Console.WriteLine($"From: {transfer.FromUser}");
                        Console.WriteLine($"To: {transfer.ToUser}");
                        Console.WriteLine($"Type: {transfer.TransferType}");
                        Console.WriteLine($"Status: {transfer.TransferStatus}");
                        Console.WriteLine($"Amount: {transfer.Amount}");
                    }
                    else
                    {
                        Console.WriteLine("Returning to the main menu.");
                    }
                }
                else if (menuSelection == 3)
                {
                }
                else if (menuSelection == 4)
                {
                    List <API_User> users         = apiService.ListUsers();  // list users to select from
                    var             allUserIDs    = new List <int>();        // puts all users in list
                    int             currentUserId = UserService.GetUserId(); // gets current user id
                    users.RemoveAt(currentUserId - 1);                       // remove current user from list

                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("User IDs     Names");
                    Console.WriteLine("-------------------------------------------");
                    foreach (var item in users) // display users
                    {
                        Console.WriteLine($"{item.UserId}           {item.Username}");
                        allUserIDs.Add(item.UserId);
                    }
                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("Enter the ID of user you are sending to (0 to cancel):");
                    int receiverId = CLIHelper.GetNumberInList(allUserIDs); // make sure selection is in range

                    if (receiverId != 0)
                    {
                        Console.WriteLine("Enter amount to send:");
                        decimal             amount = CLIHelper.GetAmount();                    // in range method
                        TransferWithDetails result = apiService.SendMoney(receiverId, amount); // getting details from sendmoney & storing in "result"

                        if (result != null)
                        { // displaying transfer details
                            Console.WriteLine("Transfer successful! :)");
                            Console.WriteLine("-------------------------------------------");
                            Console.WriteLine("Transfer Details");
                            Console.WriteLine("-------------------------------------------");
                            Console.WriteLine($"ID: {result.TransferId}");
                            Console.WriteLine($"From: {result.FromUser}");
                            Console.WriteLine($"To: {result.ToUser}");
                            Console.WriteLine($"Type: {result.TransferType}");
                            Console.WriteLine($"Status: {result.TransferStatus}");
                            Console.WriteLine($"Amount: {result.Amount}");
                        }
                        else
                        {
                            Console.WriteLine("Transfer not completed");
                        }
                    }
                }
                else if (menuSelection == 5)
                {
                    Console.WriteLine("Feature unavailable. Returning to main menu."); // not implemented
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Thank you for using TEnmo. Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Esempio n. 17
0
        private static void MenuSelection()
        {
            int userID        = UserService.GetUserId();
            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 = accountService.GetAccount(userID).Balance;
                    Console.WriteLine($"Your current account balance is: ${balance}");
                }
                else if (menuSelection == 2)
                {
                    int newSelection;
                    List <API_Transfer> transfers = transferService.ListTransfers(userID);
                    Console.WriteLine("--------------------------------------");
                    Console.WriteLine("Transfers");
                    Console.WriteLine("ID\tFrom/To\tAmount");
                    Console.WriteLine("--------------------------------------");
                    foreach (API_Transfer transfer in transfers)
                    {
                        if (transfer.AccountFrom == userID)
                        {
                            Console.WriteLine($"{transfer.TransferID}\tTo:\t{transfer.UserToName}\t$\t{transfer.Amount}");
                        }
                        else
                        {
                            Console.WriteLine($"{transfer.TransferID}\tFrom:\t{transfer.UserFromName}\t$\t{transfer.Amount}");
                        }
                    }
                    Console.WriteLine("--------------------------------------");
                    Console.WriteLine("Please enter transfer ID to view details (0 to cancel): ");
                    while (!int.TryParse(Console.ReadLine(), out newSelection))
                    {
                        Console.WriteLine("Invalid input please enter only a valid number.");
                    }
                    if (newSelection != 0)
                    {
                        API_Transfer transfer = transferService.GetTransfer(newSelection);
                        Console.WriteLine("--------------------------------------");
                        Console.WriteLine("Transfer Details");
                        Console.WriteLine("--------------------------------------");
                        Console.WriteLine($"Id: {transfer.TransferID}");
                        Console.WriteLine($"From:  {transfer.UserFromName}");
                        Console.WriteLine($"To:  {transfer.UserToName}");
                        Console.WriteLine($"Type: {transfer.TransferType}");
                        Console.WriteLine($"Status:  {transfer.TransferStatus}");
                        Console.WriteLine($"Amount:  ${transfer.Amount}");
                        Console.WriteLine("--------------------------------------");
                    }
                }
                else if (menuSelection == 3)
                {
                    int newSelection;
                    List <API_Transfer> transfers = transferService.ListPendingTransfers(userID);
                    Console.WriteLine("--------------------------------------");
                    Console.WriteLine("Pending Transfers");
                    Console.WriteLine("ID\tTo\tAmount");
                    Console.WriteLine("--------------------------------------");
                    foreach (API_Transfer transfer in transfers)
                    {
                        Console.WriteLine($"{transfer.TransferID}\t{transfer.UserToName}\t${transfer.Amount}");
                        Console.WriteLine("--------------------------------------");
                    }
                    Console.WriteLine("Please enter transfer ID to approve/reject (0 to cancel): ");
                    while (!int.TryParse(Console.ReadLine(), out newSelection))
                    {
                        Console.WriteLine("Invalid input please enter only a valid number.");
                    }
                    if (newSelection != 0)
                    {
                        int          approveOrReject;
                        API_Transfer transfer = transferService.GetTransfer(newSelection);
                        Console.WriteLine("1: Approve");
                        Console.WriteLine("2: Reject");
                        Console.WriteLine("0: Don't approve or reject");
                        Console.WriteLine("--------------------------------------");
                        Console.WriteLine("Please choose an option: ");
                        while (!int.TryParse(Console.ReadLine(), out approveOrReject))
                        {
                            Console.WriteLine("Invalid input please enter only a valid number.");
                        }
                        if (approveOrReject == 1)
                        {
                            API_Account accountFrom = accountService.GetAccount(transfer.AccountFrom);
                            if (transfer.Amount < accountFrom.Balance)
                            {
                                transfer             = transferService.UpdateTransfer(transfer, 2);
                                accountFrom.Balance -= transfer.Amount;
                                accountService.UpdateBalance(accountFrom);

                                API_Account accountTo = accountService.GetAccount(transfer.AccountTo);
                                accountTo.Balance += transfer.Amount;
                                accountService.UpdateBalance(accountTo);
                                Console.WriteLine("Transfer approved!");
                            }
                            else
                            {
                                Console.WriteLine("You do not have enough money to approve this transfer");
                            }
                        }
                        else if (approveOrReject == 2)
                        {
                            transfer = transferService.UpdateTransfer(transfer, 3);
                            Console.WriteLine("Transfer rejected!");
                        }
                    }
                }
                else if (menuSelection == 4)
                {
                    API_Account  accountFrom = accountService.GetAccount(userID);
                    API_Transfer transfer    = consoleService.PromptForUserToTransfer(userID, accountFrom.Balance);

                    if (transfer != null)
                    {
                        transferService.SendTransfer(transfer);

                        accountFrom.Balance -= transfer.Amount;
                        accountService.UpdateBalance(accountFrom);

                        API_Account accountTo = accountService.GetAccount(transfer.AccountTo);
                        accountTo.Balance += transfer.Amount;
                        accountService.UpdateBalance(accountTo);
                        Console.WriteLine("Transfer successful");
                    }
                }
                else if (menuSelection == 5)
                {
                    API_Account  accountTo = accountService.GetAccount(userID);
                    API_Transfer transfer  = consoleService.PromptForUserToRequestTransfer(userID);

                    if (transfer != null)
                    {
                        transferService.SendTransfer(transfer);
                        Console.WriteLine("Transfer pending");
                    }
                }
                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);
                }
            }
        }
Esempio n. 18
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.");
                    menuSelection = -1;
                }
                else if (menuSelection == 1)
                {
                    string output;
                    IRestResponse <decimal> response = accountService.GetBalance();
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        output = $"Balance: {response.Data:c}";
                    }
                    else
                    {
                        output = "Unable to reach server.";
                    }
                    Console.WriteLine(output);
                }
                else if (menuSelection == 2)
                {
                    //view your past transfers
                    List <Transfer> transferList = accountService.GetPreviousTransfers();
                    if (transferList != null)
                    {
                        List <ReturnUser> userList = accountService.GetListOfUsers(); //get username
                        if (userList != null)
                        {
                            bool pending = false;
                            consoleService.PrintPreviousTransfers(transferList, userList, pending);
                            Transfer selectedTransfer = consoleService.ValidateTransferDetailsChoice(transferList, pending);
                            if (selectedTransfer != null)
                            {
                                consoleService.PrintTransferDetails(selectedTransfer, userList);
                            }
                            else
                            {
                                Console.WriteLine("Couldn't get transfer details.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Couldn't retreive User List while getting past transfers.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Couldn't get list of past transfers.");
                    }
                }
                else if (menuSelection == 3)
                {
                    //view your pending requests
                    List <Transfer> transferList = accountService.GetPreviousTransfers();
                    if (transferList != null)
                    {
                        List <ReturnUser> userList = accountService.GetListOfUsers();
                        if (userList != null)
                        {
                            bool pending = true;
                            consoleService.PrintPreviousTransfers(transferList, userList, pending);
                            Transfer selectedTransfer = consoleService.ValidateTransferDetailsChoice(transferList, pending);
                            if (selectedTransfer != null)
                            {
                                IRestResponse <decimal> response = accountService.GetBalance();
                                if (response.StatusCode != System.Net.HttpStatusCode.OK)
                                {
                                    Console.WriteLine("Unable to reach server.");
                                }
                                decimal balance    = response.Data;
                                int     userChoice = consoleService.ValidateApproveOrReject(selectedTransfer.amount, balance);

                                bool approved = userChoice == 1 ? true : false;

                                if (userChoice == 1 || userChoice == 2)
                                {
                                    //approve
                                    accountService.UpdateTransfer(selectedTransfer, approved);
                                }
                            }
                            else
                            {
                                Console.WriteLine("Couldn't get transfer details.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Couldn't retreive User List while getting past transfers.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Couldn't get list of past transfers.");
                    }
                }
                else if (menuSelection == 4)
                {
                    //sending TE Bucks
                    IRestResponse <decimal> response = accountService.GetBalance();
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        decimal balance = response.Data;
                        //GetUserFromListOfUsers(list of users)
                        List <ReturnUser> userList = accountService.GetListOfUsers();
                        if (userList.Count != 0)
                        {
                            //pass the user list to Console Service(listOfUsers)  => This displays the list of users, prompts of a selection, returns the selected user
                            ReturnUser transferToThisUser = consoleService.GetValidUserFromList(userList, true);

                            if (transferToThisUser != null)
                            {
                                //verifytransferamount(fromUser)
                                decimal transferAmount = consoleService.GetValidTransferAmount(balance);
                                if (transferAmount != 0)
                                {
                                    //send te bucks to specified user
                                    Transfer transfer = consoleService.PopulateTransfer("Send", "Approved", transferToThisUser.UserId, UserService.GetUserId(), transferAmount);
                                    accountService.MakeTransfer(transfer);
                                }
                            }
                            else
                            {
                                Console.WriteLine("Unable to retreive User from List of Users while making a transfer");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Unable to get User List while making a transfer.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Unable to get balance.");
                    }
                }
                else if (menuSelection == 5)
                {
                    //request TE bucks
                    IRestResponse <decimal> response = accountService.GetBalance();
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        //GetUserFromListOfUsers(list of users)
                        List <ReturnUser> userList = accountService.GetListOfUsers();
                        if (userList.Count != 0)
                        {
                            //pass the user list to Console Service(listOfUsers)  => This displays the list of users, prompts of a selection, returns the selected user
                            ReturnUser requestFromThisUser = consoleService.GetValidUserFromList(userList, false);

                            if (requestFromThisUser != null)
                            {
                                //verifytransferamount(fromUser)
                                decimal transferAmount = consoleService.GetValidTransferAmount();
                                if (transferAmount != 0)
                                {
                                    //send te bucks to specified user
                                    Transfer transfer = consoleService.PopulateTransfer("Request", "Pending", UserService.GetUserId(), requestFromThisUser.UserId, transferAmount);
                                    accountService.MakeTransfer(transfer);
                                }
                            }
                            else
                            {
                                Console.WriteLine("Unable to retreive User from List of Users while making a request");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Unable to get User List while making a request.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Unable to get balance.");
                    }
                }
                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);
                }
            }
        }
Esempio n. 19
0
        private static void RequestMoney()
        {
            int finish = -1;

            do
            {
                List <Account> allUsers = transferService.GetAllUsers(UserService.GetUserId());
                PrintUsers(allUsers);
                Console.Write("Please enter ID of user you wish to request money from: ");
                int fromAccount = -1;
                if (!int.TryParse(Console.ReadLine(), out fromAccount))
                {
                    Console.Clear();
                    Console.WriteLine();
                    Console.WriteLine("Invalid entry.  Please enter a number. ");
                    SomethingWentWrong();
                    Console.Clear();
                }
                if (fromAccount > 0)
                {
                    if (!IsValidUserId(allUsers, fromAccount))
                    {
                        Console.Clear();
                        Console.WriteLine();
                        Console.WriteLine("Invalid Id. Please enter correct ID number. ");
                        SomethingWentWrong();
                    }
                    Console.Write("Please enter amount to request: $");
                    decimal amount = -1;
                    if (!decimal.TryParse(Console.ReadLine(), out amount))
                    {
                        Console.Clear();
                        Console.WriteLine();
                        Console.WriteLine("Invalid entry. Please input numbers only.");
                        SomethingWentWrong();
                        fromAccount = -1;
                    }
                    Transfer newTransfer = new Transfer();
                    newTransfer.account_From_ID  = fromAccount;
                    newTransfer.account_To_ID    = UserService.GetUserId();
                    newTransfer.AmountToTransfer = amount;

                    if (amount > 0)
                    {
                        if (transferService.RequestMoney(newTransfer))
                        {
                            Console.WriteLine();
                            Console.WriteLine("--------------------------------------------------------------");
                            Console.WriteLine("Transfer Posted.  ");
                            Console.WriteLine("--------------------------------------------------------------");
                            System.Threading.Thread.Sleep(3000);
                            Console.Clear();
                            fromAccount = -1;
                            finish++;
                        }
                        else
                        {
                            Console.WriteLine("Insufficient Funds.");
                            System.Threading.Thread.Sleep(2000);
                            fromAccount = -1;
                        }
                    }
                }
            } while (finish != 0);
        }
Esempio n. 20
0
        private static void ViewTransfers()
        {
            Console.Clear();
            List <ReturnTransfer> transfers = transferService.GetTransfers(UserService.GetUserId());

            if (transfers == null || transfers.Count == 0)
            {
                Console.WriteLine("Sorry we couldn't find any transfers");
                Console.WriteLine("Press enter to return");
                Console.ReadLine();
                return;
            }
            Console.WriteLine("-------------------------------------------");
            Console.WriteLine("Transfers");
            Console.Write("ID");
            Console.Write("From/To".PadLeft(17));
            Console.WriteLine("Amount".PadLeft(17));
            Console.WriteLine("-------------------------------------------");

            foreach (ReturnTransfer transfer in transfers)
            {
                if (transfer.Transfer_status_id == 2)
                {
                    Console.Write($"{transfer.Transfer_id}".PadRight(10));
                    if (transfer.FromName == UserService.GetUserName())
                    {
                        Console.Write("To: ".PadRight(6));
                        Console.Write($"{transfer.ToName}");
                        Console.WriteLine($"{transfer.Amount:C2}".PadLeft(15));
                    }
                    else
                    {
                        Console.Write("From: ");
                        Console.Write($"{transfer.FromName}");
                        Console.WriteLine($"{transfer.Amount:C2}".PadLeft(15));
                    }
                }
            }
            Console.WriteLine("---------");
            bool validTransfer = false;

            do
            {
                Console.Write("Please enter the transfer ID to view details (0 to cancel): ");
                string userInput = Console.ReadLine().Trim();

                if (userInput == "0")
                {
                    Console.Clear();
                    return;
                }
                try
                {
                    ReturnTransfer returnTransfer = transferService.GetTransfer(Convert.ToInt32(userInput));
                    if (returnTransfer.Transfer_id != 0)
                    {
                        Console.WriteLine("-------------------------------------------");
                        Console.WriteLine("Transfer Details");
                        Console.WriteLine("-------------------------------------------");
                        Console.WriteLine($"Id: {returnTransfer.Transfer_id}");
                        Console.WriteLine($"From: {returnTransfer.FromName}");
                        Console.WriteLine($"To: {returnTransfer.ToName}");
                        Console.WriteLine($"Type: {returnTransfer.TransferType}");
                        Console.WriteLine($"Status: {returnTransfer.TransferStatus}");
                        Console.WriteLine($"Amount: {returnTransfer.Amount:C2}");
                        Console.WriteLine("-------------------------------------------");
                        Console.WriteLine("Please press enter to return");
                        Console.ReadLine();
                        Console.Clear();
                        validTransfer = true;
                    }
                    else
                    {
                        Console.WriteLine("Please select a valid transfer.");
                    }
                }
                catch
                {
                    Console.WriteLine("Please select a valid transfer");
                }
            } while (!validTransfer);
        }
Esempio n. 21
0
        private static void GetPendingTransfers()
        {
            bool transferSelected = false;

            do
            {
                Console.Clear();
                List <ReturnTransfer> transfers = transferService.GetTransfers(UserService.GetUserId());
                if (transfers == null || transfers.Count == 0)
                {
                    Console.WriteLine("Sorry we couldn't find any transfers");
                    Console.WriteLine("Press enter to return");
                    Console.ReadLine();
                    return;
                }
                Console.WriteLine("-------------------------------------------");
                Console.WriteLine("Transfers");
                Console.Write("ID");
                Console.Write("To".PadLeft(17));
                Console.WriteLine("Amount".PadLeft(17));
                Console.WriteLine("-------------------------------------------");

                foreach (ReturnTransfer transfer in transfers)
                {
                    if (transfer.Transfer_status_id == 1 && transfer.Account_from == UserService.GetUserId())
                    {
                        Console.Write($"{transfer.Transfer_id}".PadRight(10));
                        Console.Write("To: ".PadRight(6));
                        Console.Write($"{transfer.ToName}");
                        Console.WriteLine($"{transfer.Amount:C2}".PadLeft(15));
                    }
                }
                Console.WriteLine("---------");
                Console.Write("Please enter transfer ID to approve/reject (0 to cancel): ");
                string approveRejectTransferChoice = Console.ReadLine().Trim();
                try
                {
                    if (Convert.ToInt32(approveRejectTransferChoice) == 0)
                    {
                        return;
                    }
                    ReturnTransfer approveRejectTransfer = transferService.GetTransfer(Convert.ToInt32(approveRejectTransferChoice));
                    if (approveRejectTransfer.Transfer_id != 0 && approveRejectTransfer.Transfer_status_id == 1 &&
                        approveRejectTransfer.Account_from == UserService.GetUserId() && approveRejectTransfer.Amount
                        <= accountService.GetBalance(UserService.GetUserId()))
                    {
                        Console.WriteLine("1: Approve");
                        Console.WriteLine("2: Reject");
                        Console.WriteLine("3: Don't approve or reject");
                        Console.WriteLine("---------");
                        Console.Write("Please choose an option: ");
                        string approveReject = Console.ReadLine();
                        switch (approveReject)
                        {
                        case "1":
                            ;
                            approveRejectTransfer.Transfer_status_id = 2;
                            transferService.UpdateTransferStatus(approveRejectTransfer);
                            transferSelected = true;
                            Console.WriteLine("Transfer Approved");
                            break;

                        case "2":
                            approveRejectTransfer.Transfer_status_id = 3;
                            transferService.UpdateTransferStatus(approveRejectTransfer);
                            transferSelected = true;
                            Console.WriteLine("Transfer Rejected");
                            break;

                        case "3":
                            transferSelected = true;
                            return;

                        default:
                            return;
                        }
                    }
                    else if (approveRejectTransfer.Amount > accountService.GetBalance(UserService.GetUserId()))
                    {
                        Console.WriteLine("You don't have enough funds to fulfill this request.");
                    }
                    else
                    {
                        Console.WriteLine("Please choose a valid transfer");
                    }
                }
                catch
                {
                    Console.WriteLine("Please enter a valid option");
                }
            } while (!transferSelected);
        }
Esempio n. 22
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)
                {
                    Account accounts = api.GetBalance();
                    Console.Write("Your current balance is: $" + accounts.Balance + ".");
                }
                else if (menuSelection == 2)
                {
                    Transfer        transaction = new Transfer();
                    int             id          = UserService.GetUserId();
                    List <Transfer> transfers   = api.GetTransactionsByID(id);
                    foreach (Transfer transfer in transfers)
                    {
                        Console.WriteLine(transfer.AccountFrom + transfer.AccountTo + transfer.Amount + transfer.TransferId);
                    }
                }
                else if (menuSelection == 3)
                {
                }
                else if (menuSelection == 4)
                {
                    List <User> newUser = api.GetUsers();
                    foreach (User users in newUser)
                    {
                        Console.WriteLine(users.UserId.ToString() + " " + users.Username);
                    }
                    Program.Transaction();
                }
                else if (menuSelection == 5)
                {
                }
                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);
                }
            }
        }
Esempio n. 23
0
        private static void SendMoney()
        {
            bool   selectedUser = false;
            string sendToUser;

            do
            {
                List <OtherUser> otherUsers = accountService.RetrieveUsers();
                Console.Clear();
                Console.WriteLine("-------------------------------------------");
                Console.WriteLine("Users");
                Console.Write("ID");
                Console.WriteLine("Name".PadLeft(15));
                Console.WriteLine("-------------------------------------------");
                foreach (OtherUser user in otherUsers)
                {
                    if (user.User_Id != UserService.GetUserId())
                    {
                        Console.Write($"{user.User_Id}");
                        Console.WriteLine($"{user.Username}".PadLeft(15));
                    }
                }
                Console.WriteLine("---------\n");
                Console.Write("Enter ID of the user you are sending to (0 to cancel): ");
                sendToUser = Console.ReadLine().Trim();
                if (Convert.ToInt32(sendToUser) == 0)
                {
                    Console.Clear();
                    return;
                }
                try
                {
                    if (accountService.GetBalance(Convert.ToInt32(sendToUser)) == -1)
                    {
                        Console.WriteLine("Please enter a valid user");
                    }
                    else
                    {
                        selectedUser = true;
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Please select a valid user ID");
                }
            } while (!selectedUser);
            bool moneySent = false;

            do
            {
                Console.Write("Enter the amount to send: ");
                string moneyToSend = Console.ReadLine().Trim();
                try
                {
                    decimal convertedMoneyToSend = Convert.ToDecimal(moneyToSend);
                    if (convertedMoneyToSend < 0 || convertedMoneyToSend == 0)
                    {
                        Console.WriteLine("Please enter a postive number");
                    }
                    else
                    {
                        if (convertedMoneyToSend > accountService.GetBalance(UserService.GetUserId()))
                        {
                            Console.WriteLine("Sorry, you don't have enough funds.");
                        }
                        else
                        {
                            Transfer transfer = new Transfer(2, 2, UserService.GetUserId(), Convert.ToInt32(sendToUser), convertedMoneyToSend);
                            if (transferService.SendMoney(transfer))
                            {
                                Console.WriteLine("Successfully sent, thank you for using TEnmo!");
                                Console.WriteLine("Please press enter to return");
                                Console.ReadLine();
                                moneySent = true;
                                Console.Clear();
                                return;
                            }
                            else
                            {
                                Console.WriteLine("Something went wrong, please press enter to try again");
                                Console.ReadLine();
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Sorry, that's not a valid entry, please press enter to try again");
                    Console.ReadLine();
                }
            } while (!moneySent);
        }
Esempio n. 24
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.Clear();
                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"); //Bonus
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");           //Bonus
                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.");
                    menuSelection = -1;
                }
                else if (menuSelection == 1)
                {
                    // View your current balance
                    try
                    {
                        Account account = apiService.GetBalance();

                        Console.WriteLine($"Current balance: {account.Balance:C}");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 2)
                {
                    // View your past transfers
                    try
                    {
                        List <Transfer> transfers = apiService.GetTransfers();
                        foreach (Transfer transfer in transfers)
                        {
                            Console.WriteLine(transfer);
                        }
                        int      transferId     = consoleService.PromptForTransferID("pick a transfer");
                        Transfer singleTransfer = apiService.GetTransferById(transferId);
                        Console.WriteLine(singleTransfer.DetailsForTransfer());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 3)
                {
                    // View your pending requests
                    List <Transfer> transfers = apiService.GetTransfers();

                    foreach (Transfer transfer in transfers)
                    {
                        bool isReqeust     = transfer.TransferType == TransferType.Request;
                        bool isPending     = transfer.TransferStatus == TransferStatus.Pending;
                        bool isFromAccount = transfer.AccountFrom.UserId == UserService.GetUserId();

                        if (isReqeust && isPending && isFromAccount)
                        {
                            Console.WriteLine(transfer.ReqeustTransfer());
                        }
                    }

                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 4)
                {
                    // Send TE bucks
                    try
                    {
                        Console.Clear();
                        //Arrange
                        int                          toUserId = 0;
                        decimal                      amount   = -1;
                        List <ReturnUser>            users    = apiService.GetAllUsers();
                        Dictionary <int, ReturnUser> userMenu = new Dictionary <int, ReturnUser>();
                        // making a dictionary for menu options and using int key for access to ReturnUsers
                        int key = 1;
                        foreach (ReturnUser user in users)
                        {
                            userMenu.Add(key, user);
                            key++;
                        }

                        foreach (var option in userMenu)
                        {
                            Console.WriteLine($"{option.Key}: {option.Value.Username}");
                        }

                        // Choose a user and amount
                        bool isValid = false;
                        while (!isValid)
                        {
                            toUserId = consoleService.PromptForUserID("transfer TE bucks to");
                            if (userMenu.ContainsKey(toUserId))
                            {
                                isValid = true;
                            }
                            else
                            {
                                Console.WriteLine("Please enter a valid user Id.");
                            }
                        }

                        while (amount == -1)
                        {
                            amount = consoleService.PromtForAmount("How much would you like to transfer?");
                        }
                        if (amount == 0)
                        {
                            continue;
                        }

                        // Enter in transfer data
                        int      fromUserId  = UserService.GetUserId();
                        Transfer newTransfer = new Transfer(toUserId, fromUserId, amount);
                        // Send it
                        newTransfer = apiService.SendTEBucks(newTransfer);
                        Console.WriteLine(newTransfer.ToString());
                    }
                    catch (Exception x)
                    {
                        Console.WriteLine(x.Message);
                    }
                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 5)
                {
                    //TODO: Change list to dictionary
                    //TODO: Loop through dictionary and pick what you want to do with the request
                    // Request TE bucks
                    try
                    {
                        Console.Clear();
                        //Arrange
                        int                          fromUserId = 0;
                        decimal                      amount     = -1;
                        List <ReturnUser>            users      = apiService.GetAllUsers();
                        Dictionary <int, ReturnUser> userMenu   = new Dictionary <int, ReturnUser>();
                        // making a dictionary for menu options and using int key for access to ReturnUsers
                        int key = 1;
                        foreach (ReturnUser user in users)
                        {
                            userMenu.Add(key, user);
                            key++;
                        }

                        foreach (var option in userMenu)
                        {
                            Console.WriteLine($"{option.Key}: {option.Value.Username}");
                        }

                        // Choose a user and amount
                        bool isValid = false;
                        while (!isValid)
                        {
                            fromUserId = consoleService.PromptForUserID("transfer TE bucks to");
                            if (userMenu.ContainsKey(fromUserId))
                            {
                                isValid = true;
                            }
                            else
                            {
                                Console.WriteLine("Please enter a valid user Id.");
                            }
                        }

                        while (amount == -1)
                        {
                            amount = consoleService.PromtForAmount("How much would you like to request?");
                        }
                        if (amount == 0)
                        {
                            continue;
                        }

                        // Enter in transfer data
                        int      toUserId    = UserService.GetUserId();
                        Transfer newTransfer = new Transfer(toUserId, fromUserId, amount);
                        // Send it
                        newTransfer = apiService.RequestTransfer(newTransfer);
                        Console.WriteLine(newTransfer.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }

                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 6)
                {
                    // Log in as different user
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    return;                               //return to entry point

                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Esempio n. 25
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)
                {
                    //Console.WriteLine(UserService.GetToken());
                    Console.Write("Your current account balance is: $");
                    Console.WriteLine(accountService.GetBalanceOfAccount(UserService.GetUserId()));

                    //Console.WriteLine(user.GetUserId());
                }
                else if (menuSelection == 2)
                {
                    int accountId = UserService.GetUserId();
                    List <TransferDetails> transfers = transferService.GetTransfers(accountId);
                    Console.WriteLine($"\n\nWhere did my money go? \nWe would all like to know. \nNow you can view below \nhow your dough got so low:");
                    Console.WriteLine($"------------------------------------------");
                    Console.WriteLine("\nTransfers \nID        From/To        Amount");
                    Console.WriteLine($"------------------------------------------");
                    foreach (TransferDetails tD in transfers)
                    {
                        Console.WriteLine($"{tD.ID}".PadRight(10) + $"To:  {tD.ToUser}".PadRight(17) + $"$ {tD.Amount}");
                    }
                    Console.WriteLine("\nWhat do IDs like to chase?... (press enter or you will never know)");
                    string nothing = Console.ReadLine();
                    Console.WriteLine("Their IDetails!\n... . . . . .  .  .  .   .   .   ");
                    Console.WriteLine("\nTo view the details from a transfer enter the ID number. To return to the main menu press 0.");
                    int userInput = int.Parse(Console.ReadLine());
                    if (userInput > 0)
                    {
                        transferService.GetTransfer(accountId, userInput);
                    }
                    else
                    {
                        Console.WriteLine("Sorry, that's not a valid transfer ID");
                    }
                }

                else if (menuSelection == 3)
                {
                }


                else if (menuSelection == 4)
                {
                    Console.WriteLine("Here is a list of Users and Ids available to send TEnmo Bucks to: ");
                    transferService.GetUsers();
                    Transfer transferAttempt = consoleService.PromptForTransferData();

                    if (transferAttempt == null || !transferAttempt.IsValid)
                    {
                        Console.WriteLine("Transfer failed - incorrect data entered.");
                    }

                    else
                    {
                        TransferDetails completedTransfer = transferService.TransferRequest(transferAttempt);
                        if (completedTransfer != null)
                        {
                            Console.WriteLine("Transfer successful.");
                            Console.WriteLine($"Transfer details: {completedTransfer.ToUser}, {completedTransfer.Amount} ");
                        }
                        else
                        {
                            Console.WriteLine("Transfer failed.");
                        }
                    }
                }


                else if (menuSelection == 5)
                {
                }


                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }

                else
                {
                    Console.WriteLine("Ok, come back with more munny soon!");
                    Environment.Exit(0);
                }
            }
        }
Esempio n. 26
0
        private static void RequestTransfer()
        {
            bool   selectedUser = false;
            string requestFromUser;

            do
            {
                List <OtherUser> otherUsers = accountService.RetrieveUsers();
                Console.Clear();
                Console.WriteLine("-------------------------------------------");
                Console.WriteLine("Users");
                Console.Write("ID");
                Console.WriteLine("Name".PadLeft(15));
                Console.WriteLine("-------------------------------------------");
                foreach (OtherUser user in otherUsers)
                {
                    if (user.User_Id != UserService.GetUserId())
                    {
                        Console.Write($"{user.User_Id}");
                        Console.WriteLine($"{user.Username}".PadLeft(15));
                    }
                }
                Console.WriteLine("---------\n");
                Console.Write("Enter ID of the user you are requesting from (0 to cancel): ");
                requestFromUser = Console.ReadLine().Trim();
                if (Convert.ToInt32(requestFromUser) == 0)
                {
                    Console.Clear();
                    return;
                }
                try
                {
                    if (accountService.GetBalance(Convert.ToInt32(requestFromUser)) == -1)
                    {
                        Console.WriteLine("Please enter a valid user");
                    }
                    else
                    {
                        selectedUser = true;
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Please select a valid user ID");
                }
            } while (!selectedUser);
            bool requestSent = false;

            do
            {
                Console.Write("Enter the amount to request: ");
                string moneyToSend = Console.ReadLine().Trim();
                try
                {
                    decimal convertedMoneyToSend = Convert.ToDecimal(moneyToSend);
                    if (convertedMoneyToSend < 0 || convertedMoneyToSend == 0)
                    {
                        Console.WriteLine("Please enter a postive number");
                    }
                    else
                    {
                        Transfer transfer = new Transfer(1, 1, Convert.ToInt32(requestFromUser), UserService.GetUserId(), convertedMoneyToSend);
                        if (transferService.SendMoney(transfer))
                        {
                            Console.WriteLine("Successfully requested, the user will need to accept before you can access the funds.");
                            Console.WriteLine("Please press enter to return");
                            Console.ReadLine();
                            requestSent = true;
                            Console.Clear();
                            return;
                        }
                        else
                        {
                            Console.WriteLine("Something went wrong, please press enter to try again");
                            Console.ReadLine();
                        }
                    }
                }
                catch
                {
                    Console.WriteLine("Sorry, that's not a valid entry, please press enter to try again");
                    Console.ReadLine();
                }
            } while (!requestSent);
        }
Esempio n. 27
0
        private static void MenuSelection()
        {
            AccountService accountService = new AccountService();
            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.");
                    menuSelection = -1;
                }
                else if (menuSelection == 1)
                {
                    Console.WriteLine($"\nYour current account balance is {accountService.GetAccountBalance():C}\n");
                }
                else if (menuSelection == 2)
                {
                    accountService.ListAllTransfers();
                }
                else if (menuSelection == 3)
                {
                    Console.WriteLine("Sorry, under construction!");
                    MenuSelection();
                }
                else if (menuSelection == 4)
                {
                    //TODO: format (padding)
                    Console.WriteLine("User ID      Username");
                    accountService.DisplayUsers();
                    Console.WriteLine("Please enter the ID of the user you'd like to transfer to:");
                    int toUserID = int.Parse(Console.ReadLine());   //hold toUserID variable
                    if (!accountService.ConfirmRecipient(toUserID)) //make sure the to_account_id exists
                    {
                        Console.WriteLine("\nSorry, that USER ID does not exist.\n");
                        //TODO: return user to this menu, not the main menu.
                        MenuSelection();
                    }
                    else if (toUserID == UserService.GetUserId())
                    {
                        Console.WriteLine("\nSorry, you cannot send money to yourself!\n");

                        MenuSelection();
                    }
                    Console.WriteLine("\nPlease enter the amount you would like to send:");
                    decimal amount = decimal.Parse(Console.ReadLine());  //make sure the from_account has enough funds and hold amount variable
                    if (accountService.GetAccountBalance() < amount)
                    {
                        Console.WriteLine("\nSorry, you don't have enough funds.\n");

                        MenuSelection();
                    }
                    Transfer newTransfer = new Transfer(UserService.GetUserId(), toUserID, amount);
                    accountService.CompleteTransfer(newTransfer);
                }
                else if (menuSelection == 5)
                {
                    Console.WriteLine("Sorry, under construction!");
                    MenuSelection();
                }
                else if (menuSelection == 6)
                {
                    // Log in as different user
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    return;                               //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Esempio n. 28
0
        private static void PendingTransfersMenu()
        {
            Console.Clear();
            Console.WriteLine("----------------------------------------------");
            Console.WriteLine("Transfer");
            Console.WriteLine("IDs               From                  Amount");
            Console.WriteLine("----------------------------------------------");
            Console.WriteLine();

            List <Transfer> allTransfers = transferService.GetAllTransfers(UserService.GetUserId());


            List <Transfer> myPendingTransfers = PrintPendingTransfers(allTransfers);

            if (myPendingTransfers.Count == 0)
            {
                Console.WriteLine("There are no pending transfers for this user.");
                Console.WriteLine("----------------------------------------------");
                System.Threading.Thread.Sleep(5000);
                Console.WriteLine();
                Console.Clear();
            }
            else
            {
                Console.WriteLine("----------------------------------------------");
                Console.WriteLine();
                Console.Write("Please enter the Id of the transfer you would like to view (0 to exit) : ");
                int transferToView = -1;
                if (!int.TryParse(Console.ReadLine(), out transferToView))
                {
                    Console.Clear();
                    Console.WriteLine();
                    SomethingWentWrong();
                }
                else if (transferToView > 0)
                {
                    PrintTransferDetails(myPendingTransfers, transferToView);

                    Console.Write("Would you like to Approve or Reject this transfer? (A/R or press enter to exit) :");
                    string proceed = Console.ReadLine().ToLower();

                    if (proceed == "a" || proceed == "approve")
                    {
                        bool success = transferService.ApproveTransfer(UserService.GetUserId(), transferToView);

                        if (success)
                        {
                            Console.WriteLine();
                            Console.WriteLine("--------------------------------------------------------------");
                            Console.WriteLine("Transfer Approved.  ");
                            Console.WriteLine("--------------------------------------------------------------");
                            System.Threading.Thread.Sleep(3000);
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine();
                            Console.WriteLine("--------------------------------------------------------------");
                            Console.WriteLine("Error .  ");
                            Console.WriteLine("--------------------------------------------------------------");
                            SomethingWentWrong();
                            System.Threading.Thread.Sleep(3000);
                            Console.Clear();
                        }
                    }
                    else if (proceed == "r" || proceed == "reject")
                    {
                        transferService.RejectTransfer(UserService.GetUserId(), transferToView);
                    }
                    else
                    {
                        Console.Clear();
                    }
                }
                else
                {
                    Console.Clear();
                }
            }
        }
Esempio n. 29
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)
                {
                    Console.WriteLine($"Your current account balance is: ${apiService.GetBalance()}");
                }
                else if (menuSelection == 2)
                {
                    List <API_Transfer> transfers = apiService.ListTransfers();
                    if (transfers != null && transfers.Count > 0)
                    {
                        consoleService.WriteTransferList(transfers);
                        int          id       = consoleService.TransferToDetail(transfers);
                        API_Transfer transfer = apiService.GetTransfer(id);
                        consoleService.GetTransferDetails(transfer);
                    }
                }
                else if (menuSelection == 3)
                {
                    List <API_Transfer> transfers = apiService.ListTransfers();
                    if (transfers != null && transfers.Count > 0)
                    {
                        consoleService.WritePendingTransferList(transfers);
                    }
                }
                else if (menuSelection == 4)
                {
                    List <API_User> users       = apiService.ListUsers();
                    int             userID      = UserService.GetUserId();
                    API_Account     accountFrom = apiService.GetAccount(userID);
                    if (users != null && users.Count > 0)
                    {
                        API_Transfer transfer = consoleService.StartTransfer(users);
                        if (transfer.TransferAmount > accountFrom.Balance)
                        {
                            Console.WriteLine("Insufficient Funds");
                        }
                        else
                        {
                            API_Transfer updatedTransfer = apiService.DoTransfer(transfer);
                            apiService.UpdateBalance(updatedTransfer);
                            Console.WriteLine("Amount has been transferred");
                        }
                    }
                }
                else if (menuSelection == 5)
                {
                    List <API_User> users = apiService.ListUsers();
                    if (users != null && users.Count > 0)
                    {
                        API_Transfer transfer = consoleService.RequestTransfer(users);
                        apiService.DoTransfer(transfer);
                        Console.WriteLine("Request Sent.");
                    }
                }
                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);
                }
            }
        }
Esempio n. 30
0
        private static void MenuSelection()
        {
            bool showBalance   = false;
            bool inMenu        = true;
            int  menuSelection = -1;

            while (inMenu)
            {
                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("---------");
                if (showBalance == true)
                {
                    decimal balance = accountService.GetBalance(UserService.GetUserId());
                    Console.WriteLine($"Your account balance is: {balance:C2}");
                }
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.Clear();
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    showBalance = true;
                    Console.Clear();
                }
                else if (menuSelection == 2)
                {
                    ViewTransfers();
                }
                else if (menuSelection == 3)
                {
                    GetPendingTransfers();
                }
                else if (menuSelection == 4)
                {
                    SendMoney();
                }
                else if (menuSelection == 5)
                {
                    RequestTransfer();
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else if (menuSelection == 0)
                {
                    Console.WriteLine("Goodbye!");
                    inMenu = false;
                    Environment.Exit(0);
                }
            }
        }