public override void DocumentUsers(EDocumentUsersType usersType) { StringBuilder RetVal = new StringBuilder(); RetVal.AppendLine(MakeSectionTitle($"Server : {_SqlServer.Name} - Users list")); int UserCount = 0; foreach (Login LoginItem in _SqlServer.Logins) { UserCount++; switch (usersType) { case EDocumentUsersType.Full: case EDocumentUsersType.List: default: #region list RetVal.Append(LoginItem.Name.AlignedLeft(40, '.')); switch (LoginItem.LoginType) { case LoginType.WindowsGroup: RetVal.Append("Windows group".AlignedLeft(20, '.')); break; case LoginType.WindowsUser: RetVal.Append("NT user".AlignedLeft(20, '.')); break; case LoginType.SqlLogin: RetVal.Append("SQL User".AlignedLeft(20, '.')); break; } try { RetVal.Append(LoginItem.DefaultDatabase.AlignedLeft(40, '.')); } catch { RetVal.Append("*** Warning: no default database ***".AlignedLeft(40, '.')); } RetVal.Append(LoginItem.Language.AlignedLeft(15, '.')); RetVal.Append(LoginItem.IsDisabled ? "Login denied".AlignedLeft(15, '.') : "Login ok".AlignedLeft(15, '.')); List <ServerRole> UserRoles = new List <ServerRole>(); foreach (ServerRole RoleItem in _SqlServer.Roles) { if (RoleItem.EnumMemberNames().Contains(LoginItem.Name)) { UserRoles.Add(RoleItem); } } RetVal.Append(string.Join(", ", UserRoles.Select(x => x.Name))); RetVal.AppendLine(); break; #endregion } } RetVal.AppendLine(MakeSectionFooter($"{UserCount} user(s) listed")); Output?.Invoke(RetVal.ToString()); }
public abstract void DocumentUsers(EDocumentUsersType usersType);