public static IForm <DeploymentForm> BuildForm() { return(new FormBuilder <DeploymentForm>() .Field(new FieldReflector <DeploymentForm>(nameof(Project)) .SetType(null) .ReplaceTemplate(new TemplateAttribute( TemplateUsage.EnumSelectOne, "Pick a project: {||}") { ChoiceStyle = ChoiceStyleOptions.PerLine }) .SetDefine((state, field) => { foreach (var prod in OctopusClient.GetProjects()) { field .AddDescription(prod.Id, prod.Name) .AddTerms(prod.Id, prod.Name); } return Task.FromResult(true); })) .Field(new FieldReflector <DeploymentForm>(nameof(Environment)) .SetType(null) .ReplaceTemplate(new TemplateAttribute( TemplateUsage.EnumSelectOne, "What evironment would you like to check? {||}") { ChoiceStyle = ChoiceStyleOptions.PerLine }) .SetDefine((state, field) => { foreach (var prod in OctopusClient.GetEnvironments()) { field .AddDescription(prod.Id, prod.Name) .AddTerms(prod.Id, prod.Name); } return Task.FromResult(true); })) .AddRemainingFields() .Build()); }