/// <summary> /// Executes the activity. /// </summary> /// <param name="context">The context.</param> /// <returns> /// A <see cref="BuildVersionDetails"/> instance representing the generated version. /// </returns> protected override BuildVersionDetails Execute(CodeActivityContext context) { // Validate required input properties. var connectionString = DatabaseConnectionString.Get(context); if (string.IsNullOrWhiteSpace(connectionString)) { throw new InvalidOperationException("The DatabaseConnectionString property is required and cannot be null, empty or whitespace."); } var projectName = ProjectName.Get(context); if (string.IsNullOrWhiteSpace(projectName)) { throw new InvalidOperationException("The ProjectName property is required and cannot be null, empty or whitespace."); } var projectConfigName = ProjectConfigName.Get(context); if (string.IsNullOrWhiteSpace(projectConfigName)) { throw new InvalidOperationException("The ProjectConfigName property is required and cannot be null, empty or whitespace."); } var buildDetail = context.GetExtension <IBuildDetail>(); var buildDefinitionName = buildDetail.BuildDefinition.Name; var commandLog = new CodeActivityContextCommandLog(context); var lockTimeoutSeconds = LockTimeoutSeconds.Get(context); var requestedBy = buildDetail.RequestedBy; var teamProject = buildDetail.TeamProject; var command = new CreateVersionCommand { BuildDefinitionName = buildDefinitionName, CommandLog = commandLog, ConnectionString = connectionString, LockTimeoutSeconds = lockTimeoutSeconds, ProjectConfigName = projectConfigName, ProjectName = projectName, RequestedBy = requestedBy, TeamProjectName = teamProject }; var versionDetails = command.Execute(); // Execute optional features. SetBuildNumber(context, buildDetail, versionDetails); SetDropLocation(context, buildDetail, versionDetails, projectName); // Save any changes to the build detail instance. buildDetail.Save(); // Map the IVersionDetails instance to an instance of BuildVersionDetails. var buildVersionDetails = BuildVersionDetails.FromIVersionDetails(versionDetails); // Return the result. return(buildVersionDetails); }
protected override void Execute(CodeActivityContext context) { //var inputData = InputCreditData.Get(context); List <string> listApprovedCreditStatus = new List <string> { "Approved", "Disbursed", "Disbursing", "Disbursing&Repaying", "Effective", "Fully Disbursed", "Fully Repaid", "Repaid", "Repaying", "Signed" }; WebUtility webUtility = new WebUtility(ApiEndpoint); var scoreRequest = new { Inputs = new Dictionary <string, List <Dictionary <string, string> > >() { { "input1", new List <Dictionary <string, string> >() { new Dictionary <string, string>() { { "Region", Region.ToString().Replace("_", " ") }, { "Country", Country.Get(context) }, { "Borrower", Borrower.Get(context) }, { "Project Name", ProjectName.Get(context) }, { "Original Principal Amount", PrincipalAmount.Get(context).ToString() }, { "Credit Status", "" } } } }, }, GlobalParameters = new Dictionary <string, string>() { } }; try { string jsonStringInput = JsonConvert.SerializeObject(scoreRequest); var responseOutput = Task.Run(async() => await webUtility.PostAsync(bodyAsJsonString: jsonStringInput, token: ApiKey)); JObject jsonResponse = JObject.Parse(responseOutput.Result); string predictedStatus = jsonResponse.SelectToken("$..output1[0]")["Scored Labels"].ToString(); string grantStatus = ""; if (listApprovedCreditStatus.Contains(predictedStatus)) { grantStatus = GrantStatus.Approved.ToString(); } else { grantStatus = GrantStatus.Rejected.ToString(); } Outcome.Set(context, grantStatus); } catch (Exception ex) { throw new System.Exception($"Actual Exception: {ex.InnerException}\nPossible cause: {apiHostingPlanPrompt}"); } }