public ActionResult RegisterUser(string userInfo) { //convert the arguement into an anonymous type for processing var userDef = new { userName = "", passWord = "" }; var user = JsonConvert.DeserializeAnonymousType(userInfo, userDef); string result; List <AltSourceUser> users = (List <AltSourceUser>)AltSourceCache.Cache["users"]; //check to see if user already exists if (users.FirstOrDefault <AltSourceUser>(u => u.username.Equals(user.userName, StringComparison.InvariantCultureIgnoreCase)) == null) { //user doesn't exist create and return success message AltSourceUser newuser = AltSourceUser.CreateUser(user.userName, user.passWord); ((List <AltSourceUser>)AltSourceCache.Cache["users"]).Add(newuser); //create a new bank account for the new user BankAccount acct = BankAccount.NewAccount(newuser.username); ((List <BankAccount>)AltSourceCache.Cache["accounts"]).Add(acct); result = "SUCCESS"; } else { //let interface know of duplicate account isssue result = "DUPLICATE"; } return(Content(result, "text/plain")); }
//log into the system private static void login() { List <AltSourceUser> users = (List <AltSourceUser>)AltSourceCache.Cache["users"]; string uname = ""; string pwd = ""; Console.WriteLine("Enter your user name. Enter 'C' to cancel:"); while (!success) { response = Console.ReadLine().Trim(); if (response.ToUpper() == "C") { return; } //ensure that there is a user whose name the entry AltSourceUser user = users.FirstOrDefault <AltSourceUser>(u => u.username.Equals(response, StringComparison.InvariantCultureIgnoreCase)); if (user != null) { success = true; uname = response; while (pwd != user.password) { //get the password Console.WriteLine("Enter your password:"******"Password is incorrect."); } } loggedin = true; currentUser = uname; //create a new bank account if one does not exist for the user account = ((List <BankAccount>)AltSourceCache.Cache["accounts"]).FirstOrDefault <BankAccount>(a => a.AccountOwner.Equals(currentUser, StringComparison.InvariantCultureIgnoreCase)); if (account == null) { account = BankAccount.NewAccount(user.username); ((List <BankAccount>)AltSourceCache.Cache["accounts"]).Add(account); } } else { Console.WriteLine("We could not find this user name. Please try again or enter 'C' to cancel."); } } }
private static void registerUser() { //get the list of users List <AltSourceUser> users = (List <AltSourceUser>)AltSourceCache.Cache["users"]; string uname; string pwd; Console.WriteLine("Enter a unique user name. Enter 'C' to cancel:"); while (!success) { response = Console.ReadLine().Trim(); if (response.ToUpper() == "C") { //user cancellation return; } //check to ensure the user name is unique within the currently cached objects if (users.FirstOrDefault <AltSourceUser>(u => u.username.Equals(response, StringComparison.InvariantCultureIgnoreCase)) == null) { //user name is unique, create the user and a new bank account success = true; uname = response; pwd = CreatePassword(); AltSourceUser user = AltSourceUser.CreateUser(uname, pwd); ((List <AltSourceUser>)AltSourceCache.Cache["users"]).Add(user); BankAccount acct = BankAccount.NewAccount(user.username); ((List <BankAccount>)AltSourceCache.Cache["accounts"]).Add(acct); Console.WriteLine("Thank you for registering. Your new account # is " + acct.AccountID.ToString() + "."); } else { //alert the user to the duplicate entry so that they can try again or Cancel Console.WriteLine("This user name has already been registered. Please enter a new name or enter 'C' to cancel and login."); } } }
public ActionResult LoginUser(string userInfo) { //convert the arguement into an anonymous type for processing List<AltSourceUser> users = (List<AltSourceUser>)AltSourceCache.Cache["users"]; var userDef = new { userName = "", passWord = "" }; var vUser = JsonConvert.DeserializeAnonymousType(userInfo, userDef); string result; List <AltSourceUser> users = (List <AltSourceUser>)AltSourceCache.Cache["users"]; AltSourceUser user = users.FirstOrDefault <AltSourceUser>(u => u.username.Equals(vUser.userName, StringComparison.InvariantCultureIgnoreCase) && u.password.Equals(vUser.passWord)); //make sure the user exists and that the password is correct if (user != null) { //everything checks out, result = "SUCCESS"; Session["currentUser"] = user.username; //make sure that the user has an account (they should, but good to check BankAccount account; account = ((List <BankAccount>)AltSourceCache.Cache["accounts"]).FirstOrDefault <BankAccount>(a => a.AccountOwner.Equals(user.username, StringComparison.InvariantCultureIgnoreCase)); if (account == null) { account = BankAccount.NewAccount(user.username); ((List <BankAccount>)AltSourceCache.Cache["accounts"]).Add(account); } Session["CurrentAccount"] = account; } else { //notify interface of login failure result = "FAILURE";; } return(Content(result, "text/plain")); }