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)); }
public async Task <BuildStatusModel> GetBuildStatus(string projentname, int buildId) { BuildStatusModel buildStatusModel = new BuildStatusModel(); try { buildStatusModel = await buildManager.GetBuildStatus(projentname, buildId); } catch (Exception) { } return(buildStatusModel); }
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); }