private static JobStepResponse GetJobStepResponse(Guid jobId, JobStepResponseEnum jobStepResponseEnum, string comment) { var jobStepResponse = new JobStepResponse { JobId = jobId.ToGUID(), Response = jobStepResponseEnum, Description = comment, }; return(jobStepResponse); }
/// <summary> /// Helper method for approving or alerting jobs. /// </summary> private async Task <string> SendJobResponseAsync(string args, JobStepResponseEnum responseType) { traceType.WriteInfo("Sending {0} job response. Input: {1}", responseType, args); string[] tokens = args.Split(CommandTokenDelimiter); if (tokens.Length != 2) { throw new ArgumentException("Invalid command arguments"); } // TODO make this optional int incarnationNumber; bool success = int.TryParse(tokens[0], out incarnationNumber); if (!success) { throw new ArgumentException("Invalid command arguments"); } var activityId = Guid.NewGuid(); string[] jobIds = tokens[1].Split(new[] { ';', ',' }, StringSplitOptions.RemoveEmptyEntries); var jobResponseMap = jobIds.ToDictionary( i => Guid.Parse(i), _ => responseType); try { await policyAgentClient.SendJobResponseAsync( activityId, incarnationNumber, jobResponseMap, "{0} by operator command".ToString(responseType), CancellationToken.None).ConfigureAwait(false); traceType.WriteInfo("{0} job response sent successfully", responseType); return(string.Empty); } catch (ManagementException) { traceType.WriteWarning("Error in management protocol while sending job response"); throw; } }