public async Task <ApiResponse> Register(UserRegisterVm userModel) { var applicationUser = new ApplicationUser() { Email = userModel.Email, FirstName = userModel.FirstName, LastName = userModel.LastName, UserName = userModel.Email, }; var result = await _userManager.CreateAsync(applicationUser, userModel.Password); var user = await _userManager.FindByEmailAsync(applicationUser.Email); if (user != null && result.Succeeded) { await _unitOfWork.CompleteAsync(); var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); byte[] tokenGeneratedBytes = Encoding.UTF8.GetBytes(token); var codeEncoded = WebEncoders.Base64UrlEncode(tokenGeneratedBytes); var url = "http://localhost:5000/emailConfirmation" + "?email=" + user.Email + "&token=" + codeEncoded; SendEmail.Send(user.Email, "Email confirmation", url); return(new ApiResponse(result.Succeeded)); } else { throw new MyException(ApiResponseDescription.EMAIL_ALREADY_IN_USE); } }
//[Permission("افزودن کاربر", ActionType.Insert)] public async Task <GeneralResult> Post([FromBody] UserRegisterVm model) { var xErrors = await _UserService.AddAsync(model); if (!xErrors.Any()) { return(Ok("ثبت با موفقیت انجام شد")); } else { return(BadRequest(xErrors)); } }
public async Task <User> Register(UserRegisterVm userRegisterVm) { try { new MailAddress(userRegisterVm.Email); } catch { throw new ArgumentException("Value has a invalid format.", nameof(userRegisterVm.Email)); } if (string.IsNullOrWhiteSpace(userRegisterVm.Password)) { throw new ArgumentException("Value can't be null or empty.", nameof(userRegisterVm.Password)); } if (await _context.Users.AnyAsync(x => x.Email == userRegisterVm.Email)) { throw new Exception("The email provided is already registered."); } var user = new AppUser() { Email = userRegisterVm.Email, UserName = userRegisterVm.Username }; var result = await _userManager.CreateAsync(user, userRegisterVm.Password); if (result.Succeeded) { return(new User() { Email = user.Email, Username = user.UserName, Token = _jwtGenerator.CreateToken(user) }); } var errors = new StringBuilder(); foreach (var error in result.Errors) { errors.Append($"{error.Description} "); } throw new Exception($"Failed to create user due to: \n{errors}"); }
public async Task <bool> EditAsync(UserRegisterVm model) { var dbUser = uow.UserRepository.Get(x => x.Id == model.xID, null).FirstOrDefault(); if (dbUser == null) { throw new ErrorMessageException("کاربر انتخاب شده در سیستم موجود نمیباشد"); } dbUser.xFirstName = model.xFirstName; dbUser.xLastName = model.xLastName; dbUser.UserName = model.xUsername; dbUser.xRegisterDate = DateTime.Now; await uow.SaveChangesAsync(); return(true); }
public async Task <List <string> > AddAsync(UserRegisterVm model) { List <string> xErrors = new List <string>(); if (model.xPassword != model.xRePassword) { throw new ErrorMessageException("تکرار رمز عبور صحیح نمیباشد"); } var xDbModel = new User { UserName = model.xUsername, Email = model.xEmail, PhoneNumber = model.xMobile, xRegisterDate = DateTime.UtcNow, xIsActive = true, xFirstName = model.xFirstName, xLastName = model.xLastName }; xDbModel.xUserRoles = new List <UserRole>(); var xResult = await _UserManager.CreateAsync(xDbModel, model.xPassword); if (!xResult.Succeeded) { xErrors = xResult.Errors.Select(err => { return(Regex.Replace(err.Description, @"Name\s?\w+\s?is already taken", string.Format("شناسه کاربری {0} قبلا انتخاب شده است", model.xUsername)) .Replace("Passwords must be at least 6 characters.", "رمز عبور حداقل باید 6 کاراکتر باشد .<br/>") .Replace("Passwords must have at least one non letter or digit character.", " رمز عبور باید دارای کارکتر های خاص و اعداد باشد .<br/>") .Replace("Passwords must have at least one digit ('0'-'9').", "رمز عبور باید دارای حداقل یک عدد باشد (0-9) .<br/>") .Replace("Passwords must have at least one lowercase ('a'-'z').", "رمز عبور باید دارای حداقل یک حرف کوچک باشد (a-z) .<br/>") .Replace("Passwords must have at least one uppercase ('A'-'Z').", "رمز عبور باید دارای حداقل یک حرف بزرگ باشد (A-Z) .<br/>")); }).ToList(); } return(xErrors); }
public ActionResult SignUp(UserRegisterVm userRegisterVm) { if (userRegisterVm == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (ModelState.IsValid) { UserEntity user = Mapper.Map <UserRegisterVm, UserEntity>(userRegisterVm); if (_userLogic.Add(user)) { FormsAuthentication.SetAuthCookie(user.Name, true); return(RedirectToAction("Index", "Product")); } } return(View("SignIn", new UserAggregatedVm { RegisterVm = userRegisterVm })); }
public async Task <GeneralResult> Put([FromBody] UserRegisterVm model) { var status = await _UserService.EditAsync(model); return(Ok(status)); }
public async Task <ActionResult <User> > Register(UserRegisterVm registerVm) { return(await _userService.Register(registerVm)); }
public ActionResult SignUpForm(UserRegisterVm userRegisterVm) { ModelState.Clear(); return(View("_SignUpPartial", userRegisterVm)); }
public async Task <IActionResult> Register([FromBody] UserRegisterVm userModel) => Ok(await _userService.Register(userModel));