public void AddUserToGroups(List <UserOrganizationItem> organizations, string userId, AllGroupResult groups, string groupId = "", string groupName = "") { foreach (var org in organizations) { var orgName = org.Organization.OrganizationName; if (orgName.Length > 75) { orgName = orgName.Substring(0, 75); } var group = groups.Groups.SingleOrDefault(x => x.Group_id == org.Organization.DocumentLibraryGroupId) ?? groups.Groups.SingleOrDefault(x => x.Name == orgName); if (group == null) { if (org.Organization.DocumentLibraryGroupId == null) { continue; } GroupFullResult groupResult = null; groupResult = this.GetGroupByName(!string.IsNullOrEmpty(groupName) ? groupName : orgName); if (groupResult == null) { throw new Exception($"Cannot find group {orgName} in True Vault"); } group = groupResult.Group; } groupId = group.Group_id; groupName = group.Name; try { this.UpdateGroup(groupId, groupName, userId); } catch { //Ignore Exception user already exists } } }
public string CreateUser(List <UserOrganizationItem> organizations, string userName, string userId, AllGroupResult groups = null) { if (userName.Length > 75) { userName = userName.Substring(0, 75); } if (groups == null) { groups = this.GetAllGroups(); } if (groups.Result != Success) { throw new Exception($"Cannot create user in True Vault - GroupResult: {groups.Result}"); } if (string.IsNullOrWhiteSpace(userId)) { var password = EncryptionHelper.GetRandomString(20); var userResult = this.CreateUser(userName, password); if (userResult.Result != Success) { throw new Exception($"Cannot create user in True Vault - UserResult: {userResult.Result}"); } userId = userResult.User.Id; } this.AddUserToGroups(organizations, userId, groups); return(userId); }