public async Task <Role> SaveAsync(Role appRole, Guid[] permissionIds) { appRole.CreatedOnDate = DateTime.Now; appRole.LastModifiedOnDate = DateTime.Now; await _dataContext.AppRoles.AddAsync(appRole); _dataContext.SaveChanges(); await AddPermission(appRole.Id, permissionIds); return(appRole); }
public async Task <User> SaveAsync(User appUser, List <Guid> roleIds, Guid employeeId) { var userName = _dataContext.AppUsers.AsNoTracking().FirstOrDefault(x => x.Username == appUser.Username); if (userName != null) { throw new ArgumentException(IUserService.Message_UserNameAlreadyExist); } if (appUser.Email != null) { Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); Match match = regex.Match(appUser.Email); if (!match.Success) { throw new ArgumentException("Email incorrect format"); } } appUser.VerificationCode = RandomString(7); appUser.CreatedOnDate = DateTime.Now; appUser.LastModifiedOnDate = DateTime.Now; var passwordHasher = new PasswordHasher <User>(); appUser.Password = passwordHasher.HashPassword(appUser, appUser.Password); await _dataContext.AppUsers.AddAsync(appUser); if (appUser.Email != null) { if (_emailConfiguration.Enable == true) { _emailCode.SendMail(appUser.Email, appUser.VerificationCode); } } if (roleIds != null) { await AddRole(appUser.Id, roleIds); } _dataContext.SaveChanges(); return(appUser); }