private void StopWorkflows()
        {
            logger.LogVerbose("Stopping configured workflows");

            if (stoppedWorkflows.Count > 0)
            {
                throw new ValidationException("There are alredy stopped workflows, activate them first!");
            }

            List <WorkflowEntity> allWorkflows = processRepository.GetAllWorkflows().Where(p => p.WfType == WorkflowType.Definition && (p.WfCategory == WorkflowCategory.Workflow || p.WfCategory == WorkflowCategory.BusinessRule)).ToList();

            if (workflows == null)
            {
                workflows = allWorkflows.Select(p => p.Name).ToList();
            }

            if (workflows != null && workflows.Count > 0)
            {
                foreach (var item in workflows)
                {
                    WorkflowEntity wkflow = allWorkflows.FirstOrDefault(p => p.Name == item);
                    if (wkflow != null && wkflow.WfState == WorkflowState.Activated)
                    {
                        DeactivateWorkflow(wkflow);
                    }
                    else
                    {
                        logger.LogVerbose($"Workflows {item} does not exist or is already stopped");
                    }
                }
            }
        }
Example #2
0
        public void CanCreateSaveUpdateAndComplete()
        {
            IWorkflowEntity toReturn = new WorkflowEntity();

            _workflowPersister.Expect(p => p.CreateEmptyWorkflowEntity(Guid.Empty)).IgnoreArguments().Repeat.Times(1).Return(toReturn);
            _workflowPersister.Expect(p => p.Load(Guid.Empty)).IgnoreArguments().Repeat.Times(2).Return(toReturn);
            _workflowPersister.Expect(p => p.Save(toReturn));
            _workflowPersister.Expect(p => p.Update(toReturn));
            _workflowPersister.Expect(p => p.Complete(toReturn));

            IStateMachineContext machineContext = _workflowService.Start(@"simplestatemachine.boo");

            Assert.IsNotNull(machineContext);
            Assert.IsTrue(machineContext.IsStarted);

            Assert.AreEqual("Initial", machineContext.CurrentState.StateName);

            // should trigger the Update
            machineContext.HandleEvent(1);

            Assert.AreEqual("First", machineContext.CurrentState.StateName);

            // should trigger the Complete
            machineContext.HandleEvent(3);

            _workflowPersister.VerifyAllExpectations();
        }
Example #3
0
        // Si la actividad devuelve un valor, se debe derivar de CodeActivity<TResult>
        // y devolver el valor desde el método Execute.
        protected override void Execute(CodeActivityContext context)
        {
            logger.Info("WorkflowInstanceId={0} Step2", context.WorkflowInstanceId);

            WorkflowEntity       dataEntry        = context.GetValue(this.Entry);
            List <ParkingEntity> dataEntryParking = context.GetValue(this.EntryParking);

            for (int i = 0; i < dataEntryParking.Count; i++)
            {
                string jObject = @"{""payload"": ""{\""{0}\"": " +
                                 @"\""" + dataEntry.IdPlaces[i] + @"\""" +
                                 @"}"" , ""deviceId"": """ +
                                 service +
                                 @"""}";
                logger.Info("Step2 jObject: {0}", jObject);

                logger.Info("Step2 Mapper- init");
                Mapper mapper = new Mapper();
                var    result = mapper.Execute(jObject, new Foursquare());
                logger.Info("Step2 Mapper- final");

                float rating = float.Parse(result.Response.Venue.Rating.ToString(new NumberFormatInfo()
                {
                    NumberDecimalSeparator = "."
                })) / float.Parse("2.0");
                dataEntryParking.ElementAt(i).Ranking = rating;
                logger.Info("Step2 google rating{0}", rating);
            }

            this.Out.Set(context, dataEntryParking);
        }
        public void SaveAndLoad()
        {
            var filePersister = new FilePersister(string.Empty);

            WorkflowEntity workflowEntity = new WorkflowEntity
            {
                CurrentState                 = "CurrentState",
                DomainContextId              = Guid.NewGuid(),
                DomainContextStatusProperty  = "DomainContextStatusProperty",
                DomainContextTypeDescription = "DomainContextTypeDescription",
                MachineConfiguration         = "MachineConfiguration",
                WorkflowId = Guid.NewGuid()
            };

            filePersister.Save(workflowEntity);

            var path = string.Format("{0}.xml", workflowEntity.WorkflowId);

            Assert.That(File.Exists(path));

            var workflowEntity1 = filePersister.Load(workflowEntity.WorkflowId);

            Assert.AreEqual(workflowEntity1.CurrentState, workflowEntity.CurrentState);
            Assert.AreEqual(workflowEntity1.DomainContextId, workflowEntity.DomainContextId);
            Assert.AreEqual(workflowEntity1.DomainContextStatusProperty, workflowEntity.DomainContextStatusProperty);
            Assert.AreEqual(workflowEntity1.DomainContextTypeDescription, workflowEntity.DomainContextTypeDescription);
            Assert.AreEqual(workflowEntity1.MachineConfiguration, workflowEntity.MachineConfiguration);
            Assert.AreEqual(workflowEntity1.WorkflowId, workflowEntity.WorkflowId);
            Assert.AreEqual(workflowEntity1.WorkflowId, workflowEntity.WorkflowId);

            File.Delete(path);
        }
Example #5
0
        public void CanPersistAndRestore()
        {
            IWorkflowEntity toReturn = new WorkflowEntity();

            _workflowPersister.Expect(p => p.CreateEmptyWorkflowEntity(Guid.Empty)).IgnoreArguments().Return(toReturn);
            _workflowPersister.Expect(p => p.Save(new WorkflowEntity())).IgnoreArguments().Callback <IWorkflowEntity>(x =>
            {
                toReturn = x;
                return(true);
            });
            IStateMachineContext machineContext = _workflowService.Start(@"testStateMachine.boo");

            Assert.IsNotNull(machineContext);
            Assert.IsTrue(machineContext.IsStarted);
            Assert.IsNotNull(toReturn);
            Assert.That(Guid.Empty == toReturn.WorkflowId, Is.Not.True);

            Assert.AreEqual("Initial", machineContext.CurrentState.StateName);
            Assert.AreNotEqual(Guid.Empty, machineContext.Id);

            _workflowPersister.Expect(p => p.Load(new Guid())).IgnoreArguments().Return(toReturn);

            IStateMachineContext restoredMachine = _workflowService.Load(machineContext.Id);

            Assert.AreNotSame(restoredMachine, _workflowService);

            Assert.IsTrue(restoredMachine.IsStarted);
            Assert.AreEqual(machineContext.CurrentState.StateName, restoredMachine.CurrentState.StateName);

            _workflowPersister.VerifyAllExpectations();
        }
Example #6
0
        /// <summary>
        /// 点击关闭设置按钮的监听
        /// </summary>
        public void OnClickCloseSetting()
        {
            entity = (WorkflowEntity)workModel.DataEntity;
            entity.SwitchToTargetWorkflow = "MaininterfaceWorkflowLogic";
            var logic = workModel.GetComponent <SettingWorkflowLogic>();
            SettingWorkflowLogic settingWorkflowLogic = logic;

            settingWorkflowLogic.Execute();
        }
Example #7
0
        /// <summary>
        /// 点击关闭设置按钮的监听
        /// </summary>
        public void OnClickCloseHelp()
        {
            entity = (WorkflowEntity)workModel.DataEntity;
            entity.SwitchToTargetWorkflow = "MaininterfaceWorkflowLogic";
            HelpWorkflowLogic helpWorkflow = workModel.GetComponent <HelpWorkflowLogic>();

            helpWorkflow.Execute();
            //helpUIEntity.isShow = !helpUIEntity.isShow;
        }
Example #8
0
 public static int CreateOrUpdateWorkflow(
     IWorkflowService workflowService,
     WorkflowEntity workflowEntity)
 {
     return(workflowService.DbConnection
            .Query <int>(CommandBuilder.CreateOrUpdateWorkflow(workflowEntity),
                         workflowEntity)
            .FirstOrDefault());
 }
Example #9
0
            public void SetFullWorkflowElement(WorkflowEntity workflow, XElement element)
            {
                var model = (WorkflowReplacementModel?)this.customResolutionModel.TryGetCN(Guid.Parse(element.Attribute("Guid") !.Value));
                var wie   = new WorkflowImportExport(workflow)
                {
                    ReplacementModel = model
                };

                wie.FromXml(element, this);
            }
Example #10
0
        public void CanCreateUsingWorkflowServiceTest()
        {
            IWorkflowEntity toReturn = new WorkflowEntity();

            _workflowPersister.Expect(p => p.CreateEmptyWorkflowEntity(Guid.Empty)).IgnoreArguments().Return(toReturn);
            IStateMachineContext machineContext = _workflowService.Start(@"testStateMachine.boo");

            Assert.IsNotNull(machineContext);
            Assert.IsTrue(machineContext.IsStarted);

            _workflowPersister.VerifyAllExpectations();
        }
Example #11
0
    public WorkflowBuilder(WorkflowEntity wf)
    {
        using (HeavyProfiler.Log("WorkflowBuilder"))
            using (new EntityCache())
            {
                this.workflow = wf;

                List <WorkflowConnectionEntity> connections;
                List <WorkflowEventEntity>      events;
                List <WorkflowActivityEntity>   activities;
                List <WorkflowGatewayEntity>    gateways;
                List <WorkflowLaneEntity>       lanes;
                List <WorkflowPoolEntity>       poolEntities;

                if (wf.IsNew)
                {
                    connections  = new List <WorkflowConnectionEntity>();
                    events       = new List <WorkflowEventEntity>();
                    activities   = new List <WorkflowActivityEntity>();
                    gateways     = new List <WorkflowGatewayEntity>();
                    lanes        = new List <WorkflowLaneEntity>();
                    poolEntities = new List <WorkflowPoolEntity>();
                }
                else
                {
                    connections  = wf.WorkflowConnections().ToList();
                    events       = wf.WorkflowEvents().ToList();
                    activities   = wf.WorkflowActivities().ToList();
                    gateways     = wf.WorkflowGateways().ToList();
                    lanes        = wf.WorkflowPools().SelectMany(a => a.WorkflowLanes()).ToList();
                    poolEntities = wf.WorkflowPools().ToList();
                }

                var xmlConnections = connections.Select(a => new XmlEntity <WorkflowConnectionEntity>(a)).ToList();
                var nodes          = events.Cast <IWorkflowNodeEntity>().Concat(activities).Concat(gateways).ToList();

                this.pools = (from pool in poolEntities
                              let laneBuilders = (from lane in lanes
                                                  where lane.Pool.Is(pool)
                                                  select new LaneBuilder(lane,
                                                                         activities.Where(a => a.Lane.Is(lane)),
                                                                         events.Where(a => a.Lane.Is(lane)),
                                                                         gateways.Where(a => a.Lane.Is(lane)),
                                                                         xmlConnections.Where(c => c.Entity.From.Lane.Is(lane) || c.Entity.To.Lane.Is(lane))))

                                                 let sequenceFlows = xmlConnections.Where(c => c.Entity.From.Lane.Pool.Is(pool) && c.Entity.To.Lane.Pool.Is(pool))

                                                                     select new PoolBuilder(pool, laneBuilders, sequenceFlows))
                             .ToDictionary(a => a.pool.Entity.ToLite());

                this.messageFlows = xmlConnections.Where(c => !c.Entity.From.Lane.Pool.Is(c.Entity.To.Lane.Pool)).ToList();
            }
    }
Example #12
0
        public static PreviewResult PreviewChanges(WorkflowEntity workflow, WorkflowModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var document = XDocument.Parse(model.DiagramXml);
            var wb       = new WorkflowBuilder(workflow);

            return(wb.PreviewChanges(document, model));
        }
Example #13
0
        /// <summary>
        /// Creates a new Workflow Designer instance (VB) with Intellisense
        /// </summary>
        /// <param name="sourceFile">Workflow FileName</param>
        public static void NewInstanceVB(string sourceFile = _defaultWorkflow)
        {
            _expressionEditorServiceVB = new VbExpressionEditorService();

            _wfDesigner = new WorkflowDesigner();

            Hashtable hashTable = new Hashtable
            {
                { WorkflowDesignerColors.DesignerViewShellBarControlBackgroundColorKey, SystemColors.HighlightBrush },
                { WorkflowDesignerColors.DesignerViewShellBarColorGradientBeginKey, SystemColors.HighlightBrush },
                { WorkflowDesignerColors.DesignerViewShellBarColorGradientEndKey, SystemColors.HighlightBrush },
            };

            _wfDesigner.PropertyInspectorFontAndColorData = System.Xaml.XamlServices.Save(hashTable);

            _wfDesigner.Context.Services.GetService <DesignerConfigurationService>().TargetFrameworkName = new System.Runtime.Versioning.FrameworkName(".NETFramework", new Version(4, 5));
            _wfDesigner.Context.Services.GetService <DesignerConfigurationService>().LoadingFromUntrustedSourceEnabled = true;
            _wfDesigner.Context.Services.GetService <DesignerConfigurationService>().AutoConnectEnabled         = true;
            _wfDesigner.Context.Services.GetService <DesignerConfigurationService>().RubberBandSelectionEnabled = true;
            _wfDesigner.Context.Services.Publish <IExpressionEditorService>(_expressionEditorServiceVB);

            //associates all of the basic activities with their designers
            new DesignerMetadata().Register();

            //load Workflow Xaml
            _wfDesigner.Load(sourceFile);

            SelectHelper._wfDesigner = _wfDesigner;
            if (!SelectHelper.WorkflowDictionary.ContainsKey(sourceFile))
            {
                SelectHelper.WorkflowDictionary.Add(sourceFile, _wfDesigner);
            }
            else
            {
                SelectHelper.WorkflowDictionary[sourceFile] = _wfDesigner;
            }
            if (!SelectHelper.RuntimeApplicationHelperDictionary.ContainsKey(sourceFile))
            {
                SelectHelper.RuntimeApplicationHelperDictionary.Add(sourceFile, new RuntimeApplicationHelper());
            }

            WorkflowEntity workflowEntity = new WorkflowEntity();

            if (!SelectHelper.WorkflowEntityDictionary.ContainsKey(sourceFile))
            {
                SelectHelper.WorkflowEntityDictionary.Add(sourceFile, workflowEntity);
            }
            else
            {
                SelectHelper.WorkflowEntityDictionary[sourceFile] = workflowEntity;
            }
        }
Example #14
0
 public void SubmitForm(WorkflowEntity itemsEntity, string keyValue)
 {
     if (!string.IsNullOrEmpty(keyValue))
     {
         itemsEntity.Modify(keyValue);
         service.Update(itemsEntity);
     }
     else
     {
         itemsEntity.Create();
         service.Insert(itemsEntity);
     }
 }
 private void DeactivateWorkflow(WorkflowEntity wkflow)
 {
     try
     {
         processRepository.DeActivateWorkflow(wkflow.Id);
         stoppedWorkflows.Add(wkflow.Id);
         logger.LogVerbose($"Workflows {wkflow.Name} has been stopped");
     }
     catch (Exception ex)
     {
         logger.LogWarning($"Cannot stop workflow {wkflow.Name} error {ex.Message} ");
     }
 }
Example #16
0
        public void CanPersistAndRestoreDomainContextWithStatusProperty()
        {
            var user = new User();

            user.StatusChanged += user_StatusChanged;

            _domainContextRepository.Expect(x => x.GetId(user)).Return(user.Id);
            _domainContextRepository.Expect(x => x.GetTypeDescription(user)).Return("SimpleStateMachine.User");
            _domainContextRepository.Expect(x => x.Save(user));
            _domainContextRepository.Expect(x => x.Load("SimpleStateMachine.User", user.Id)).Return(new User());

            IWorkflowEntity toReturn = new WorkflowEntity();

            _workflowPersister.Expect(p => p.CreateEmptyWorkflowEntity(Guid.Empty)).IgnoreArguments().Return(toReturn);

            _workflowPersister.Expect(p => p.Save(new WorkflowEntity())).IgnoreArguments().Callback <IWorkflowEntity>(x =>
            {
                toReturn = x;
                return(true);
            });

            IStateMachineContext machineContext = _workflowService.Start(@"testStateMachine.boo", user, "CurrentStatus");

            Assert.IsNotNull(machineContext);
            Assert.IsTrue(machineContext.IsStarted);

            Assert.AreEqual(user.CurrentStatus, machineContext.CurrentState.StateIdentifier);
            Assert.AreEqual(1, _userStateChangedCount);

            _workflowPersister.Expect(p => p.Load(new Guid())).IgnoreArguments().Return(toReturn);

            IStateMachineContext restoredMachine = _workflowService.Load(machineContext.Id);

            Assert.IsAssignableFrom(typeof(ReflectiveDomainContextWrapper), restoredMachine.DomainContext);

            var contextWrapper = (ReflectiveDomainContextWrapper)restoredMachine.DomainContext;

            Assert.IsAssignableFrom(typeof(User), contextWrapper.DomainContext);

            // should be the newly loaded user.
            Assert.AreNotEqual(contextWrapper.DomainContext, user);
            Assert.AreNotEqual(((User)contextWrapper.DomainContext).Id, user.Id);

            // state changed should not have been called!
            // is it up to the domain context repository to restore the state of the domain context.
            Assert.AreEqual(1, _userStateChangedCount);

            _domainContextRepository.VerifyAllExpectations();
            _workflowPersister.VerifyAllExpectations();
        }
Example #17
0
        public WorkflowImportExport(WorkflowEntity wf)
        {
            using (HeavyProfiler.Log("WorkflowBuilder"))
                using (new EntityCache())
                {
                    this.workflow = wf;

                    this.connections = wf.IsNew ? new Dictionary <string, WorkflowConnectionEntity>() : wf.WorkflowConnections().ToDictionaryEx(a => a.BpmnElementId);
                    this.events      = wf.IsNew ? new Dictionary <string, WorkflowEventEntity>() : wf.WorkflowEvents().ToDictionaryEx(a => a.BpmnElementId);
                    this.activities  = wf.IsNew ? new Dictionary <string, WorkflowActivityEntity>() : wf.WorkflowActivities().ToDictionaryEx(a => a.BpmnElementId);
                    this.gateways    = wf.IsNew ? new Dictionary <string, WorkflowGatewayEntity>() : wf.WorkflowGateways().ToDictionaryEx(a => a.BpmnElementId);
                    this.lanes       = wf.IsNew ? new Dictionary <string, WorkflowLaneEntity>() : wf.WorkflowPools().SelectMany(a => a.WorkflowLanes()).ToDictionaryEx(a => a.BpmnElementId);
                    this.pools       = wf.IsNew ? new Dictionary <string, WorkflowPoolEntity>() : wf.WorkflowPools().ToDictionaryEx(a => a.BpmnElementId);
                }
        }
Example #18
0
        /// <summary>
        /// 初始化工作流
        /// </summary>
        public void Start()
        {
            workModel = FindObjectOfType <WorkflowDataModel>();
            entity    = (WorkflowEntity)workModel.DataEntity;
            entity.SwitchToTargetWorkflow = "MaininterfaceWorkflowLogic";
            var model1 = objSetting.GetComponent <DataModelBehaviour>();

            setEntity = (SetUIEntity)model1.DataEntity;
            var model2 = objHelp.GetComponent <DataModelBehaviour>();

            helpUIEntity = (HelpUIEntity)model2.DataEntity;
            var trans  = GameObject.Find("Context");
            var model3 = trans.GetComponent <DataModelBehaviour>();

            showTextEntity = (ShowTextEntity)model3.DataEntity;
        }
Example #19
0
            internal void Clone(WorkflowEntity wf, Dictionary <IWorkflowNodeEntity, IWorkflowNodeEntity> nodes)
            {
                var oldPool = this.pool.Entity;
                var newPool = new WorkflowPoolEntity
                {
                    Workflow      = wf,
                    Name          = oldPool.Name,
                    BpmnElementId = oldPool.BpmnElementId,
                    Xml           = oldPool.Xml,
                }.Save();

                foreach (var lb in this.lanes.Values)
                {
                    lb.Clone(newPool, nodes);
                }
            }
Example #20
0
        public WorkflowBuilder(WorkflowEntity wf)
        {
            using (HeavyProfiler.Log("WorkflowBuilder"))
                using (new EntityCache())
                {
                    this.workflow = wf;

                    List <WorkflowConnectionEntity> connections;
                    List <WorkflowEventEntity>      events;
                    List <WorkflowActivityEntity>   activities;
                    List <WorkflowGatewayEntity>    gateways;

                    if (wf.IsNew)
                    {
                        connections = new List <WorkflowConnectionEntity>();
                        events      = new List <WorkflowEventEntity>();
                        activities  = new List <WorkflowActivityEntity>();
                        gateways    = new List <WorkflowGatewayEntity>();
                    }
                    else
                    {
                        connections = wf.WorkflowConnections().ToList();
                        events      = wf.WorkflowEvents().ToList();
                        activities  = wf.WorkflowActivities().ToList();
                        gateways    = wf.WorkflowGateways().ToList();
                    }

                    var xmlConnections = connections.Select(a => new XmlEntity <WorkflowConnectionEntity>(a)).ToList();
                    var nodes          = events.Cast <IWorkflowNodeEntity>().Concat(activities).Concat(gateways).ToList();

                    this.pools = (from n in nodes
                                  group n by n.Lane into grLane
                                  select new LaneBuilder(grLane.Key,
                                                         grLane.OfType <WorkflowActivityEntity>(),
                                                         grLane.OfType <WorkflowEventEntity>(),
                                                         grLane.OfType <WorkflowGatewayEntity>(),
                                                         xmlConnections.Where(c => c.Entity.From.Lane.Is(grLane.Key) || c.Entity.To.Lane.Is(grLane.Key))) into lb
                                  group lb by lb.lane.Entity.Pool into grPool
                                  select new PoolBuilder(grPool.Key, grPool, xmlConnections.Where(c => c.Entity.From.Lane.Pool.Is(grPool.Key) && c.Entity.To.Lane.Pool.Is(grPool.Key))))
                                 .ToDictionary(pb => pb.pool.Entity.ToLite());

                    this.messageFlows = xmlConnections.Where(c => !c.Entity.From.Lane.Pool.Is(c.Entity.To.Lane.Pool)).ToList();
                }
        }
Example #21
0
 public static string CreateOrUpdateWorkflow(WorkflowEntity workflowEntity)
 {
     return($@"
     INSERT INTO `workflows` (
                             `current_state`,
                             `uuid`,
                             `workflow_name`,
                             `date_created`,
                             `date_modified`,
                             `is_active`)
                         VALUES (@{nameof(workflowEntity.CurrentState)},
                                 @{nameof(workflowEntity.Uuid)},
                                 @{nameof(workflowEntity.WorkflowName)},
                                 utc_timestamp(3),
                                 utc_timestamp(3),
                                 @{nameof(workflowEntity.IsActive)})
                         ON DUPLICATE KEY UPDATE `current_state` = @{nameof(workflowEntity.CurrentState)},
                                                 `date_modified` = utc_timestamp(3);");
 }
Example #22
0
        private void InitialiseWorkflow(string workflowName)
        {
            if (workflowName is null)
            {
                throw new NullReferenceException("The workflow specified is null");
            }

            var workflow = new WorkflowEntity
            {
                CurrentState = StateManager.GlobalState.Initialise,
                Uuid         = Guid.NewGuid(),
                IsActive     = true,
                WorkflowName = workflowName,
                DateCreated  = DateTime.UtcNow
            };

            StateflowDbContext
            .Commands
            .CreateOrUpdateWorkflow(this, workflow);
        }
Example #23
0
        public void CanPersistAndRestoreDomainContext()
        {
            var user = new User();

            user.StatusChanged += user_StatusChanged;

            _domainContextRepository.Expect(x => x.GetId(user)).Return(user.Id);
            _domainContextRepository.Expect(x => x.GetTypeDescription(user)).Return("SimpleStateMachine.User");
            _domainContextRepository.Expect(x => x.Save(user));
            _domainContextRepository.Expect(x => x.Load("SimpleStateMachine.User", user.Id)).Return(new User());

            IWorkflowEntity toReturn = new WorkflowEntity();

            _workflowPersister.Expect(p => p.CreateEmptyWorkflowEntity(Guid.Empty)).IgnoreArguments().Return(toReturn);
            _workflowPersister.Expect(p => p.Save(new WorkflowEntity())).IgnoreArguments().Callback <IWorkflowEntity>(x =>
            {
                toReturn = x;
                return(true);
            });

            IStateMachineContext machineContext = _workflowService.Start(@"testStateMachine.boo", user);

            Assert.IsNotNull(machineContext);
            Assert.IsTrue(machineContext.IsStarted);

            _workflowPersister.Expect(p => p.Load(new Guid())).IgnoreArguments().Return(toReturn);

            IStateMachineContext restoredMachine = _workflowService.Load(machineContext.Id);

            Assert.IsAssignableFrom(typeof(User), restoredMachine.DomainContext);

            // should be the newly loaded user.
            Assert.AreNotEqual(restoredMachine.DomainContext, user);
            Assert.AreNotEqual(((User)restoredMachine.DomainContext).Id, user.Id);
            // should have never been called
            Assert.AreEqual(0, _userStateChangedCount);

            _domainContextRepository.VerifyAllExpectations();
            _workflowPersister.VerifyAllExpectations();
        }
Example #24
0
        // Si la actividad devuelve un valor, se debe derivar de CodeActivity<TResult>
        // y devolver el valor desde el método Execute.
        protected override void Execute(CodeActivityContext context)
        {
            logger.Info("WorkflowInstanceId={0} Step3", context.WorkflowInstanceId);

            WorkflowEntity       dataEntry        = context.GetValue(this.Entry);
            List <ParkingEntity> dataEntryParking = context.GetValue(this.EntryParking);

            for (int i = 0; i < dataEntryParking.Count; i++)
            {
                string jObject = @"{""payload"": ""{\""{0}\"": " +
                                 dataEntry.LatitudeOrigins[i].ToString(new NumberFormatInfo()
                {
                    NumberDecimalSeparator = "."
                }) +
                                 @",\""{1}\"":" +
                                 dataEntry.LongitudeOrigins[i].ToString(new NumberFormatInfo()
                {
                    NumberDecimalSeparator = "."
                }) +
                                 @"}"" , ""deviceId"": """ +
                                 service +
                                 @"""}";
                logger.Info("Step3 jObject: {0}", jObject);

                logger.Info("Step3 Mapper- init");
                Mapper mapper = new Mapper();
                var    result = mapper.Execute(jObject, new Openweathermap());
                logger.Info("Step3 Mapper- final");

                float temp = float.Parse(result.Main.Temp.ToString(new NumberFormatInfo()
                {
                    NumberDecimalSeparator = "."
                }));
                dataEntryParking.ElementAt(i).Temperature = temp;
                logger.Info("Step3 temp{0}", temp);
            }

            this.Out.Set(context, dataEntryParking);
            this.OutFinal.Set(context, dataEntryParking.ToArray());
        }
Example #25
0
        public static void ApplyDocument(WorkflowEntity workflow, WorkflowModel model, WorkflowReplacementModel replacements)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }


            var wb = new WorkflowBuilder(workflow);

            if (workflow.IsNew)
            {
                workflow.Save();
            }

            wb.ApplyChanges(model, replacements);
            wb.ValidateGraph();
            workflow.FullDiagramXml = new WorkflowXmlEmbedded {
                DiagramXml = wb.GetXDocument().ToString()
            };
            workflow.Save();
        }
Example #26
0
        public void IdOfContextMatchesIdOfLoadedMachineTest()
        {
            IWorkflowEntity toReturn = new WorkflowEntity();

            _workflowPersister.Expect(p => p.CreateEmptyWorkflowEntity(Guid.Empty)).IgnoreArguments().Return(toReturn);

            _workflowPersister.Expect(p => p.Save(new WorkflowEntity())).IgnoreArguments().Callback <IWorkflowEntity>(x =>
            {
                toReturn = x;
                return(true);
            });

            IStateMachineContext machineContext = _workflowService.Start(@"testStateMachine.boo");

            Assert.IsNotNull(machineContext);
            Assert.IsTrue(machineContext.IsStarted);

            _workflowPersister.Expect(p => p.Load(new Guid())).IgnoreArguments().Return(toReturn);

            IStateMachineContext restoredMachine = _workflowService.Load(machineContext.Id);

            Assert.AreEqual(restoredMachine.Id, machineContext.Id);
        }
Example #27
0
            public XElement GetFullWorkflowElement(WorkflowEntity workflow)
            {
                var wie = new WorkflowImportExport(workflow);

                return(wie.ToXml(this));
            }
Example #28
0
 public static IEnumerable <WorkflowConnectionEntity> WorkflowConnectionsFromCache(this WorkflowEntity e)
 {
     return(GetWorkflowNodeGraph(e.ToLite()).NextGraph.EdgesWithValue.SelectMany(edge => edge.Value));
 }
Example #29
0
 public static IQueryable <WorkflowConnectionEntity> WorkflowConnections(this WorkflowEntity e)
 {
     return(WorkflowConnectionsExpression.Evaluate(e));
 }
Example #30
0
 public static IEnumerable <WorkflowGatewayEntity> WorkflowGatewaysFromCache(this WorkflowEntity e)
 {
     return(GetWorkflowNodeGraph(e.ToLite()).NextGraph.OfType <WorkflowGatewayEntity>());
 }