Пример #1
0
        void DrawCapability(SystemCapability systemCapability, BaseCapability capability)
        {
            switch (systemCapability)
            {
            case SystemCapability.iCloud:
                DrawICloudCapability(capability as ICloudCapability);
                break;

            case SystemCapability.PushNotifications:
                DrawPushNotificationsCapability(capability as PushNotificationsCapability);
                break;

            case SystemCapability.GameCenter:
                DrawGameCenterCapability(capability as GameCenterCapability);
                break;

            case SystemCapability.Wallet:
                DrawWalletCapability(capability as WalletCapability);
                break;

            case SystemCapability.Siri:
                DrawSiriCapability(capability as SiriCapability);
                break;

            case SystemCapability.ApplePay:
                DrawApplePayCapability(capability as ApplePayCapability);
                break;

            case SystemCapability.InAppPurchase:
                DrawInAppPurchaseCapability(capability as InAppPurchaseCapability);
                break;

            case SystemCapability.Maps:
                DrawMapsCapability(capability as MapsCapability);
                break;

            case SystemCapability.GameControllers:
                DrawGameControllersCapability(capability as GameControllersCapability);
                break;

            case SystemCapability.PersonalVPN:
                DrawPersonalVPNCapability(capability as PersonalVPNCapability);
                break;

            case SystemCapability.NetworkExtensions:
                DrawNetworkExtensionsCapability(capability as NetworkExtensionsCapability);
                break;

            case SystemCapability.HotspotConfiguration:
                DrawHotspotConfigurationCapability(capability as HotspotConfigurationCapability);
                break;

            case SystemCapability.Multipath:
                DrawMultipathCapability(capability as MultipathCapability);
                break;

            case SystemCapability.NFCTagReading:
                DrawNFCTagReadingCapability(capability as NFCTagReadingCapability);
                break;

            case SystemCapability.BackgroundModes:
                DrawBackgroundModesCapability(capability as BackgroundModesCapability);
                break;

            case SystemCapability.InterAppAudio:
                DrawInterAppAudioCapability(capability as InterAppAudioCapability);
                break;

            case SystemCapability.KeychainSharing:
                DrawKeychainSharingCapability(capability as KeychainSharingCapability);
                break;

            case SystemCapability.AssociatedDomains:
                DrawAssociatedDomainsCapability(capability as AssociatedDomainsCapability);
                break;

            case SystemCapability.AppGroups:
                DrawAppGroupsCapability(capability as AppGroupsCapability);
                break;

            case SystemCapability.DataProtection:
                DrawDataProtectionapability(capability as DataProtectionapability);
                break;

            case SystemCapability.HomeKit:
                DrawHomeKitCapability(capability as HomeKitCapability);
                break;

            case SystemCapability.HealthKit:
                DrawHealthKitCapability(capability as HealthKitCapability);
                break;

            case SystemCapability.WirelessAccessoryConfiguration:
                DrawWirelessAccessoryConfigurationCapability(capability as WirelessAccessoryConfigurationCapability);
                break;

            default:
                throw new System.ArgumentOutOfRangeException();
            }
        }
Пример #2
0
        private static void Main(string[] args)
        {
            if (!Parser.TryParse(args, out s_options, new ParserOptions()
            {
                VariableNamePrefix = ParserPrefix
            }))
            {
                return;
            }

            if (s_options.CookieToken == null)
            {
                Colorizer.WriteLine($"[Red!Error]: Please specify authentication token as an argument or in the environment variable [Yellow!{ParserPrefix}_token]");
                return;
            }

            FabricBotClient rs = new FabricBotClient(s_options.Owner, s_options.Repo, s_options.CookieToken);

            string payload = string.Empty;
            string taskId  = string.Empty;

            // for Create and update, construct the payload and taskId
            if (s_options.Action == ActionToTake.create || s_options.Action == ActionToTake.update)
            {
                // Instantiate the object based on the TaskType
                BaseCapability capability = CreateCapabilityObject(s_options);
                payload = capability.GetPayload();
                taskId  = capability.GetTaskId();
            }

            if (s_options.Prompt)
            {
                Colorizer.Write("Proceed with [Cyan!{0}] for repo [Yellow!{1}\\{2}] (y/n)? ", s_options.Action, s_options.Owner, s_options.Repo);
                var key = Console.ReadKey();

                if (key.Key != ConsoleKey.Y)
                {
                    Colorizer.WriteLine("No action taken.");
                    return;
                }
                Colorizer.WriteLine("");
            }

            try
            {
                switch (s_options.Action)
                {
                case ActionToTake.create:
                    rs.CreateTask(payload);
                    break;

                case ActionToTake.update:
                    rs.UpdateTask(taskId, payload);
                    break;

                case ActionToTake.delete:
                    rs.DeleteTask(s_options.TaskId);
                    break;

                case ActionToTake.deleteall:
                    rs.DeleteAll();
                    break;

                case ActionToTake.listTaskIds:
                    var taskIds = rs.GetTaskIds();
                    foreach (string item in taskIds)
                    {
                        Colorizer.WriteLine("Found task with id: [Yellow!{0}]", item);
                    }
                    break;

                default:
                    Colorizer.WriteLine($"[Red!Error]: Command [Yellow!{s_options.Action}] unknown.");
                    return;
                }
                Colorizer.WriteLine("[Green!Done].");
            }
            catch (Exception e)
            {
                Colorizer.WriteLine("[Red!Error]: {0}", e.Message);
            }
        }