static async Task Main(string[] args)
        {
            var client      = new WizdomClient(new DeviceCodeTokenHandler(delegate(DeviceCodeResult deviceCodeResult) { Console.WriteLine($"Please open {deviceCodeResult.VerificationUrl} and input code: {deviceCodeResult.UserCode}"); }));
            var environment = await client.ConnectAsync();

            Console.WriteLine($"\nConnected to {environment.appUrl} running Wizdom v.{environment.wizdomVersion.ToString()} as {environment.currentPrincipal.loginName}\n");
            var items = await client.Noticeboard().GetItemsAsync();

            foreach (var item in items.data)
            {
                Console.WriteLine($"{item.created.ToString()} - {item.heading}");
            }

            Console.WriteLine("Done");
        }
Example #2
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Wizdom Rest Client");
            Console.WriteLine("");

            string commandString = string.Empty;

            while (commandString.ToLower() != "continue")
            {
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write(@"
************************************************
Choose Token Handler: 
************************************************

1: Device Code Flow
2: Paste token

q: Quit

Enter command (1, 2 | q) > ");
                commandString = Console.ReadKey().KeyChar.ToString();
                Console.WriteLine("");
                Console.WriteLine("");


                WizdomClient.LoggerDelegate logger = delegate(string message, WizdomClient.LogLevel level)
                {
                    if (level == WizdomClient.LogLevel.info)
                    {
                        return;                                      //ignore info...
                    }
                    var newColor = ConsoleColor.Gray;
                    switch (level)
                    {
                    case WizdomClient.LogLevel.info:
                        newColor = ConsoleColor.Gray;
                        break;

                    case WizdomClient.LogLevel.warn:
                        newColor = ConsoleColor.Yellow;
                        break;

                    case WizdomClient.LogLevel.error:
                        newColor = ConsoleColor.Red;
                        break;

                    default:
                        break;
                    }
                    var old = Console.ForegroundColor;
                    Console.ForegroundColor = newColor;
                    Console.WriteLine(message);
                    Console.ForegroundColor = old;
                };

                WizdomClient.InstanceDecisionHandlerDelegate instanceDecisionHandler = async delegate(List <WizdomInstance> instances)
                {
                    if ((instances?.Count ?? 0) == 0)
                    {
                        return(0);
                    }

                    if (instances.Count == 1)
                    {
                        return(instances[0].LicenseID);
                    }

                    while (true)
                    {
                        int i = 1;
                        foreach (var instance in instances)
                        {
                            Console.WriteLine($"{i}. {instance.LicenseName}");
                            i++;
                        }
                        Console.Write("Choose instance > ");
                        var k = Console.ReadKey().KeyChar.ToString();
                        int iKey;
                        if (int.TryParse(k, out iKey) && iKey < i && iKey > 0)
                        {
                            Console.WriteLine("");
                            Console.WriteLine("");
                            return(instances[iKey - 1].LicenseID);
                        }
                        else
                        {
                            Console.WriteLine();
                            Console.WriteLine("Please choose instance!");
                        }
                    }
                };

                switch (commandString.ToLower())
                {
                case "1":
                    wizdomclient = new WizdomClient(new DeviceCodeTokenHandler())
                    {
                        Logger = logger, InstanceDecisionHandler = instanceDecisionHandler
                    };
                    commandString = "continue";
                    break;

                case "2":
                    wizdomclient = new WizdomClient(new DelegateTokenHandler(async delegate(string clientId, string resourceId)
                    {
                        if (string.IsNullOrEmpty(token))
                        {
                            Console.Write("Input token > ");
                            token = "";
                            while (true)
                            {
                                var k = Console.ReadKey(false);
                                if (k.Key == ConsoleKey.Enter)
                                {
                                    break;
                                }
                                //Console.Write("*");
                                token += k.KeyChar;
                            }
                            Console.WriteLine();
                            Console.WriteLine();
                        }
                        return(token);
                    }, async delegate() { token = string.Empty; }))
                    {
                        Logger = logger, InstanceDecisionHandler = instanceDecisionHandler
                    };
                    commandString = "continue";
                    break;

                case "q":
                    Console.WriteLine("Bye!");
                    return;

                default:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Invalid command.");
                    break;
                }
            }
            Console.WriteLine();

            // main command cycle
            while (true)
            {
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write(@"
************************************************
1: Connect to Wizdom instance
2: Disconnect / Sign Out
3: Get environment direct
4: Get environment using proxy
5: People search (test SharePoint accepts token)
6: List noticeboard news
7: List instances

q: Quit

Enter command (1, 2, 3, 4, 5, 6, 7 | q) > ");
                commandString = Console.ReadKey().KeyChar.ToString();
                Console.WriteLine("");
                Console.WriteLine("");

                switch (commandString.ToLower())
                {
                case "1":
                    var environment = await wizdomclient.ConnectAsync();

                    //var environment = await ConnectToInstanceAsync();
                    if (environment != null)
                    {
                        Console.WriteLine($"Connected to {environment.appUrl} running Wizdom v.{environment.wizdomVersion.ToString()} as {environment.currentPrincipal.loginName}");
                    }
                    else
                    {
                        Console.WriteLine("Error connecting!");
                    }
                    break;

                case "2":
                    await wizdomclient.DisconnectAsync();

                    Console.WriteLine("Disconnected!");
                    break;

                case "3":
                    Console.WriteLine(await wizdomclient.GetAsync("/api/wizdom/noticeboard/environment"));
                    break;

                case "4":
                    Console.WriteLine(await wizdomclient.GetAsync("/api/wizdom/noticeboard/environment", useProxy: true));
                    break;

                case "5":
                    Console.WriteLine(await wizdomclient.GetAsync("/api/wizdom/searchPerson/search?index=3&numberOfUsersPerPage=100&selectProperties=PreferredName&selectProperties=AccountName&resultSource=b09a7990-05ea-4af9-81ef-edfab16c4e31&pageindex=1&queryText=John", useProxy: false));
                    break;

                case "6":
                    await RenderNoticeboardItems();

                    break;

                case "7":
                    var asdf = await wizdomclient.GetInstancesAsync();

                    foreach (var item in asdf)
                    {
                        Console.WriteLine($"License ID: {item.LicenseID}, name: {item.LicenseName}, tenant: {item.TenantId}");
                    }
                    break;

                case "q":
                    Console.WriteLine("Bye!");
                    return;

                default:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Invalid command.");
                    break;
                }
            }
        }