/// <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)); } }
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")); }
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")); }