Ejemplo n.º 1
0
        public OperationResult <UserModel> CreateUser(CreateUserModel createUserModel)
        {
            var result = ValidateUserData(createUserModel);

            if (!result.IsSuccess)
            {
                return(result);
            }
            var userEntity = createUserModel.ToEntity();
            var newUser    = _userRepository.Insert(userEntity);

            _userRepository.SaveChanges();
            _userRoleRepository.AssignRolesToUser(newUser.ID, new List <int>()
            {
                createUserModel.RoleId
            });
            var newUserModel = newUser.ToModel();

            _userRoleRepository.FetchRoles(newUserModel);
            if (createUserModel.OrganizationId != null)
            {
                var organizationId = createUserModel.OrganizationId.Value;
                var organizationRoleUpdateModel = new OrganizationUserRoleUpdateModel()
                {
                    OrganizationId = organizationId,
                    Users          = new List <OrganizationUserUpdateModel>()
                    {
                        new OrganizationUserUpdateModel()
                        {
                            UserId = newUserModel.ID,
                            OrganizationRoleIds = createUserModel.OrganizationRoleIds
                        }
                    }
                };
                _organizationUserRepository.AssignUserToOrganization(organizationRoleUpdateModel);
            }
            result.Data = newUserModel;
            return(result);
        }