private CommandResult CheckValidData(SaveUserViewModel model) { if (model == default || model.FirstName == default || model.LastName == default) { return(CommandResult.Failed(new CommandResultError() { Code = (int)HttpStatusCode.BadRequest, Description = MessageErrors.SomeDataEmptyOrInvalid })); } if (CheckEmailExist(model.Email, model.Id)) { return(CommandResult.Failed(new CommandResultError() { Code = (int)HttpStatusCode.NotAcceptable, Description = MessageErrors.DataIsExists.Replace("{0}", "Email") })); } if (CheckPhoneNumberExist(model.PhoneNumber, model.Id)) { return(CommandResult.Failed(new CommandResultError() { Code = (int)HttpStatusCode.NotAcceptable, Description = MessageErrors.DataIsExists.Replace("{0}", "Phone number") })); } return(null); }
public virtual ActionResult UpdateUser([Bind(Exclude = "Password, ConfirmPassword")] SaveUserViewModel userViewModel) { return(new ServiceAction(this) .Put(SessionKey.Empty) .WithCommand( () => { return _adminService.UpdateUser(userViewModel.Id, userViewModel.Firstname, userViewModel.Lastname, userViewModel.Nickname, userViewModel.Username, userViewModel.GroupId); }) .Execute()); }
public User mapSaveUser(SaveUserViewModel user, IUserService service) { string passwordHash = service.generatePasswordHash(user.password); var userItem = new UserData { Email = user.email, FirstName = user.firstName, LastName = user.lastName, PhoneNumber = user.phoneNumber, PasswordHash = passwordHash, }; return(new User(userItem)); }
public async Task <IActionResult> SaveUser([FromBody] SaveUserViewModel user) { if (user == null) { return(Json(BadRequest())); } var userItem = mapper.mapSaveUser(user, service); var findUser = await userRepository.getUserByEmail(user.email); if (findUser != null) { return(Json(BadRequest("User with given email already exists"))); } await userRepository.Add(userItem); return(Json(Ok(userItem))); }
//[Authorize(Policy = PermissionGroup.AdminHRM)] public async Task <IActionResult> SaveUserInfoAsync([FromBody] SaveUserViewModel model) { var result = await _saveUserCommand.ExecuteAsync(model); return(StatusCode(result.GetStatusCode(), result.GetData())); }
public async Task <CommandResult> ExecuteAsync(SaveUserViewModel model) { try { CommandResult isNotValidData = CheckValidData(model); if (isNotValidData != null) { return(isNotValidData); } var user = await _userRepository.GetByIdAsync(model.Id); if (user == null) { if (model.Password.IsEmpty()) { return(CommandResult.Failed(new CommandResultError() { Code = (int)HttpStatusCode.BadRequest, Description = MessageErrors.SomeDataEmptyOrInvalid })); } user = new CsmsUser() { Id = 0, UserCode = model.UserCode, Username = model.UserName, Password = BCrypt.HashPassword(model.Password, BCrypt.GenerateSalt()), FirstName = model.FirstName, MiddleName = model.MiddleName, LastName = model.LastName, Email = model.Email, PhoneNumber = model.PhoneNumber, CitizenID = model.CitizenId, Gender = model.Gender, Salary = model.Salary, BranchId = model.BranchId, Birthday = model.Birthday, RoleId = model.RoleId, StatusId = model.StatusId }; await _userRepository.InsertAsync(user); userInfoViewModel = await _getUserInfoByUserIdQuery.ExecuteAsync(user.Id); } else { user.UserCode = model.UserCode; user.Username = model.UserName; user.Password = (user.Password == model.Password || model.Password.IsEmpty()) ? user.Password : BCrypt.HashPassword(model.Password, BCrypt.GenerateSalt()); user.FirstName = model.FirstName; user.MiddleName = model.MiddleName; user.LastName = model.LastName; user.Email = model.Email; user.PhoneNumber = model.PhoneNumber; user.CitizenID = model.CitizenId; user.Gender = model.Gender; user.Salary = model.Salary; user.BranchId = model.BranchId; user.Birthday = model.Birthday; user.RoleId = model.RoleId; user.StatusId = model.StatusId; await _userRepository.UpdateAsync(user); userInfoViewModel = await _getUserInfoByUserIdQuery.ExecuteAsync(user.Id); } return(CommandResult.SuccessWithData(userInfoViewModel)); } catch (Exception) { return(CommandResult.Failed(new CommandResultError() { Code = (int)HttpStatusCode.InternalServerError, Description = MessageErrors.InternalServerError })); } }
public async Task <IHttpActionResult> SaveUser(SaveUserBindingModel model) { var result = new SaveUserViewModel(); IdentityResult identityResult = null; ApplicationUser user = null; if (string.IsNullOrEmpty(model.Data.Id)) { user = new ApplicationUser() { UserName = model.Data.UserName, Email = model.Data.Email }; identityResult = await UserManager.CreateAsync(user, model.Data.Password); } else { user = await UserManager.FindByIdAsync(model.Data.Id); user.UserName = model.Data.UserName; user.Email = model.Data.Email; identityResult = await UserManager.UpdateAsync(user); } if (!identityResult.Succeeded) { result.Result = false; if (identityResult.Errors != null) { var firstError = identityResult.Errors.First(); result.Message = firstError; } } else { foreach (var roleId in user.Roles.Where(x => !model.Data.Roles.Contains(x.RoleId)).ToList()) { var role = await RoleManager.FindByIdAsync(roleId.RoleId); if (await UserManager.IsInRoleAsync(user.Id, role.Name)) { var rolesResult = await UserManager.RemoveFromRoleAsync(user.Id, role.Name); if (!rolesResult.Succeeded) { result.Result = false; if (rolesResult.Errors != null) { var firstError = rolesResult.Errors.First(); result.Message = firstError; } break; } } } foreach (var role in model.Data.Roles) { if (!await UserManager.IsInRoleAsync(user.Id, role)) { var rolesResult = await UserManager.AddToRoleAsync(user.Id, role); if (!rolesResult.Succeeded) { result.Result = false; if (rolesResult.Errors != null) { var firstError = rolesResult.Errors.First(); result.Message = firstError; } break; } } } result.Result = true; } if (result.Result) { var notificationHub = GetHub <NotificationHub, INotificationHub>(); var connectionId = _requestReader.Read(HttpHeaders.Request.SignalRConnectionId); if (!string.IsNullOrEmpty(connectionId)) { notificationHub.Clients.AllExcept(connectionId).UpdateModel(new NotificationModel() { Username = UserName, Action = string.Format("Ha salvato l'user {0}", model.Data.UserName) }); } } return(Ok(result)); }