public ActionResult Login(HomeViewModel.SignInViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Wrong data provided"));
            }

            var encryptedPassword = model.Password.EncryptMD5();

            var account = db.Accounts.FirstOrDefault(m => m.Login == model.Login && m.Password == encryptedPassword);

            if (account == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Login or password is wrong"));
            }

            if (account is Models.Admin)
            {
                Models.Authorization.IsAdmin = true;
            }
            else if (account is Models.User)
            {
                Models.Authorization.IsUser = true;
            }

            Models.Authorization.Login = account.Login;

            return(RedirectToAction("index", "home"));
        }
        public ActionResult Register(HomeViewModel.RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Wrong data provided"));
            }

            var existingAccount = db.Accounts.FirstOrDefault(m => m.Login == model.Login);

            if (existingAccount != null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Account with this login is already exists"));
            }

            db.Accounts.Add(new Models.User
            {
                Login        = model.Login,
                Password     = model.Password.EncryptMD5(),
                CreationTime = DateTime.Now,
                LastActivity = DateTime.Now
            });
            db.SaveChanges();

            var signInModel = new HomeViewModel.SignInViewModel()
            {
                Login    = model.Login,
                Password = model.Password
            };

            return(Login(signInModel));
        }