コード例 #1
0
        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);
        }
コード例 #2
0
        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."
            }
                );
        }
コード例 #3
0
        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);
            }
        }