Ejemplo n.º 1
0
        public QueueGetItemCommand(IJenkinsContext context, int itemNumber)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            Url      = NetPath.Combine(context.BaseUrl, "queue/item", itemNumber.ToString(), "api/xml");
            UserName = context.UserName;
            Password = context.Password;
            Crumb    = context.Crumb;

            OnWrite = request => {
                request.Method = "POST";
            };

            OnRead = response => {
                using (var stream = response.GetResponseStream()) {
                    if (stream == null)
                    {
                        return;
                    }

                    var document = XDocument.Load(stream);
                    if (document.Root == null)
                    {
                        throw new ApplicationException("An empty response was returned!");
                    }

                    Result = new JenkinsQueueItem(document.Root);
                }
            };
        }
        public async static Task DequeueJob(JenkinsQueueItem queueItem, string jenkinsServerUrl)
        {
            if (queueItem == null)
            {
                throw new ArgumentNullException("queueItem");
            }

            Uri dequeueUri = CreateDeqeueuBuildUri(jenkinsServerUrl, queueItem);

            using (WebClient client = JenkinsDataLoader.CreateJenkinsWebClient(jenkinsServerUrl))
            {
                byte[] response = await client.UploadValuesTaskAsync(dequeueUri, new NameValueCollection());
            }
        }
        private static Uri CreateDeqeueuBuildUri(string jenkinsServerUrl, JenkinsQueueItem queueItem)
        {
            var serverUri = new Uri(jenkinsServerUrl);

            return(new Uri(serverUri, "queue/cancelItem?id=" + queueItem.ID));
        }