/// <summary>
        /// Returns true, if user exists
        /// </summary>
        /// <param name="validateAccountModel"></param>
        /// <returns></returns>
        public Result <ValidateAccountResultModel> ValidateAccount(ValidateAccountModel validateAccountModel)
        {
            Assert.ArgumentNotNull(validateAccountModel, nameof(validateAccountModel));

            string email = validateAccountModel.Email;

            Assert.ArgumentNotNullOrEmpty(email, nameof(email));

            var result = new Result <ValidateAccountResultModel>();

            // comerce connect don't have separate method for user's email validation
            var emailRegex = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");

            if (!emailRegex.Match(email).Success)
            {
                result.SetResult(new ValidateAccountResultModel
                {
                    Email   = email,
                    Invalid = true
                });

                return(result);
            }

            var getUserManagerResponse = this.accountManager.GetUser(email);
            var emailAlreadyInUse      = getUserManagerResponse.ServiceProviderResult.Success;

            result.SetResult(new ValidateAccountResultModel
            {
                Email   = email,
                Invalid = emailAlreadyInUse,
                InUse   = emailAlreadyInUse
            });
            return(result);
        }
        public ActionResult ValidateAccount(ValidateAccountModel validateAccountModel)
        {
            try
            {
                this.trackingService.EnsureTracker();
                var accountExists = this.accountRepository.ValidateAccount(validateAccountModel);

                if (!accountExists.Success)
                {
                    return(this.JsonError(accountExists.Errors.ToArray(), HttpStatusCode.BadRequest));
                }

                return(this.JsonOk(accountExists.Data));
            }
            catch (Exception ex)
            {
                return(this.JsonError(ex.Message, HttpStatusCode.InternalServerError, ex));
            }
        }
Пример #3
0
 public IActionResult Deposit(ValidateAccountModel validateAccountModel)
 {
     validateAccountModel.balance += validateAccountModel.amount;
     if (validateAccountModel.balance < 0)
     {
         ModelState.AddModelError("amount", "You don't have enough money to do that");
     }
     if (ModelState.IsValid)
     {
         Account deltaAccount = new Account()
         {
             amount  = validateAccountModel.amount,
             balance = validateAccountModel.balance,
             Userid  = (int)HttpContext.Session.GetInt32("loggedID"),
             user    = _context.Users.SingleOrDefault(USER => USER.Userid == (int)HttpContext.Session.GetInt32("loggedID"))
         };
         _context.Accounts.Add(deltaAccount);
         _context.SaveChanges();
         return(View("LoggedUser", deltaAccount.Userid));
     }
     return(View("LoggedUser"));
 }
Пример #4
0
 public ActionResult ValidatePost(ValidateAccountModel model)
 {
     if (ModelState.IsValid)
     {
         MembershipUser       user  = Membership.GetUser(model.LoginName);
         IEnumerable <string> count = from MembershipUser u in Membership.GetAllUsers()
                                      where model.Nickname.Equals(u.Comment)
                                      select u.Comment;
         if (count.Count() == 0)
         {
             HttpCookie cookie = Request.Cookies[".SPOTICHELASANONYMOUS"];
             if (cookie == null)
             {
                 ModelState.AddModelError("", "Validation code expired! Please Register again. Also allow cookies in order to complete the regristration");
             }
             //Note: Due to the challenge code being kept in a cookie, they must be activated in the browser. Embebing into Url would be an option but a security risk
             FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
             string challenge = ticket.UserData;
             if (model.Challenge.Equals(challenge))
             {
                 user.IsApproved = true;
                 user.Comment    = model.Nickname;
                 Roles.AddUserToRole(user.UserName, "User");
                 Membership.UpdateUser(user);
                 FormsAuthentication.SetAuthCookie(user.UserName, true /* createPersistentCookie */);
                 return(RedirectToAction("UserCP"));
             }
             else
             {
                 ModelState.AddModelError("challenge", "Invalid Challenge Code!");
             }
         }
         else
         {
             ModelState.AddModelError("nickname", "Public name already taken!");
         }
     }
     return(View("Validate"));
 }