Beispiel #1
0
        public IActionResult Register(Register regUser, Portfolio portfolio)
        {
            User exists = _context.Users.SingleOrDefault(user => user.Email == regUser.Email);

            if (ModelState.IsValid)
            {
                if (exists != null)
                {
                    TempData["UserError"] = "An account with this email already exists!";
                    return(View());
                }
                else
                {
                    PasswordHasher <Register> hasher = new PasswordHasher <Register>();
                    string HashedPW = hasher.HashPassword(regUser, regUser.Password);
                    User   newUser  = new User
                    {
                        FirstName = regUser.FirstName,
                        LastName  = regUser.LastName,
                        Email     = regUser.Email,
                        Password  = HashedPW,
                    };

                    _context.Add(newUser);
                    _context.SaveChanges();

                    User LoggedIn = _context.Users.SingleOrDefault(user => user.Email == regUser.Email);
                    HttpContext.Session.SetInt32("UserId", LoggedIn.UserId);
                    HttpContext.Session.SetString("UserName", LoggedIn.FirstName);


                    int? id          = HttpContext.Session.GetInt32("UserId");
                    User currentUser = _context.Users.SingleOrDefault(u => u.UserId == (int)id);

                    Portfolio thisportfolio = _context.Portfolios.SingleOrDefault(w => w.PortfolioId == (int)id);

                    Portfolio newPortfolio = new Portfolio
                    {
                        UserId   = currentUser.UserId,
                        PortName = "Watchlist",
                    };
                    _context.Add(newPortfolio);
                    _context.SaveChanges();



                    //If the creation failed, add the errors to the View Model
                    return(Redirect("/"));
                }
            }
            return(View());
        }