void IVariableSetter <SelectBuildConfigurationVariable> .BindToVariable(SelectBuildConfigurationVariable variable, string defaultValue) { if (variable == null) { throw new ArgumentNullException("variable"); } this.FillItems(TeamCityConfigurer.GetConfigurer(variable.ConfigurationProfileName)); this.SelectedValue = AH.CoalesceString(variable.Value, defaultValue); }
protected override void CreateChildControls() { this.txtArtifactName = new ValidatingTextBox { Required = true }; this.txtBranchName = new ValidatingTextBox() { DefaultText = "Default" }; this.chkArtifactNameLocked = new CheckBox { Text = "Allow selection at build time" }; this.chkBranchNameLocked = new CheckBox { Text = "Allow selection at build time" }; this.ddlBuildConfigurationId = new SelectBuildConfigurationPicker() { ID = "ddlBuildConfigurationId" }; this.ddlBuildConfigurationId.ExternalInit = () => { int?configurerId = this.TryGetConfigurerId(); this.ddlBuildConfigurationId.FillItems(TeamCityConfigurer.GetConfigurer(configurerId: configurerId)); }; this.ddlBuildNumber = new SelectList(); this.ddlBuildNumber.Items.Add(new SelectListItem("Select at build import time", "")); this.ddlBuildNumber.Items.Add(new SelectListItem("Always use last successful build", "lastSuccessful")); this.ddlBuildNumber.Items.Add(new SelectListItem("Always use last finished build", "lastFinished")); this.ddlBuildNumber.Items.Add(new SelectListItem("Always use last pinned build", "lastPinned")); this.Controls.Add( new SlimFormField("Build configuration:", this.ddlBuildConfigurationId), new SlimFormField("TeamCity build number:", this.ddlBuildNumber), new SlimFormField("Artifact name:", new Div(this.txtArtifactName), new Div(this.chkArtifactNameLocked)) { HelpText = "The name of artifact, for example: \"ideaIC-118.SNAPSHOT.win.zip\"." }, new SlimFormField("Branch name:", new Div(this.txtBranchName), new Div(this.chkBranchNameLocked)) { HelpText = "The branch used to get the artifact, typically used in conjunction with predefined constant build numbers." } ); }
private static object GetBuildNumbers(string buildConfigurationId, int configurerId) { TeamCityConfigurer configurer; if (configurerId == 0) { configurer = TeamCityConfigurer.GetConfigurer(); } else { configurer = (TeamCityConfigurer)Util.ExtensionConfigurers.GetExtensionConfigurer(configurerId); } using (var client = new WebClient()) { client.BaseAddress = configurer.BaseUrl; if (!string.IsNullOrEmpty(configurer.Username)) { client.Credentials = new NetworkCredential(configurer.Username, configurer.Password); } string buildHistoryUrl = string.Format("app/rest/buildTypes/id:{0}/builds", Uri.EscapeDataString(buildConfigurationId)); var list = new List <object>(); list.Add(new { text = "Last successful build", id = "lastSuccessful" }); list.Add(new { text = "Last pinned build", id = "lastPinned" }); list.Add(new { text = "Last finished build", id = "lastFinished" }); list.AddRange(XDocument .Parse(client.DownloadString(buildHistoryUrl)) .Element("builds") .Elements("build") .Select(e => new { id = (string)e.Attribute("number"), text = (string)e.Attribute("number") })); return(list); } }