Example #1
0
        public bool TryLogin(IFormCollection form, out LoginFormErrorViewModel error)
        {
            var email    = form.ContainsKey("email") ? form["email"].ToString() : "";
            var password = form.ContainsKey("password") ? form["password"].ToString() : "";

            var success = true;

            error = new LoginFormErrorViewModel()
            {
                Errors  = new List <string>(),
                Email   = email,
                Message = ""
            };

            if (!IsAlreadyRegisteredEmail(email))
            {
                success = false;
                error.Errors.Add("Email does not exist!");
            }

            if (!PasswordCorrect(email, password))
            {
                success = false;
                error.Errors.Add("Password is not correct!");
            }
            return(success);
        }
Example #2
0
 public IActionResult Login(LoginFormErrorViewModel model)
 {
     if (model == null)
     {
         return(View(new LoginFormErrorViewModel()
         {
             Email = "", Errors = new List <string>(), Message = ""
         }));
     }
     return(View(model));
 }
Example #3
0
        public IActionResult Register(IFormCollection form)
        {
            var regSuccess = TryRegister(form, out RegisterFormErrorViewModel errors);

            if (regSuccess)
            {
                var email    = form.ContainsKey("email") ? form["email"].ToString() : "";
                var password = form.ContainsKey("password") ? form["password"].ToString() : "";
                var privkey  = form.ContainsKey("privkey") ? form["privkey"].ToString() : "";
                var salt     = Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 8);
                var hashed   = PasswordHash(password, salt);

                var user = new User()
                {
                    Email                  = email,
                    Salt                   = salt,
                    HashedPassword         = hashed,
                    HistoricalTransactions = new List <HistoricalTransaction>(),
                    RegisteredTime         = DateTime.UtcNow,
                    UId        = Guid.NewGuid().ToString(),
                    UserTokens = new List <UserToken>(),
                    Wallets    = new List <Wallet>()
                };


                context.Database.EnsureCreated();
                context.Users.Add(user);
                if (privkey != "")
                {
                    var wallet = walletUtil.WalletFromKey(privkey, user, "Main");
                    context.Wallets.Add(wallet);
                }
                else
                {
                    var wallet = walletUtil.GenerateNewWallet(user, "Main");
                    context.Wallets.Add(wallet);
                }

                context.SaveChanges();

                var sucError = new LoginFormErrorViewModel()
                {
                    Email   = email,
                    Errors  = new List <string>(),
                    Message = "<span class='text-success'>Registered succesfully ! Now log in.</span>"
                };
                return(new RedirectToActionResult("Login", "Home", routeValues: sucError));
            }
            else
            {
                return(new RedirectToActionResult("Register", "Home", routeValues: errors));
            }
        }