public void PrintTransfers(Dictionary <int, Transfer> transfers, API_User user)
 {
     Console.ForegroundColor = ConsoleColor.DarkYellow;
     Console.WriteLine(@"::::::::::: :::::::::      :::     ::::    :::  ::::::::  :::::::::: :::::::::: :::::::::   :::::::: ");
     Console.WriteLine(@"    :+:     :+:    :+:   :+: :+:   :+:+:   :+: :+:    :+: :+:        :+:        :+:    :+: :+:    :+:");
     Console.WriteLine(@"    +:+     +:+    +:+  +:+   +:+  :+:+:+  +:+ +:+        +:+        +:+        +:+    +:+ +:+       ");
     Console.WriteLine(@"    +#+     +#++:++#:  +#++:++#++: +#+ +:+ +#+ +#++:++#++ :#::+::#   +#++:++#   +#++:++#:  +#++:++#++");
     Console.WriteLine(@"    +#+     +#+    +#+ +#+     +#+ +#+  +#+#+#        +#+ +#+        +#+        +#+    +#+        +#+ ");
     Console.WriteLine(@"    #+#     #+#    #+# #+#     #+# #+#   #+#+# #+#    #+# #+#        #+#        #+#    #+# #+#    #+# ");
     Console.WriteLine(@"    ###     ###    ### ###     ### ###    ####  ########  ###        ########## ###    ###  ######## ");
     Console.WriteLine();
     Console.WriteLine();
     Console.ForegroundColor = ConsoleColor.Blue;
     Console.WriteLine("id    from/to   name    amount");
     foreach (KeyValuePair <int, Transfer> t in transfers)
     {
         Console.ForegroundColor = ConsoleColor.White;
         if (t.Value.AccountFrom.AccountId == user.UserId)
         {
             Console.WriteLine($"{t.Key}      -->      {t.Value.ToUsername}    ${t.Value.Amount} ");
         }
         else
         {
             Console.WriteLine($"{t.Key}      <--      {t.Value.FromUsername}    ${t.Value.Amount} ");
         }
     }
     Console.ForegroundColor = ConsoleColor.Blue;
 }
Exemplo n.º 2
0
 public ActionResult Edit(int Id, User user)
 {
     try
     {
         // TODO: Add update logic here
         if (Id > 0 && ModelState.IsValid)
         {
             user.SysUserID = Id;
             res            = API_User.SaveUser(user);
             if (res.Status)
             {
                 return(RedirectToAction("Index"));
             }
             else
             {
                 res.Data = user;
                 return(View(res));
             }
         }
         else
         {
             return(View(res));
         }
     }
     catch
     {
         return(View(res));
     }
 }
        public void TransferDetails(Transfer transfer, API_User user)
        {
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine("---");
            Console.WriteLine($"ID No. {transfer.TransferID}");
            Console.WriteLine($"FROM: {transfer.FromUsername}");
            Console.WriteLine($"TO: {transfer.ToUsername}");
            if (transfer.TransferTypeID == 1)
            {
                Console.WriteLine("TYPE: REQUEST");
            }
            else
            {
                Console.WriteLine("TYPE: SEND");
            }
            if (transfer.TransferStatusID == 1)
            {
                Console.WriteLine("STATUS: PENDING");
            }
            else if (transfer.TransferStatusID == 2)
            {
                Console.WriteLine("STATUS: APPROVED");
            }
            else
            {
                Console.WriteLine("STATUS: REJECTED");
            }
            Console.WriteLine($"AMOUNT: ${transfer.Amount}");
            Console.WriteLine($"---");

            Console.ForegroundColor = ConsoleColor.Blue;
        }
Exemplo n.º 4
0
        private MenuOptionResult Login()
        {
            API_User user = null;

            while (user == null)
            {
                LoginUser loginUser = new LoginUser();
                loginUser.Username = GetString("Username: "******"Login cancelled.");
                    return(MenuOptionResult.WaitAfterMenuSelection);
                }

                loginUser.Password = GetPasswordFromConsole("Password: "******"Username or password is not valid.");
                }
            }
            UserService.SetLogin(user);

            // User is logged in, show the main menu now.
            return(new MainMenu(api_url).Show());
        }
Exemplo n.º 5
0
        public API_User ActionRegister(Frontend_User f_User)
        {
            var      context = new API_DBDataContext(ConfigurationManager.ConnectionStrings["Connections string"].ConnectionString);
            API_User A       = new API_User();

            A.email = f_User.email;
            if (context.User.Where(p => p.email == f_User.email).Any())
            {
                throw new Exception();
            }
            else
            {
                A.name = f_User.email;
                A.GenerateAccesToken();
                var k = new User
                {
                    name          = A.name,
                    email         = f_User.email,
                    password_hash = f_User.password_hash
                };
                context.User.InsertOnSubmit(k);
                context.User.Context.SubmitChanges();
                return(A);
            }
        }
Exemplo n.º 6
0
        public void Run()
        {
            //Menu for login and registration
            while (true)
            {
                Console.WriteLine("Welcome to TEnmo!");
                Console.WriteLine("1: Login");
                Console.WriteLine("2: Register");
                Console.WriteLine("3: Exit");
                Console.Write("Please choose an option: ");

                int loginRegister = -1;

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

                    else if (loginRegister == 1)
                    {
                        LoginUser loginUser = PromptForLogin();
                        API_User  user      = authService.Login(loginUser);
                        if (user != null)
                        {
                            UserService.SetLogin(user);
                            MenuSelection();
                        }
                    }

                    else if (loginRegister == 2)
                    {
                        LoginUser registerUser = PromptForLogin();
                        bool      isRegistered = authService.Register(registerUser);
                        if (isRegistered)
                        {
                            Console.WriteLine("");
                            Console.WriteLine("Registration successful. You can now log in.");
                        }
                    }

                    else if (loginRegister == 3)
                    {
                        Console.WriteLine("Goodbye!");
                        Environment.Exit(0);
                    }

                    else
                    {
                        Console.WriteLine("Invalid selection.");
                    }
                }

                catch (Exception ex)
                {
                    Console.WriteLine("Error - " + ex.Message);
                }
            }
        }
Exemplo n.º 7
0
 public ActionResult Create(User user)
 {
     try
     {
         if (ModelState.IsValid)
         {
             // TODO: Add insert logic here
             res = API_User.SaveUser(user);
             if (res.Status)
             {
                 return(RedirectToAction("Index"));
             }
             else
             {
                 res.Data = user;
                 return(View(res));
             }
         }
         else
         {
             return(View(res));
         }
     }
     catch
     {
         return(View(res));
     }
 }
Exemplo n.º 8
0
        private MenuOptionResult Login()
        {
            LoginUser loginUser = new LoginUser();
            API_User  user      = null;
            string    ApiUrl    = "https://localhost:44315/";

            while (user == null)
            {
                //LoginUser loginUser = new LoginUser();
                loginUser.Username = GetString("Username: "******"Login cancelled.");
                    return(MenuOptionResult.WaitAfterMenuSelection);
                }

                loginUser.Password = GetPasswordFromConsole("Password: "******"Username or password is not valid.");
                }
            }
            UserService.SetLogin(user);

            // User is logged in, show the main menu now.
            return(new MainMenu(ApiUrl).Show()); //TODO UserService maybe add new constructor to menu
        }
Exemplo n.º 9
0
        private static void Run()
        {
            while (true)
            {
                int loginRegister = -1;
                while (loginRegister != 1 && loginRegister != 2)
                {
                    Console.Clear();
                    Console.WriteLine("Welcome to TEnmo!");
                    Console.WriteLine("1: Login");
                    Console.WriteLine("2: Register");
                    Console.WriteLine("0: Exit");
                    Console.Write("Please choose an option: ");

                    if (!int.TryParse(Console.ReadLine(), out loginRegister))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    else if (loginRegister == 0)
                    {
                        Environment.Exit(0);
                    }
                    else if (loginRegister == 1)
                    {
                        while (!UserService.IsLoggedIn()) //will keep looping until user is logged in
                        {
                            LoginUser loginUser = consoleService.PromptForLogin();
                            API_User  user      = authService.Login(loginUser);
                            if (user != null)
                            {
                                UserService.SetLogin(user);
                                apiService = new ApiService();
                            }
                        }
                    }
                    else if (loginRegister == 2)
                    {
                        bool isRegistered = false;
                        while (!isRegistered) //will keep looping until user is registered
                        {
                            LoginUser registerUser = consoleService.PromptForLogin();
                            isRegistered = authService.Register(registerUser);
                            if (isRegistered)
                            {
                                Console.WriteLine("");
                                Console.WriteLine("Registration successful. You can now log in.");
                                loginRegister = -1; //reset outer loop to allow choice for login
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("Invalid selection.");
                    }
                }

                MenuSelection();
            }
        }
Exemplo n.º 10
0
        // GET: QuestionStats
        public User_Stats GetUserStats(API_User _User)
        {
            User_Stats Res = new User_Stats(_User);

            Res.user_id = _User.id;
            Res.answers = Res.CollectStats(Res.user_id);
            return(Res);
        }
        public async Task <MessageReport> User_Login([FromBody] API_User_Login model)
        {
            var result = new MessageReport(false, "Có lỗi xảy ra");

            try
            {
                //Kiểm tra đúng hệ thống
                //if (model.KeyPass != ApiConfig.Key_System)
                //{
                //    result = new MessageReport(false, "Kết nối không hợp lệ");
                //    return await Task.FromResult(result);
                //}

                //Kiểm tra user tồn tại
                var user = await Task.FromResult(_UserService.GetByUserName(model.Username));

                if (user == null)
                {
                    result = new MessageReport(false, "Tài khoản không tồn tại");
                    return(await Task.FromResult(result));
                }

                //Kiểm tra khóa
                if (user.Active == false)
                {
                    result = new MessageReport(false, "Tài khoản bị khóa");
                    return(await Task.FromResult(result));
                }

                //Kiểm tra mk
                var pass = model.Password.PasswordHashed(user.PasswordSalat);
                if (user.Password != pass)
                {
                    result = new MessageReport(false, "Mật khẩu không khớp");
                    return(await Task.FromResult(result));
                }

                //Gán lại
                var cus = new API_User()
                {
                    UserId   = user.Id,
                    Username = user.Username,
                    Avatar   = user.UserAvatar ?? "",
                    Name     = user.Name
                };

                var token = ApiHelper.GenerateJSON_MobileToken(user.Id);

                result = new MessageReport(true, token);
            }
            catch (Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }


            return(await Task.FromResult(result));
        }
 public void PrintUsers(List <API_User> names, API_User user)
 {
     foreach (API_User name in names)
     {
         if (name.Username == user.Username)
         {
             continue;
         }
         Console.WriteLine($"{name.UserId} || {name.Username}");
     }
 }
Exemplo n.º 13
0
 private void HandleUserLogin()
 {
     while (!UserService.IsLoggedIn) //will keep looping until user is logged in
     {
         LoginUser loginUser = consoleService.PromptForLogin();
         API_User  user      = authService.Login(loginUser);
         if (user != null)
         {
             UserService.SetLogin(user);
         }
     }
 }
Exemplo n.º 14
0
 public ActionResult UsersGridPartial()
 {
     res1.DataList = API_User.GetAllUsers().DataList;
     if (Session[SessionNames.UserLayout] != null)
     {
         API_RefOptions.SaveGridLayout(new GridLayout("User", 0, (string)Session[SessionNames.UserLayout]));
     }
     else
     {
         Session[SessionNames.UserLayout] = API_RefOptions.GetSavedGridLayout("User", 0).ToString();
     }
     return(PartialView("_UsersGridPartial", res1));
 }
Exemplo n.º 15
0
        public void PostUserSubmission(API_User _user, int _question_id, int _answer_id)
        {
            var context    = new API_DBDataContext(ConfigurationManager.ConnectionStrings["Connections string"].ConnectionString);
            int answers_id = Convert.ToInt32(context.answers_to_questions.Where(p => p.answer_id == _answer_id).Where(p => p.question_id == _question_id).Select(p => p.Id).FirstOrDefault());
            var k          = new user_submission
            {
                user_id   = _user.id,
                answer_id = answers_id
            };

            context.user_submission.InsertOnSubmit(k);
            context.user_submission.Context.SubmitChanges();
        }
Exemplo n.º 16
0
        public void RequestTeBucksMenu(List <API_User> users)
        {
            bool done = false;

            while (!done)
            {
                int      selectedId   = PromptForUserID("requesting", "from");
                API_User selectedUser = users.Find(u => u.UserId == selectedId);
                if (selectedId == 0)
                {
                    done = true;
                }
                else if (selectedUser == null)
                {
                    Console.WriteLine("Please enter a valid selection or 0 to exit/cancel.");
                    done = true;
                }
                else
                {
                    Transfer       requestTransfer = new Transfer();
                    List <Account> ListOfAccounts  = accountsAPIService.AccountInfo();
                    requestTransfer.transferTypeId   = 1;
                    requestTransfer.transferStatusId = 1;
                    requestTransfer.accountFrom      = ListOfAccounts.Find(a => a.IsLoggedInUser == true).AccountID;
                    requestTransfer.accountTo        = ListOfAccounts.Find(a => a.UserID == selectedId).AccountID;
                    if (requestTransfer.accountFrom == requestTransfer.accountTo)
                    {
                        Console.WriteLine("Cannot request money from yourself. Please enter a valid user.");
                    }
                    else
                    {
                        requestTransfer.amount = PromptForMoneyAmount();
                        if (requestTransfer.amount != 0)
                        {
                            bool transferCreated = transfersAPIService.CreateTransfer(requestTransfer);
                            if (transferCreated)
                            {
                                Console.WriteLine($"Request sent to user {requestTransfer.accountTo} for {requestTransfer.amount} TE Bucks.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Invalid entry or entered zero for requested amount.");
                        }
                    }
                    done = true;
                }
            }
        }
Exemplo n.º 17
0
        public void TestGetBalance()
        {
            LoginUser user = new LoginUser();

            user.Username = "******";
            user.Password = "******";

            API_User api_user = authService.Login(user);

            UserService.SetLogin(api_user);

            decimal?result   = accountService.GetBalance(UserService.GetToken());
            decimal?expected = 1000;

            Assert.AreEqual(expected, result);
        }
        public void PrintRequests(Dictionary <int, Transfer> transfers, API_User user)
        {
            Console.ForegroundColor = ConsoleColor.DarkYellow;

            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("id       name     amount");
            foreach (KeyValuePair <int, Transfer> t in transfers)
            {
                if (t.Value.TransferStatusID == 1 && t.Value.AccountFrom.AccountId == user.UserId)
                {
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine($"{t.Key}       {t.Value.ToUsername}     ${t.Value.Amount} ");
                }
            }
            Console.ForegroundColor = ConsoleColor.Blue;
        }
Exemplo n.º 19
0
        public MainMenu(API_User user)
        {
            this.User = user;

            AddOption("View your current balance", ViewBalance)
            .AddOption("View your past transfers", ViewTransfers)
            .AddOption("View your pending requests", ViewRequests)
            .AddOption("Send TE bucks", SendTEBucks)
            .AddOption("Request TE bucks", RequestTEBucks)
            .AddOption("Log in as different user", Logout)
            .AddOption("Exit", Exit);

            Configure(cfg =>
            {
                cfg.ItemForegroundColor         = ConsoleColor.Blue;
                cfg.SelectedItemForegroundColor = ConsoleColor.White;
            });
        }
Exemplo n.º 20
0
        private void HandleUserLogin()
        {
            while (!UserService.IsLoggedIn) //will keep looping until user is logged in
            {
                Console.Clear();
                Console.WriteLine();
                Console.WriteLine("Welcome to TEnmo! Please login:");
                Console.WriteLine();

                LoginUser loginUser = consoleService.PromptForLogin();

                API_User user = authService.Login(loginUser);
                if (user != null)
                {
                    UserService.SetLogin(user);
                    this.accountService.UpdateToken(user.Token);
                    Console.Clear();

                    //will put the method to update token into the service class we create
                }
            }
        }
Exemplo n.º 21
0
        public API_User ActionLogin(Frontend_User f_User)
        {
            var      context       = new API_DBDataContext(ConfigurationManager.ConnectionStrings["Connections string"].ConnectionString);
            API_User A             = new API_User();
            string   email         = f_User.email;
            string   password_hash = f_User.password_hash;

            if (context.User.Where(p => p.email == email).Any())
            {
                var _user = context.User.Where(p => p.email == email).FirstOrDefault();
                A.id   = _user.Id;
                A.name = _user.name;
            }
            if (!A.ValidatePassword(f_User.password_hash))
            {
                throw new Exception();
            }
            else
            {
                A.GenerateAccesToken();
            }
            return(A);
        }
        public void Step2_LoginMethod()
        {
            // Arrange
            API_User expected = new API_User {
                Username = "******", Token = "abcdefgh123456789", Message = null
            };

            Mock <IRestClient> restClient = new Mock <IRestClient>();

            restClient.Setup(x => x.Execute <API_User>(It.IsAny <IRestRequest>(), Method.POST))
            .Returns(new RestResponse <API_User>
            {
                StatusCode     = HttpStatusCode.OK,
                Data           = expected,
                ResponseStatus = ResponseStatus.Completed
            });
            APIService apiService = new APIService(restClient.Object);

            // Act
            API_User actual = apiService.Login("test", "test");

            // Assert
            expected.Should().BeEquivalentTo(actual); // Uses FluentAssertions
        }
Exemplo n.º 23
0
 public static void SetLogin(API_User u)
 {
     user = u;
 }
Exemplo n.º 24
0
        //
        // GET: /User/Edit/5

        public ActionResult Edit(int Id)
        {
            res = API_User.GetUserAccount(Id);
            return(View(res));
        }
Exemplo n.º 25
0
        //
        // GET: /User/Delete/5

        public ActionResult Delete(int Id)
        {
            res = API_User.RemoveUserAccount(Id);
            return(RedirectToAction("Index"));
        }
Exemplo n.º 26
0
        //
        // GET: /User/Create

        public ActionResult Create()
        {
            res = new Response <User>();
            res = API_User.GetUserAccount(0);
            return(View(res));
        }
Exemplo n.º 27
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.");
                }
                switch (menuSelection)
                {
                case 1:
                    loggedInAccount = authService.GetAccount(loggedInUserId);
                    userBalance     = loggedInAccount.balance;
                    consoleService.PrintBalance(loggedInAccount);
                    break;

                case 2:
                    loggedInAccount = authService.GetAccount(loggedInUserId);
                    List <Data.Transfer> pastTransfers = authService.GetPastTransfers(loggedInAccount.accountId);
                    if (pastTransfers != null && pastTransfers.Count > 0)
                    {
                        consoleService.DisplayTransfers(pastTransfers);
                    }
                    Console.WriteLine("Please enter a transfer ID to view details(0 to cancel):");
                    int userInput = Convert.ToInt32(Console.ReadLine());

                    {
                        Data.Transfer transfer = authService.GetTransferDetails(userInput);
                        if (transfer != null)
                        {
                            consoleService.DisplayTransferDetails(transfer);
                        }
                    }
                    break;

                case 3:
                    break;

                case 4:
                    try
                    {
                        //print users to select recipient
                        List <API_User> users = authService.GetUsers();
                        consoleService.DisplayUsers(users);

                        //select user
                        Console.WriteLine("Input the UserId of the person who you want to send TEBucks:");
                        int      userId = Convert.ToInt32(Console.ReadLine());
                        API_User userTo = authService.GetUser(userId);

                        //input amount
                        Console.WriteLine($"Input the amount you want to send to {userTo.Username}:");
                        decimal amount = Convert.ToDecimal(Console.ReadLine());

                        //verify amount < account balance
                        amount = consoleService.VerifyAccountBalancePrompt(userBalance, amount, userTo.Username);
                        if (amount < 0)
                        {
                            break;
                        }
                        consoleService.DisplaySendTransfer(amount, userTo.Username);
                        //Confirm transfer is still wanted
                        Console.WriteLine("Confirm Transfer? Y/N");
                        string response = Console.ReadLine().ToLower();
                        if (response != "y")
                        {
                            break;
                        }
                        else
                        {
                            //create transfer (transfer contains (userIdFrom, userIdTo, amount, transfer type = 2)
                            Data.Account  accountFrom = authService.GetAccount(loggedInUserId);
                            Data.Account  accountTo   = authService.GetAccount(userTo.UserId);
                            Data.Transfer newTransfer = new Data.Transfer(2, 2, accountFrom.accountId, accountTo.accountId, amount);
                            if (newTransfer != null)
                            {
                                Data.Transfer addedTransfer = authService.CreateTransfer(newTransfer);
                                if (addedTransfer != null)
                                {
                                    //receiver balance increased by amount
                                    //sender balance decreased by amount
                                    accountFrom = authService.UpdateAccount(loggedInUserId, (accountFrom.balance - amount));
                                    accountTo   = authService.UpdateAccount(userTo.UserId, (accountTo.balance + amount));
                                    Console.WriteLine("Transfer Completed.");
                                }
                                else
                                {
                                    Console.WriteLine("There was a error completing your transfer.");
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("You entered an invalid Response. Please try again.");
                    }
                    break;

                case 5:
                    //print users to select user for request
                    //select user
                    //input amount requested (transfer contains (userIdFrom, userIdTo, amount) transfer type = 1
                    //transferStatus = Pending(1)
                    //userFrom approve/deny request
                    //verify amount < userFrom account balance
                    //reciever balance increased by amount
                    //sender balance decreased by amount
                    //TransferStatus changed to Approved or Rejected
                    break;

                case 6:
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                    break;

                case 0:
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                    break;

                default:
                    Console.WriteLine("Please enter a number from the list displayed.");
                    break;
                }
            }
        }
Exemplo n.º 28
0
        public void NewUserAccountBalanceIs1000()
        {
            //Arrange
            string    API_URL_LOGIN = "******";
            string    API_URL       = "https://localhost:44315/accounts";
            LoginUser user          = new LoginUser();

            user.Username = "******";
            user.Password = "******";



            //string connectionString = "Server=.\\SQLEXPRESS;Database=tenmo;Trusted_Connection=True;";

            RestClient client = new RestClient();

            // Still Arranging
            // Login to get credentials
            RestRequest request = new RestRequest(API_URL_LOGIN);

            request.AddJsonBody(user);
            IRestResponse <API_User> response = client.Post <API_User>(request);
            API_User authenticatedUser        = response.Data;

            client.Authenticator = new JwtAuthenticator(authenticatedUser.Token);

            // get highest Id
            request = new RestRequest(API_URL + "/transfers");
            IRestResponse <List <API_User> > responseUsers = client.Get <List <API_User> >(request);
            List <API_User> users     = responseUsers.Data;
            int             highestId = 0;

            foreach (API_User apiUser in users)
            {
                if (apiUser.UserId > highestId)
                {
                    highestId = apiUser.UserId;
                }
            }

            // Register new user
            highestId++;
            LoginUser testUser = new LoginUser();

            testUser.Username = $"test{highestId}";
            testUser.Password = "******";
            RestClient  registerClient  = new RestClient();
            RestRequest registerRequest = new RestRequest(API_URL_LOGIN + "/register");

            registerRequest.AddJsonBody(testUser);
            IRestResponse registerResponse = registerClient.Post(registerRequest);

            // Login with testUser
            registerRequest = new RestRequest(API_URL_LOGIN);
            registerRequest.AddJsonBody(testUser);
            IRestResponse <API_User> loginResponse = registerClient.Post <API_User>(registerRequest);
            API_User returnTestUser = loginResponse.Data;

            registerClient.Authenticator = new JwtAuthenticator(returnTestUser.Token);

            // Act
            // assert Balance is 1000
            registerRequest = new RestRequest(API_URL + "/balance");
            IRestResponse <Account> balanceResponse = registerClient.Get <Account>(registerRequest);
            Account account = balanceResponse.Data;


            // Assert
            Assert.AreEqual(1000M, account.Balance);



            /**
             * The problem here is that the database is not testable
             * If I hit the controller with tests, the db is not returned to the same state for testing purposes
             * Is there a way to override Startup of TenmoServer to tenmotestbd?
             * We could change appsetting.json to point to testdb
             *
             * The tests could also target the existing db using rolled back transactions and performing transfers between known entities
             *
             * The process would be like such:
             * register new client, hold token for authentication, Assert balance, rollback
             * register two new clients and authenticate each, make transfer, Assert balances, rollback
             * register three new clients, make a complex transfer, Assert balances, rollback
             * ...
             *
             **/
        }
Exemplo n.º 29
0
        private static void Run()
        {
            int loginRegister = -1;

            while (loginRegister != 1 && loginRegister != 2)
            {
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write(@"
  ██████████████████████████████████████████████████████████████████████████████████████
 █████▀▄▄▓████▓▄▄▀███████████████████████████████████████████████████████████████████████ 
▐███▀▄█████▌▀█████▄▀███▀       ╙███    ╙      ╙███    ╙`     ▀       █████╜       ╙██████▌
▐██ ██████▀  ▀██████▐▌    ,╗    ▐█▌            ██▌                   j██`           █████▌
▐██ █████╝ ██ ▐█████▌▓   ª▀╙    ██     ▓██     ██     ▓██     ██     ▐█     ╔██     ▐████▌
▐██ ████╜⌐ ,,  ╙████▌▓      ,╓▄███     ██▌    ]██     ██▌    ]██     ██     ███     ▐████▌
▐██ ███▌ ▄████▌ ▐███╒    ▀████▀██▌    ]██     ██▌    ╒██     ███     ██     ██▀     █████▌
▐███▄▀████████████▀▄█          ██     ███     ██     ▓██     ██     ▐██,          ╓██████▌
▐█████▄▀▀██████▀▀▄████▄,,,,,,╓▄██,,,,,██▌,,,,▐██,,,,,██▌,,,,▐██,,,,,████▄,    ,,▄████████▌
 ████████▓▓▓▓████████████████████████████████████████████████████████████████████████████
  ██████████████████████████████████████████████████████████████████████████████████████
");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("\t\t\t\t\t\t\t\tChris McAfee & Juan Leon\n");
                Console.WriteLine("Welcome to TEnmo!");
                Console.WriteLine("1: Login");
                Console.WriteLine("2: Register");
                Console.Write("Please choose an option: ");



                if (!int.TryParse(Console.ReadLine(), out loginRegister))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (loginRegister == 1)
                {
                    while (!UserService.IsLoggedIn()) //will keep looping until user is logged in
                    {
                        LoginUser loginUser = consoleService.PromptForLogin();
                        API_User  user      = authService.Login(loginUser);
                        if (user != null)
                        {
                            UserService.SetLogin(user);
                        }
                    }
                }
                else if (loginRegister == 2)
                {
                    bool isRegistered = false;
                    while (!isRegistered) //will keep looping until user is registered
                    {
                        LoginUser registerUser = consoleService.PromptForLogin();
                        isRegistered = authService.Register(registerUser);
                        if (isRegistered)
                        {
                            Console.WriteLine("");
                            Console.WriteLine("Registration successful. You can now log in.");
                            loginRegister = -1; //reset outer loop to allow choice for login
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Invalid selection.");
                }
            }

            MenuSelection();
        }
Exemplo n.º 30
0
        // GET: Submission
        public Submission GetUserSubmission(API_User _user)
        {
            Submission A = new Submission(_user.id);

            return(A);
        }