Пример #1
0
        private static JobStepResponse GetJobStepResponse(Guid jobId, JobStepResponseEnum jobStepResponseEnum, string comment)
        {
            var jobStepResponse = new JobStepResponse
            {
                JobId       = jobId.ToGUID(),
                Response    = jobStepResponseEnum,
                Description = comment,
            };

            return(jobStepResponse);
        }
Пример #2
0
        /// <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;
            }
        }