예제 #1
0
        protected override void ProcessRecord()
        {
            if (!CheckSessionCanDoInteractiveAction())
            {
                return;
            }

            var message = Message.Parse(null, Name);

            message.Arguments.Add("ScriptSession.Id", HostData.SessionId);
            if (Parameters != null)
            {
                foreach (var key in Parameters.Keys)
                {
                    message.Arguments.Add(key.ToString(), Parameters[key].ToString());
                }
            }
            var msgHandler = new SendMessageMessage(message, GetResult.IsPresent);

            LogErrors(() => PutMessage(msgHandler));
            if (JobContext.IsJob && GetResult.IsPresent)
            {
                WriteObject(JobContext.MessageQueue.GetResult());
            }
            //return message.MessageQueue.GetResult();
        }
예제 #2
0
        public override void WriteProgress(long sourceId, ProgressRecord record)
        {
            if (!CheckSessionCanDoInteractiveAction(nameof(WriteProgress)))
            {
                return;
            }
            var message = Message.Parse(this, "ise:updateprogress");

            message.Arguments.Add("Activity", record.Activity);
            message.Arguments.Add("ActivityId", record.ActivityId.ToString(CultureInfo.InvariantCulture));
            message.Arguments.Add("CurrentOperation", record.CurrentOperation);
            message.Arguments.Add("StatusDescription", record.StatusDescription);
            message.Arguments.Add("ParentActivityId", record.ParentActivityId.ToString(CultureInfo.InvariantCulture));
            message.Arguments.Add("PercentComplete", record.PercentComplete.ToString(CultureInfo.InvariantCulture));
            message.Arguments.Add("RecordType", record.RecordType.ToString());
            message.Arguments.Add("SecondsRemaining", record.SecondsRemaining.ToString(CultureInfo.InvariantCulture));
            var sheerMessage = new SendMessageMessage(message, false);

            if (JobContext.IsJob)
            {
                message.Arguments.Add("JobId", JobContext.Job.Name);
                JobContext.MessageQueue.PutMessage(sheerMessage);
            }
            else
            {
                sheerMessage.Execute();
            }
        }
예제 #3
0
        public override void WriteProgress(long sourceId, ProgressRecord record)
        {
            if (!CheckSessionCanDoInteractiveAction($"{nameof(WriteProgress)}:{record.Activity}/{record.CurrentOperation} ({record.PercentComplete}%)", false))
            {
                return;
            }
            var message = Message.Parse(this, "ise:updateprogress");

            message.Arguments.Add("Activity", record.Activity);
            message.Arguments.Add("ActivityId", record.ActivityId.ToString(CultureInfo.InvariantCulture));
            message.Arguments.Add("CurrentOperation", record.CurrentOperation);
            message.Arguments.Add("StatusDescription", record.StatusDescription);
            message.Arguments.Add("ParentActivityId", record.ParentActivityId.ToString(CultureInfo.InvariantCulture));
            message.Arguments.Add("PercentComplete", record.PercentComplete.ToString(CultureInfo.InvariantCulture));
            message.Arguments.Add("RecordType", record.RecordType.ToString());
            message.Arguments.Add("SecondsRemaining", record.SecondsRemaining.ToString(CultureInfo.InvariantCulture));
            var sheerMessage = new SendMessageMessage(message, false);

            var jobManager = TypeResolver.ResolveFromCache <IJobManager>();
            var job        = jobManager.GetContextJob();

            if (job != null)
            {
                message.Arguments.Add("JobId", job.Name);
                job.MessageQueue.PutMessage(sheerMessage);
            }
            else
            {
                sheerMessage.Execute();
            }
        }
예제 #4
0
 private void SendUiMessage(Message message)
 {
     if (JobContext.IsJob)
     {
         var sheerMessage = new SendMessageMessage(message, false);
         message.Arguments.Add("JobId", Key);
         JobContext.MessageQueue.PutMessage(sheerMessage);
     }
 }
예제 #5
0
        private void SendUiMessage(Message message)
        {
            var jobManager = TypeResolver.ResolveFromCache <IJobManager>();
            var job        = jobManager.GetContextJob();

            if (job == null)
            {
                return;
            }

            var sheerMessage = new SendMessageMessage(message, false);

            message.Arguments.Add("JobId", Key);
            job.MessageQueue.PutMessage(sheerMessage);
        }
예제 #6
0
 protected override void ProcessRecord()
 {
     var message = Message.Parse(null, Name);
     message.Arguments.Add("ScriptSession.Id", HostData.SessionId);
     if (Parameters != null)
     {
         foreach (var key in Parameters.Keys)
         {
             message.Arguments.Add(key.ToString(), Parameters[key].ToString());
         }
     }
     var msgHandler = new SendMessageMessage(message, GetResult.IsPresent);
     LogErrors(() => PutMessage(msgHandler));
     if (JobContext.IsJob && GetResult.IsPresent)
     {
         WriteObject(JobContext.MessageQueue.GetResult());
     }
     //return message.MessageQueue.GetResult();
 }
예제 #7
0
 public override void WriteProgress(long sourceId, ProgressRecord record)
 {
     var message = Message.Parse(this, "ise:updateprogress");
     message.Arguments.Add("Activity", record.Activity);
     message.Arguments.Add("ActivityId", record.ActivityId.ToString(CultureInfo.InvariantCulture));
     message.Arguments.Add("CurrentOperation", record.CurrentOperation);
     message.Arguments.Add("StatusDescription", record.StatusDescription);
     message.Arguments.Add("ParentActivityId", record.ParentActivityId.ToString(CultureInfo.InvariantCulture));
     message.Arguments.Add("PercentComplete", record.PercentComplete.ToString(CultureInfo.InvariantCulture));
     message.Arguments.Add("RecordType", record.RecordType.ToString());
     message.Arguments.Add("SecondsRemaining", record.SecondsRemaining.ToString(CultureInfo.InvariantCulture));
     var sheerMessage = new SendMessageMessage(message, false);
     if (JobContext.IsJob)
     {
         message.Arguments.Add("JobId", JobContext.Job.Name);
         JobContext.MessageQueue.PutMessage(sheerMessage);
     }
     else
     {
         sheerMessage.Execute();
     }
 }
예제 #8
0
 private void SendUiMessage(Message message)
 {
     var sheerMessage = new SendMessageMessage(message, false);
     if (JobContext.IsJob)
     {
         message.Arguments.Add("JobId", Key);
         JobContext.MessageQueue.PutMessage(sheerMessage);
     }
     else
     {
         sheerMessage.Execute();
     }
 }