static void Main(string[] args)
        {
            CmdLineArguments parsedArgs = new CmdLineArguments();

            if (Parser.ParseArgumentsWithUsage(args, parsedArgs))
            {
                // the parser only ensures the switch names are specified correctly - still need to validate
                if (parsedArgs.Validate())
                {
                    if (parsedArgs.operation == Operation.DeleteAll && parsedArgs.confirm == false)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write("\n\n\nAre you sure you wish to delete all customers?");
                        Console.Write("\n(Enter 'Y' to delete)?");
                        string confirmPrompt = Console.ReadLine();

                        parsedArgs.confirm = (confirmPrompt.ToLowerInvariant() == "Y".ToLowerInvariant());
                        if (!parsedArgs.confirm)
                        {
                            return;
                        }
                    }
                }
                else
                {
                    return;
                }

                // This is the Microsoft ID of the reseller
                // Please work with your Admin Agent to get it from https://partnercenter.microsoft.com/en-us/pc/AccountSettings/TenantProfile
                string microsoftId = ConfigurationManager.AppSettings["MicrosoftId"];

                // This is the default domain of the reseller
                // Please work with your Admin Agent to get it from https://partnercenter.microsoft.com/en-us/pc/AccountSettings/TenantProfile
                string defaultDomain = ConfigurationManager.AppSettings["DefaultDomain"];

                // This is the appid that is registered for this application in Azure Active Directory (AAD)
                // Please work with your Admin Agent to get it from  https://partnercenter.microsoft.com/en-us/pc/ApiIntegration/Overview
                string appId = ConfigurationManager.AppSettings["AppId"];

                // This is the key for this application in Azure Active Directory
                // This is only available at the time your admin agent has created a new app at https://partnercenter.microsoft.com/en-us/pc/ApiIntegration/Overview
                // You could alternatively goto Azure Active Directory and generate a new key, and use that.
                string key = ConfigurationManager.AppSettings["Key"];

                // Prompts the user to edit the config parametres if its not already done.
                Utilities.ValidateConfiguration(microsoftId, defaultDomain, appId, key);


                try
                {
                    switch (parsedArgs.operation)
                    {
                    case Operation.Export:
                        Orchestrator.ExportCustomers(parsedArgs.file, defaultDomain, appId, key, microsoftId);
                        break;

                    case Operation.Delete:
                        Orchestrator.DeleteCustomers(parsedArgs.file, defaultDomain, appId, key, microsoftId);
                        break;

                    case Operation.DeleteAll:
                        Orchestrator.DeleteAllCustomers(defaultDomain, appId, key, microsoftId);
                        break;

                    default:
                        break;
                    }
                }
                catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("\n Make sure the app.config has all the right settings.  The defaults in the app.config won't work."
                                      + "\n If the settings are correct, its possible you are hitting a service error.  Try again."
                                      + "\n If the error persists, contact support");
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("\n An unrecoverable error occurred:");
                    Console.WriteLine(ex.Message);
                }

                Console.ResetColor();
                Console.Write("\n\n\nHit enter to exit the app...");
                Console.ReadLine();
            }
        }
        static void Main(string[] args)
        {
            CmdLineArguments parsedArgs = new CmdLineArguments();
            if (Parser.ParseArgumentsWithUsage(args, parsedArgs))
            {
                // the parser only ensures the switch names are specified correctly - still need to validate
                if (parsedArgs.Validate())
                {
                    if (parsedArgs.operation == Operation.DeleteAll && parsedArgs.confirm == false)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write("\n\n\nAre you sure you wish to delete all customers?");
                        Console.Write("\n(Enter 'Y' to delete)?");
                        string confirmPrompt = Console.ReadLine();

                        parsedArgs.confirm = (confirmPrompt.ToLowerInvariant() == "Y".ToLowerInvariant());
                        if (!parsedArgs.confirm)
                        {
                            return;
                        }
                    }
                }
                else
                {
                    return;
                }

                // This is the Microsoft ID of the reseller
                // Please work with your Admin Agent to get it from https://partnercenter.microsoft.com/en-us/pc/AccountSettings/TenantProfile
                string microsoftId = ConfigurationManager.AppSettings["MicrosoftId"];

                // This is the default domain of the reseller
                // Please work with your Admin Agent to get it from https://partnercenter.microsoft.com/en-us/pc/AccountSettings/TenantProfile
                string defaultDomain = ConfigurationManager.AppSettings["DefaultDomain"];

                // This is the appid that is registered for this application in Azure Active Directory (AAD)
                // Please work with your Admin Agent to get it from  https://partnercenter.microsoft.com/en-us/pc/ApiIntegration/Overview
                string appId = ConfigurationManager.AppSettings["AppId"];

                // This is the key for this application in Azure Active Directory
                // This is only available at the time your admin agent has created a new app at https://partnercenter.microsoft.com/en-us/pc/ApiIntegration/Overview
                // You could alternatively goto Azure Active Directory and generate a new key, and use that.
                string key = ConfigurationManager.AppSettings["Key"];

                // Prompts the user to edit the config parametres if its not already done.
                Utilities.ValidateConfiguration(microsoftId, defaultDomain, appId, key);

                try
                {
                    switch (parsedArgs.operation)
                    {
                        case Operation.Export:
                            Orchestrator.ExportCustomers(parsedArgs.file, defaultDomain, appId, key, microsoftId);
                            break;

                        case Operation.Delete:
                            Orchestrator.DeleteCustomers(parsedArgs.file, defaultDomain, appId, key, microsoftId);
                            break;

                        case Operation.DeleteAll:
                            Orchestrator.DeleteAllCustomers(defaultDomain, appId, key, microsoftId);
                            break;
                        default:
                            break;
                    }
                }
                catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("\n Make sure the app.config has all the right settings.  The defaults in the app.config won't work."
                            + "\n If the settings are correct, its possible you are hitting a service error.  Try again."
                            + "\n If the error persists, contact support");
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("\n An unrecoverable error occurred:");
                    Console.WriteLine(ex.Message);
                }

                Console.ResetColor();
                Console.Write("\n\n\nHit enter to exit the app...");
                Console.ReadLine();
            }
        }