예제 #1
0
        public ActionResult Login(LoginVM vm)
        {
            //ελέγχουμε αν το password είναι valid
            if (!vm.User.IsPasswordValid())
            {
                return(RedirectToAction("Login", "Home"));
            }

            //ελέγχουμε αν το email είναι valid
            if (!vm.User.IsEmailValid())
            {
                vm = new LoginVM()
                {
                    Localizer = localizer
                };
                vm.AddErrorMessageForInvalidEmail();

                return(View("~/Views/Home/Index.cshtml", vm));
            }

            //ελέγχουμε αν δεν υπάρχει λογαριασμός με αυτά τα στοιχεία
            User loginUser = db.Users.SingleOrDefault(x => x.Email == vm.User.Email.ToLower());

            if (loginUser == null || loginUser.Password != vm.User.Password)
            {
                vm = new LoginVM()
                {
                    Localizer = localizer
                };
                vm.AddErrorMessageForNoAccount();

                return(View("~/Views/Home/Index.cshtml", vm));
            }

            //αλλάζουμε το status του χρήστη σε online
            loginUser.IsOnline = true;
            db.SaveChanges();

            SaveUserEmailToSession(vm.User.Email.ToLower());

            return(RedirectToAction("Profile", "User"));
        }