public async Task <ActionResult> Register([FromBody] RegisterRequest registerRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } byte[] passwordHash, passwordSalt; passwordHandler.CreatePasswordHash(registerRequest.Password, out passwordHash, out passwordSalt); var user = registerRequest.ToUser(); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; if (await userRepository.AddUser(user) > 0) { return(Ok(new RegisterResponse { Success = true, Message = null })); } else { return(Ok(new RegisterResponse { Success = false, Message = "Something went wrong, please try again" })); } }
public async Task <ActionResult <JwtToken> > Register([FromBody] RegisterRequest request) { User user = request.ToUser(); user.Permissions = _permissions.CurrentValue.NewUser; // If no users exists, the new one will be an admin. Give it every permissions. if (await _users.GetOrDefault(where : x => true) == null) { user.Permissions = PermissionOption.Admin; } try { await _users.Create(user); } catch (DuplicatedItemException) { return(Conflict(new RequestError("A user already exists with this username."))); } return(new JwtToken( _token.CreateAccessToken(user, out TimeSpan expireIn), await _token.CreateRefreshToken(user), expireIn )); }
public async Task <ActionResult <RegisterResult> > Register([FromBody] RegisterRequest request) { var res = await userService.Register(request.ToUser(), request.Password); if (res.Success) { return(Ok(res)); } return(BadRequest(res)); }
public ActionResult AddUser(RegisterRequest UserVm, bool Profile = false) { int userId = 0; if (Profile) { UserVm.RoleId = user.RoleId; UserVm.Id = user.Id; } if (ModelState.IsValid) { if (UserVm.ImageFile != null) { string fn = Path.GetFileName(UserVm.ImageFile.FileName); string fileExtension = fn.Remove(0, fn.IndexOf('.') + 1); fn = UserVm.Id + "_." + fileExtension; string SaveLocation = "~/Public/Files/ProfileImages/"; UserVm.ImagePath = SaveLocation + fn; string FilePath = Server.MapPath(SaveLocation); UserVm.ImageFile.SaveAs(Path.Combine(FilePath, fn)); } var u = RegisterRequest.ToUser(UserVm); u.EmailVerified = true; ScheduleContext.Users.AddOrUpdate(x => x.Id, u); userId = u.Id; ScheduleContext.SaveChanges(); } if (Profile) { Session["User"] = new SessionUser(ScheduleContext.Users.FirstOrDefault(x => x.Id == user.Id)); } if (UserVm.Id == 0) { Notify("Success", "Successfully Added", "User Added Successfully", IsRedirectMessage: true); } else { Notify("Success", "Successfully Updated", "User Updated Successfully", IsRedirectMessage: true); } if (Profile) { return(RedirectToRoute("Profile")); } else { return(RedirectToRoute("AddUser", new { ID = userId })); } }
public async Task Create(RegisterRequest user) { // validation if (await _context.Users.AnyAsync(x => x.Email == user.Email)) { throw new InvalidOperationException("Email \"" + user.Email + "\" is already taken"); } try { await _context.AddAsync(user.ToUser()); await _context.SaveChangesAsync(); } catch (Exception e) { throw e; } }
public async Task <IActionResult> Create(RegisterRequest request) { if (request == null) { return(BadRequest()); } try { var user = await _userService.Create(request.ToUser(), request.Password); return(Ok(new { id = user.Id })); } catch (AppException e) { return(BadRequest(new { error = e.Message })); } }