예제 #1
0
        public async Task <ActionResult> Status(bool all = false, bool error = false, DateTimeOffset?startDate = null)
        {
            var startDateValue = startDate ?? DateTimeOffset.UtcNow;
            var key            = BuildStateEntity.GetPartitionKey(startDateValue);
            var table          = _storageAccount.CreateCloudTableClient().GetTableReference(AzureConstants.TableNames.BuildState);
            var filter         = TableQueryUtil.Column(nameof(TableEntity.PartitionKey), key, ColumnOperator.GreaterThanOrEqual);

            if (error)
            {
                filter = TableQueryUtil.And(
                    filter,
                    TableQueryUtil.Column(nameof(BuildStateEntity.Error), (string)null, ColumnOperator.NotEqual));
            }
            else if (!all)
            {
                filter = TableQueryUtil.And(
                    filter,
                    TableQueryUtil.Column(nameof(BuildStateEntity.IsDataComplete), false));
            }
            var list = await AzureUtil.QueryAsync <BuildStateEntity>(table, filter);

            var model = new BuildStatusModel(all, error, startDateValue, list);

            return(View(viewName: "Status", model: model));
        }
예제 #2
0
        public async Task <BuildStatusModel> GetBuildStatus(string projentname, int buildId)
        {
            BuildStatusModel buildStatusModel = new BuildStatusModel();

            try
            {
                buildStatusModel = await buildManager.GetBuildStatus(projentname, buildId);
            }
            catch (Exception)
            {
            }
            return(buildStatusModel);
        }
예제 #3
0
        public async Task <BuildStatusModel> GetBuildStatus(string projectname, int buildId)
        {
            BuildStatusModel     statusModel = new BuildStatusModel();
            DevOpsConnectionPool poolObj     = _builderPool.Get();

            try
            {
                // Create instance of VssConnection using Personal Access Token
                //var buildclient = new BuildHttpClient(new Uri(c_collectionUri), new VssBasicCredential(string.Empty, personalaccesstoken));
                var buildclient = new BuildHttpClient(new Uri(poolObj.CollUrl), poolObj.VssCredentials);
                var status      = await buildclient.GetBuildAsync(projectname, buildId); //call after some time

                if (status.Result.HasValue)                                              //result of build
                {
                    switch ((int)status.Result.Value)
                    {
                    case 0:    //none
                        statusModel.BuildResult = "None";
                        break;

                    case 2:    //none
                        statusModel.BuildResult = "Succeeded";
                        break;

                    case 4:    //none
                        statusModel.BuildResult = "PartiallySucceeded";
                        break;

                    case 8:    //none
                        statusModel.BuildResult = "Failed";
                        break;

                    case 32:    //none
                        statusModel.BuildResult = "Canceled";
                        break;
                    }
                }
                else
                {
                    statusModel.BuildResult = "";
                }

                if (status.Status.HasValue)//status of buid
                {
                    switch ((int)status.Status.Value)
                    {
                    case 0:    //none
                        statusModel.status = "None";
                        break;

                    case 1:    //none
                        statusModel.status = "InProgress";
                        break;

                    case 2:    //none
                        statusModel.status = "Completed";
                        break;

                    case 4:    //none
                        statusModel.status = "Cancelling";
                        break;

                    case 8:    //none
                        statusModel.status = "Postponed";
                        break;

                    case 32:    //none
                        statusModel.status = "NotStarted";
                        break;

                    case 47:    //none
                        statusModel.status = "All";
                        break;
                    }

                    if (status.StartTime.HasValue)
                    {
                        statusModel.StartTime = status.StartTime.Value.ToUniversalTime(); // if build started
                    }

                    if (status.FinishTime.HasValue)
                    {
                        statusModel.FinishTime = status.FinishTime.Value.ToUniversalTime();
                    }
                }
                else
                {
                    statusModel.status = "";
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                _builderPool.Return(poolObj);
            }
            return(statusModel);
        }