internal static void Userlist(UserListParms parms) { var un = parms.UserName?.OfType <String>()?.FirstOrDefault(); AmiCollection <SecurityUserInfo> users = null; if (parms.Locked && !String.IsNullOrEmpty(un)) { users = m_client.GetUsers(o => o.UserName.Contains(un) && o.Lockout.HasValue); } else if (!String.IsNullOrEmpty(un)) { users = m_client.GetUsers(o => o.UserName.Contains(un)); } else { users = m_client.GetUsers(o => o.UserName != null); } if (parms.Active) { users.CollectionItem = users.CollectionItem.Where(o => !o.User.ObsoletionTime.HasValue).ToList(); } if (parms.Human) { users.CollectionItem = users.CollectionItem.Where(o => o.User.UserClass == UserClassKeys.HumanUser).ToList(); } else if (parms.System) { users.CollectionItem = users.CollectionItem.Where(o => o.User.UserClass != UserClassKeys.HumanUser).ToList(); } Console.WriteLine("SID{0}UserName{1}Last Lgn{2}Lockout{2} ILA A", new String(' ', 37), new String(' ', 32), new String(' ', 13)); foreach (var usr in users.CollectionItem) { Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{5}{7}{8}{9}", usr.User.Key.Value.ToString("B"), new String(' ', 2), usr.UserName.Length > 38 ? usr.UserName.Substring(0, 38) : usr.UserName, new String(' ', usr.UserName.Length > 38 ? 2 : 40 - usr.UserName.Length), usr.User.LastLoginTime.HasValue ? usr.User.LastLoginTime?.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss") : new String(' ', 19), " ", usr.Lockout.HasValue ? usr.User.Lockout?.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss") : new string(' ', 19), usr.User.InvalidLoginAttempts, new String(' ', 4 - usr.User.InvalidLoginAttempts.ToString().Length), usr.User.ObsoletionTime.HasValue ? " " : " *" ); } }
internal static void Userlist(UserListParms parms) { var un = parms.UserName?.OfType <String>()?.FirstOrDefault(); AmiCollection users = null; if (parms.Locked && !String.IsNullOrEmpty(un)) { users = m_client.GetUsers(o => o.UserName.Contains(un) && o.Lockout.HasValue); } else if (!String.IsNullOrEmpty(un)) { users = m_client.GetUsers(o => o.UserName.Contains(un)); } else { users = m_client.GetUsers(o => o.ObsoletionTime == null); } if (parms.Active) { users.CollectionItem = users.CollectionItem.OfType <SecurityUserInfo>().Where(o => o.Entity.ObsoletionTime.HasValue).OfType <object>().ToList(); } if (parms.Human) { users.CollectionItem = users.CollectionItem.OfType <SecurityUserInfo>().Where(o => o.Entity.UserClass == ActorTypeKeys.HumanUser).OfType <object>().ToList(); } else if (parms.System) { users.CollectionItem = users.CollectionItem.OfType <SecurityUserInfo>().Where(o => o.Entity.UserClass != ActorTypeKeys.HumanUser).OfType <object>().ToList(); } DisplayUtil.TablePrint(users.CollectionItem.OfType <SecurityUserInfo>(), new String[] { "SID", "Name", "Last Auth", "Lockout", "ILA", "A" }, new int[] { 38, 24, 22, 22, 4, 2 }, o => o.Entity.Key, o => o.Entity.UserName, o => o.Entity.LastLoginTimeXml, o => o.Entity.LockoutXml, o => o.Entity.InvalidLoginAttempts, o => o.Entity.ObsoletionTime.HasValue ? null : "*" ); }