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(); } }
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); } }