Example #1
0
        public IArtifactHandler <TObject> Setup(Action <XafApplication> created, Action <TObject> action)
        {
            _applicationNodeWrapper = new ApplicationNodeWrapper(new Dictionary(new DictionaryNode(ApplicationNodeWrapper.NodeName), Schema.GetCommonSchema()));
            _applicationNodeWrapper.Load(typeof(TObject));

            var objectSpaceProvider = new ObjectSpaceProvider(new MemoryDataStoreProvider());

            _objectSpace = objectSpaceProvider.CreateObjectSpace();

            _currentObject = (TObject)_objectSpace.CreateObject(typeof(TObject));
            if (action != null)
            {
                action.Invoke(_currentObject);
            }

            _xafApplication = Isolate.Fake.Instance <XafApplication>();
//            CollectionSourceBase _collectionSource = null;
//            var collectionSourceBase = Isolate.Fake.Instance<CollectionSourceBase>();
//            Isolate.WhenCalled((String listViewId, CollectionSourceBase collectionSource, bool isRoot) => _xafApplication.CreateListView("", collectionSourceBase,
//                                                                    false)).AndArgumentsMatch((s, @base, arg3) => {
//                                                                        _collectionSource = @base;
//                                                                        return true;
//                                                                    }).WillReturn(new ListView(_collectionSource, _xafApplication, false));
            if (created != null)
            {
                created.Invoke(_xafApplication);
            }
            return(this);
        }
        public virtual void ProcessRequestsToStartWorkflows()
        {
            var objectChangedXpoStartWorkflowRequests = new List <ObjectChangedXpoStartWorkflowRequest>();

            using (IObjectSpace objectSpace = ObjectSpaceProvider.CreateObjectSpace()) {
                foreach (var request in objectSpace.GetObjects <ObjectChangedXpoStartWorkflowRequest>())
                {
                    try {
                        var definition = GetService <IWorkflowDefinitionProvider>().FindDefinition(request.TargetWorkflowUniqueId);
                        if (definition != null && definition.CanOpenHost)
                        {
                            if (GetService <ObjectChangedStartWorkflowService>().StartWorkflow(definition.Name, request.TargetWorkflowUniqueId, request.TargetObjectKey, request.PropertyName, request.OldValue))
                            {
                                OnRequestProcessed(objectSpace, request);
                                objectChangedXpoStartWorkflowRequests.Add(request);
                            }
                        }
                    } catch (Exception e) {
                        e.Data.Add("StartWorkflowOnObjectChangeService.ProcessRequestsToStartWorkflows.currentRequest",
                                   string.Format("Key={0}, TargetObjectKey={1}, TargetWorkflowUniqueId={2}", objectSpace.GetKeyValue(request), request.TargetObjectKey, request.TargetWorkflowUniqueId));
                        throw;
                    }
                }
                objectSpace.Delete(objectChangedXpoStartWorkflowRequests);
                objectSpace.CommitChanges();
            }
        }
Example #3
0
        public virtual void TestFixtureSetUp()
        {
            ObjectSpaceProvider objectSpaceProvider =
                new ObjectSpaceProvider(new MemoryDataStoreProvider());

            Application = new TestApplication();
            Module      = new ModuleBase();
            Application.Modules.Add(Module);
            SetupModuleTypes();
            Application.Setup("TestApplication", objectSpaceProvider);
        }
Example #4
0
        public override IList <IWorkflowDefinition> GetDefinitions()
        {
            IList <IWorkflowDefinition> result = base.GetDefinitions();
            IObjectSpace objectSpace           = ObjectSpaceProvider.CreateObjectSpace();

            foreach (ScheduledWorkflow workflow in objectSpace.GetObjects <ScheduledWorkflow>())
            {
                result.Add(workflow);
            }
            return(result);
        }
Example #5
0
        public override IList <IWorkflowDefinition> GetDefinitions()
        {
            IList <IWorkflowDefinition> result = base.GetDefinitions();
            IObjectSpace objectSpace           = ObjectSpaceProvider.CreateObjectSpace();

            foreach (var type in _types)
            {
                IEnumerable <IXpandWorkflowDefinition> objects = objectSpace.GetObjects(type).OfType <IXpandWorkflowDefinition>();
                foreach (var definition in objects)
                {
                    result.Add(definition);
                }
            }
            return(result);
        }
Example #6
0
        public IList <IWorkflowDefinition> GetDefinitions()
        {
            var result      = new List <IWorkflowDefinition>();
            var objectSpace = ObjectSpaceProvider.CreateObjectSpace();

            foreach (var type in _workflowTypes)
            {
                var objects = objectSpace.GetObjects(type).OfType <IXpandWorkflowDefinition>();
                foreach (var definition in objects)
                {
                    result.Add(definition);
                }
            }
            WorkflowVersioningEngine versioningEngine = GetWorkflowVersioningEngine();

            return(versioningEngine.GetVersionedDefinitions(result.ToArray()));
        }
Example #7
0
 public override void OnTimer()
 {
     using (IObjectSpace objectSpace = ObjectSpaceProvider.CreateObjectSpace()) {
         foreach (T workflow in objectSpace.GetObjects <T>(new BinaryOperator("IsActive", true)))
         {
             WorkflowHost host;
             if (HostManager.Hosts.TryGetValue(workflow.GetUniqueId(), out host))
             {
                 if (NeedToStartWorkflow(objectSpace, workflow))
                 {
                     Guid startWorkflow = host.StartWorkflow(new Dictionary <string, object>());
                     AfterWorkFlowStarted(objectSpace, workflow, startWorkflow);
                     objectSpace.CommitChanges();
                 }
             }
         }
     }
 }
Example #8
0
        public override void OnTimer()
        {
            using (IObjectSpace objectSpace = ObjectSpaceProvider.CreateObjectSpace()) {
                foreach (T workflow in objectSpace.GetObjects <T>(new BinaryOperator("IsActive", true)))
                {
                    WorkflowHost host;
                    if (HostManager.Hosts.TryGetValue(workflow.GetUniqueId(), out host))
                    {
                        if (NeedToStartWorkflow(objectSpace, workflow))
                        {
                            Guid instanceHandle = host.StartWorkflow(new Dictionary <string, object>());
                            GetService <IRunningWorkflowInstanceInfoService>().CreateRunningWorkflowInstanceInfo(workflow.Name, host.ActivityUnigueId, null, instanceHandle);

                            AfterWorkFlowStarted(objectSpace, workflow, instanceHandle);
                            objectSpace.CommitChanges();
                        }
                    }
                }
            }
        }