public IActionResult Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = new User {
                    FirstName      = model.FirstName,
                    LastName       = model.LastName,
                    Email          = model.Email,
                    Password       = model.Password,
                    AccountBalance = 0.0,
                    created_at     = DateTime.Now,
                    updated_at     = DateTime.Now
                };

                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                user.Password = Hasher.HashPassword(user, model.Password);

                _context.Add(user);
                _context.SaveChanges();
                return(RedirectToAction("Login"));
            }

            // *****One way to extract validation errors*****
            // foreach (var modelState in ModelState.Values) {
            //     foreach (ModelError error in modelState.Errors) {
            //         Console.WriteLine(error.ErrorMessage);
            //     }
            // }

            // *****Another way to extract validation errors.  However, Web app will utilize @Http.ValidationSummary() on client side to display errors*****
            // IEnumerable<ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);
            // ViewBag.errors = allErrors;

            return(View("Index"));
        }
Example #2
0
 public IActionResult Register(RegisterViewModel model)
 {
     if (ModelState.IsValid)
     {
         User EmailCheck = _bankAccountContext.users.SingleOrDefault(User => User.Email == model.Email);
         if (EmailCheck == null)
         {
             User newUser = new User
             {
                 FirstName      = model.FirstName,
                 LastName       = model.LastName,
                 Email          = model.Email,
                 Password       = model.Password,
                 AccountBalance = 0,
                 CreatedAt      = DateTime.Now,
                 UpdatedAt      = DateTime.Now
             };
             _bankAccountContext.Add(newUser);
             _bankAccountContext.SaveChanges();
             int ActiveUserId = _bankAccountContext.users.Last().Id;
             HttpContext.Session.SetInt32("ActiveUserId", ActiveUserId);
             return(RedirectToAction("Account"));
         }
         else
         {
             ViewBag.Messages = "Email Taken!";
         }
     }
     return(View("Index"));
 }
Example #3
0
        public IActionResult Register(User user)
        {
            if (ModelState.IsValid)
            {
                if (_context.users.Any(u => u.Email == user.Email))
                {
                    ModelState.AddModelError("Email", "Email is already in use!");
                }
                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                user.Password = Hasher.HashPassword(user, user.Password);
                // Save your user to the database
                User NewUser = new User
                {
                    First_Name = @user.First_Name,
                    Last_Name  = @user.Last_Name,
                    Email      = @user.Email,
                    Password   = @user.Password,
                };
                _context.Add(NewUser);
                _context.SaveChanges();
                HttpContext.Session.SetInt32("logged_in_userID", NewUser.UserId);        //Store logged in User's ID
                HttpContext.Session.SetString("logged_in_username", NewUser.First_Name); //Store logged in Users First name

                int?logged_in_user = HttpContext.Session.GetInt32("logged_in_userID");
                return(Redirect($"Account/{logged_in_user}"));
            }
            return(View(""));
        }
        public IActionResult Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                User newuser = new User
                {
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    Email     = model.Email,
                    Password  = model.Password
                };
                _context.Add(newuser);
                _context.SaveChanges();
                Account newaccount = new Account
                {
                    Balance         = 0,
                    Transaction     = 0,
                    TransactionDate = DateTime.Now.ToString(),
                    UserId          = newuser.UserId
                };
                _context.Add(newaccount);
                _context.SaveChanges();
                return(LoggingIn(newuser.Email, newuser.Password));
                // Handle success
            }

            else
            {
                ViewBag.errors = ModelState.Values;
                return(View("Index"));
            }
        }
        public IActionResult Register(int amount)
        {
            System.Console.WriteLine(amount);
            User myUser = _context.Users.SingleOrDefault(user => user.UserId == HttpContext.Session.GetInt32("CurrUserId"));

            if ((-1 * amount) > myUser.Money)
            {
                HttpContext.Session.SetString("WithdrawError", "Not Enough Money");
                return(RedirectToAction("Dashboard", "Users"));
            }
            else
            {
                BankAccount.Models.Action NewAction = new BankAccount.Models.Action {
                    Type      = "Deposit",
                    Amount    = amount,
                    UserId    = (int)HttpContext.Session.GetInt32("CurrUserId"),
                    CreatedAt = DateTime.Now,
                    UpdatedAt = DateTime.Now
                };
                if (amount < 0)
                {
                    NewAction.Type = "Withdrawal";
                }
                _context.Add(NewAction);
                myUser.Money += amount;
                _context.SaveChanges();
                return(RedirectToAction("Dashboard", "Users"));
            }
        }
Example #6
0
        public IActionResult RegisterUser(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                User NewUser = new User {
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    Password  = model.Password,
                    Email     = model.Email,
                    Money     = 0
                };
                NewUser.Password = Hasher.HashPassword(NewUser, NewUser.Password);
                _context.Add(NewUser);
                _context.SaveChanges();


                User CurrentUser = _context.Users.SingleOrDefault(user => user.Email == NewUser.Email);
                HttpContext.Session.SetInt32("CurrUserId", CurrentUser.UserId);
                return(RedirectToAction("Dashboard"));
            }
            else
            {
                ViewBag.Errors = ModelState.Values;
                return(View("Register"));
            }
        }
Example #7
0
        public IActionResult CreateRegistration(User user)
        {
            // Check initial ModelState
            if (ModelState.IsValid)
            {
                // If a User exists with provided email
                if (db.Users.Any(r => r.Email == user.Email))
                {
                    // Manually add a ModelState error to the Email field, with provided
                    // error message
                    ModelState.AddModelError("Email", "Email already in use!");

                    return(View("Index", user));// You may consider returning to the View at this point
                }
                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                user.Password = Hasher.HashPassword(user, user.Password);
                db.Add(user);
                db.SaveChanges();
                HttpContext.Session.SetInt32("UserId", user.UserId);
                return(RedirectToAction("Login"));
            }
            else
            {
                return(View("Index"));// other code
            }
        }
 public IActionResult Registration(UserRegister model)
 {
     if (ModelState.IsValid)
     {
         // Check for unique email
         List <User> users = _context.users.Where(user => user.email == model.email).ToList();
         if (users.Count > 0)
         {
             ModelState.AddModelError("email", "Email already exists");
             return(View("Home"));
         }
         else
         {
             // Hash password and add to db
             PasswordHasher <UserRegister> hasher = new PasswordHasher <UserRegister>();
             string hashedPassword = hasher.HashPassword(model, model.password);
             User   user           = new User
             {
                 firstName = model.firstName,
                 lastName  = model.lastName,
                 email     = model.email,
                 password  = hashedPassword
             };
             _context.Add(user);
             _context.SaveChanges();
             HttpContext.Session.SetInt32("userID", (int)user.ID);
             return(RedirectToAction("Home", "Transaction", new{ id = user.ID }));
         }
     }
     return(View("Home"));
 }
Example #9
0
 public IActionResult CreateUser(RegisterUser u)
 {
     if (ModelState.IsValid)
     {
         List <User> users = _context.Users.Where(nu => nu.Email == u.Email).ToList();
         if (users.Count > 0)
         {
             ViewBag.InvalidEmail = true;
             return(View("Index"));
         }
         PasswordHasher <User> Hasher = new PasswordHasher <User>();
         User nUser = new User();
         nUser.Password  = Hasher.HashPassword(nUser, u.Password);
         nUser.FirstName = u.FirstName;
         nUser.LastName  = u.LastName;
         nUser.Email     = u.Email;
         nUser.Balance   = 0;
         _context.Add(nUser);
         _context.SaveChanges();
         HttpContext.Session.SetInt32("UserId", nUser.UserId);
         System.Console.WriteLine("***********  Success");
         return(View("Index"));
     }
     return(View("Index"));
 }
Example #10
0
        public IActionResult Register(User user)
        {
            if (ModelState.IsValid)
            {
                dbContext.Add(user);
                dbContext.SaveChanges();

                User currentUser = dbContext.Users.FirstOrDefault(u => u.UserId == user.UserId);

                HttpContext.Session.SetObjectAsJson("User", currentUser);
                HttpContext.Session.SetInt32("UserId", user.UserId);

                return(RedirectToAction("Account", new { userId = user.UserId }));
            }
            else
            {
                return(View("Index"));
            }
        }
        public IActionResult Register(User newUSer)
        {
            if (dbContext.Users.Any(u => u.Email == newUSer.Email))
            {
                ModelState.AddModelError("Email", "Too slow! taken!");
            }

            if (ModelState.IsValid)
            {
                PasswordHasher <User> HAsher = new PasswordHasher <User>();
                newUSer.Password = HAsher.HashPassword(newUSer, newUSer.Password);
                HttpContext.Session.SetInt32("ID", newUSer.ID);
                dbContext.Add(newUSer);
                dbContext.SaveChanges();

                return(Redirect($"account/{newUSer.ID}"));
            }
            return(View("Index"));
        }