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); }