public DataInitTask( CosmosOptions cosmosOptions, StorageOptions storageOptions, DataInitTypes selectedTypes) { CosmosOptions = cosmosOptions; StorageOptions = storageOptions; SelectedTypes = selectedTypes; }
public static void Configure(CommandLineApplication command) { command.Description = "Creates initial data for application."; command.SetDefaultHelp(); var typesOption = command.Option( "--types | -t <types>", $"The comma-separated list of types to initialize ({AllDataTypes}) or '*' for all.", CommandOptionType.SingleValue); command.OnExecute(async() => { var cosmos = new CosmosOptions(); var storage = new StorageOptions(); DataInitTypes selectedTypes = DataInitTypes.None; string typesText = typesOption.Value(); if (typesText == "*") { selectedTypes = DataInitTypes.Domains | DataInitTypes.Licenses | DataInitTypes.FAQs | DataInitTypes.Email | DataInitTypes.ARM | DataInitTypes.DatasetOwners; } else if (!string.IsNullOrWhiteSpace(typesText)) { selectedTypes = typesText .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(s => Enum.Parse(typeof(DataInitTypes), s.Trim(), true)) .Aggregate(DataInitTypes.None, (selected, v) => selected | (DataInitTypes)v); } if (selectedTypes == DataInitTypes.None) { throw new ArgumentException("No data types specified."); } if (command.HasAllRequiredParameters(new[] { cosmos.Endpoint, cosmos.Database, storage.Account })) { await new Admin.Data.DataInitTask(cosmos, storage, selectedTypes).ExecuteAsync(); } return(0); }); }