Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }