public StatefulEvent(string code, Guid workflowInstanceId, JsonState state)
 {
     Code  = code;
     State = state;
     WorkflowInstanceId = workflowInstanceId;
 }
Example #2
0
        private async void PollEncodeProgress()
        {
            if (encodeCompleteFired)
            {
                this.encodePollTimer?.Stop();
                this.encodePollTimer?.Dispose();
                return;
            }

            ServerResponse response = null;

            try
            {
                if (this.retryCount > 5)
                {
                    encodeCompleteFired = true;
                    this.encodePollTimer?.Stop();

                    this.EncodeCompleted?.Invoke(sender: this, e: new EncodeCompletedEventArgs(-11));

                    if (this.workerProcess != null && !this.workerProcess.HasExited)
                    {
                        this.workerProcess?.Kill();
                    }

                    return;
                }

                response = await this.MakeHttpGetRequest("PollEncodeProgress");
            }
            catch (Exception e)
            {
                retryCount = this.retryCount + 1;
            }

            if (response == null || !response.WasSuccessful)
            {
                retryCount = this.retryCount + 1;
                return;
            }

            this.retryCount = 0; // Reset

            string statusJson = response.JsonResponse;

            JsonState state = JsonConvert.DeserializeObject <JsonState>(statusJson);

            TaskState taskState = state != null?TaskState.FromRepositoryValue(state.State) : null;

            if (taskState != null && (taskState == TaskState.Working || taskState == TaskState.Searching))
            {
                if (this.EncodeProgress != null)
                {
                    var progressEventArgs = new EncodeProgressEventArgs(
                        fractionComplete: state.Working.Progress,
                        currentFrameRate: state.Working.Rate,
                        averageFrameRate: state.Working.RateAvg,
                        estimatedTimeLeft: TimeSpan.FromSeconds(state.Working.ETASeconds),
                        passId: state.Working.PassID,
                        pass: state.Working.Pass,
                        passCount: state.Working.PassCount,
                        stateCode: taskState.Code);

                    this.EncodeProgress(this, progressEventArgs);
                }
            }
            else if (taskState != null && taskState == TaskState.WorkDone)
            {
                this.encodePollTimer.Stop();
                encodeCompleteFired = true;

                if (this.workerProcess != null && !this.workerProcess.HasExited)
                {
                    try
                    {
                        this.workerProcess?.Kill();
                    }
                    catch (Win32Exception e)
                    {
                        Debug.WriteLine(e);
                    }
                }

                this.EncodeCompleted?.Invoke(sender: this, e: new EncodeCompletedEventArgs(state.WorkDone.Error));
                this.portService.FreePort(this.port);
            }
        }
Example #3
0
 public EventRequestWorkflowMessage(Guid workflowId, Guid workflowInstanceId, string eventCode, JsonState jsonState)
     : base(workflowId, workflowInstanceId, jsonState)
 {
     EventCode = eventCode;
 }
 public RunnerContext(ILifetimeScope lifetimeScope, IDemoRunner runner)
 {
     LifetimeScope = lifetimeScope;
     Runner        = runner;
     State         = new JsonState();
 }
 public WorkflowContext(IRuntimeWorkflowEngine workflowEngine, WorkflowEngineBuilder workflowEngineBuilder,
                        IWorkflowInstance workflowInstance, WorkflowConfiguration workflowConfiguration, JsonState workflowExecutionState)
 {
     _workflowEngineBuilder = workflowEngineBuilder;
     WorkflowEngine         = workflowEngine;
     WorkflowInstance       = workflowInstance;
     WorkflowConfiguration  = workflowConfiguration;
     WorkflowExecutionState = workflowExecutionState ?? new JsonState();
 }
Example #6
0
 public WorkflowMessageState(JsonState jsonEntity)
 {
     _jsonState = jsonEntity;
 }
 public StatefulDomainEvent(string code, Guid workflowInstanceId, string entityType, string entityId, JsonState state) : base(code, workflowInstanceId, state)
 {
     EntityType = entityType;
     EntityId   = entityId;
 }