using System; using System.Threading.Tasks; using Aitex.Core.Account; using Aitex.Core.RT.Event; using Aitex.Core.WCF; using MECF.Framework.UI.Core.Accounts; namespace UserLoginTester { internal class Program { private static Credential _loginCred; public static async Task Main(string[] args) { EventClient.Instance.OnEvent += Instance_OnEvent; EventClient.Instance.OnDisconnectedWithRT += Instance_OnDisconnectedWithRT; EventClient.Instance.Start(); var accounts = AccountClient.Instance.Service.GetAccounts(); foreach (var acc in accounts) { Console.WriteLine(acc.LoginName); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(@"Login by 'admin'..."); var retLogin = await AccountClient.Instance.Service.LoginEx("admin", "admin", "0", null); _loginCred = retLogin.Credential; Console.ResetColor(); Console.WriteLine($@"Login Result: {retLogin.Result}"); Console.WriteLine(@"Press any key to exit..."); Console.ReadKey(); AccountClient.Instance.Service.LogoutEx(retLogin.Credential); } private static void Instance_OnDisconnectedWithRT() { throw new NotImplementedException(); } private static void Instance_OnEvent(EventItem evt) { switch (evt.Type) { case EventType.EventUI_Notify: break; case EventType.Dialog_Nofity: break; case EventType.KickOut_Notify: break; case EventType.LoginBySameUser_Notify: if (Guid.TryParse(evt.Description, out var token) && evt.Tag is Credential requestingCred) { if (_loginCred != null && token == _loginCred.Token) { Console.WriteLine( @"Some users is requesting to login the system, you will be forced to switch to read-only mode, do you agree?"); __prompt: Console.Write("[Y]es/[N]o: "); var ack = Console.ReadLine(); switch (ack) { case "Y": AccountClient.Instance.Service.ConfirmLoginRequest(requestingCred); AccountClient.Instance.Service.LogoutEx(_loginCred); break; case "N": AccountClient.Instance.Service.RejectLoginRequest(requestingCred); break; default: goto __prompt; } } } break; case EventType.Sound_Notify: break; case EventType.UIMessage_Notify: //PopUIMessage(obj); break; } } } }