Example #1
0
        public void Instantiate_ReportCompleteMessageConstructor()
        {
            var reportCompleteMessage = new ReportCompleteMessage(Guid.NewGuid());

            reportCompleteMessage.Should().NotBeNull();
            reportCompleteMessage.Should().BeOfType(typeof(ReportCompleteMessage));
        }
Example #2
0
        public void Transition(WorkflowInstance instance, StateTransition stateTransition, Guid reportId)
        {
            var instanceInvoker = CreateWorkflowInstanceInvoker(instance, reportId);

            // invoke instance and wait for signal
            instanceInvoker.Resume(stateTransition);
            instanceInvoker.WaitOne();

            if (!instanceInvoker.IsComplete)
            {
                return;
            }

            // clear durable instance id
            instance.DurableInstanceId = Guid.Empty;

            // Publish the ReportCompleted Message
            var reportCompleted = new ReportCompleteMessage(reportId);
            var scope           = Scope <IReportsUnitOfWork> .Current;

            if (scope != null)
            {
                scope.PendingMessages.Add(reportCompleted);
            }
            else
            {
                using (var client = DependencyContainer.Resolve <IMessageBusPublishClient>())
                {
                    client.Instance.Publish(reportCompleted);
                }
            }
        }