private async Task <List <ValidationResult> > CreateUserType(SetupUserViewModel userViewModel, ImanageUser user, UserTypes userType) { if (userType == UserTypes.LandLord) { if (userViewModel.Role != (int)UserRoles.LandLord) { results.Add(new ValidationResult("Partner can only be assigned basic user role.")); await ReverseUserCreated(user); return(results); } } return(results); }
public async Task <List <ValidationResult> > UpdateSetupUser(SetupUserViewModel userViewModel) { var user = await _userManager.FindByIdAsync(userViewModel.User_Id); if (user != null && user.UserTypeId.HasValue && user.UserTypeId.Value.ToString() == userViewModel.Id) { user.LastName = userViewModel.LastName; user.FirstName = userViewModel.FirstName; user.MiddleName = userViewModel.MiddleName; user.Gender = userViewModel.Gender; await _userManager.UpdateAsync(user); } else { results.Add(new ValidationResult("Couldn't find a user for this request.")); return(results); } return(results); }
public async Task <List <ValidationResult> > SetupUser(SetupUserViewModel userViewModel) { bool isValid = Validator.TryValidateObject(userViewModel, new ValidationContext(userViewModel, null, null), results, false); if (!isValid) { return(results); } Enum.TryParse(typeof(UserTypes), userViewModel.UserType.ToString(), out object userType); var user = new ImanageUser() { UserName = userViewModel.Email, LastName = userViewModel.LastName, FirstName = userViewModel.FirstName, MiddleName = userViewModel.MiddleName, Gender = userViewModel.Gender, Email = userViewModel.Email, UserType = (UserTypes)userType }; Enum.TryParse(typeof(UserRoles), userViewModel.Role.ToString(), out object role); var status = await CreateIdentityUser(user); userViewModel.Role = (int)role; if (status.Any()) { return(results); } userViewModel.User_Id = user.Id.ToString(); var createResult = await CreateUserType(userViewModel, user, (UserTypes)userType); if (!createResult.Any()) { user.UserTypeId = Guid.Parse(userViewModel.UserType_Id); await _userManager.UpdateAsync(user); var roleName = role.ToString(); if (!await _roleManager.RoleExistsAsync(roleName)) { await _roleManager.CreateAsync(new ImanageRole() { Name = roleName }); } await _userManager.AddToRoleAsync(user, roleName); await AssignDefaultPermission(user, roleName); userViewModel.RoleName = roleName; } else { await _userManager.DeleteAsync(user); } return(createResult); }