public void UnserializeEventIncoming() { string payload = @"{ 'Name': 'evnt1', 'Uuid': '352d5082-3fb9-4db8-8a59-bc864ade4929', 'ExternalId': 'c65ea000-dce0-44a3-a6f3-9daf7eebaefe', 'CreationDate': '2019-09-23T09:48:52.1868472+02:00', 'EventDate': '2019-09-23T09:48:47.3047926+02:00', 'Site': 'site1', 'infos': { 'name': 'toto' }, 'infos2': [ { 'name': 'toto' }, { 'name': 'titi' } ] }".Replace("'", "\""); IWorkflowSerializer serializer = new PartialJsonWorkflowSerializer(); var msg = new IncomingEvent(); serializer.Populate(msg, payload); var payload2 = serializer.Serialize(msg); msg = new IncomingEvent(); serializer.Populate(msg, payload2); var payload3 = serializer.Serialize(msg); Assert.AreEqual(payload2, payload3); }
private WorkflowEngine CreateEngine(MemoryStorage storage, string configText) { var template = new TemplateRepository(typeof(TemplateModels)) { DefaultAction = TemplateModels.DefaultAction, }; var metadatas = new MetadatRepository(typeof(MetadataModels)) { DefaultAction = MetadataModels.DefaultAction.ToDictionary(c => c.Key, c => c.Value), }; var serializer = new PartialJsonWorkflowSerializer(); WorkflowsConfig configs = new WorkflowsConfig() .AddDocument(GetConfig(configText)) ; var factory = new WorkflowFactory <RunContext>(null, null) { Serializer = serializer, }; var processor = new WorkflowProcessor <RunContext>(configs, factory) { LoadExistingWorkflowsByExternalId = (key) => storage.GetBy <Workflow, string>(key, c => c.ExternalId).ToList(), OutputActions = () => CreateOutput(serializer, storage), Templates = template, Metadatas = metadatas, }; WorkflowEngine engine = new WorkflowEngine() { Processor = processor, }; return(engine); }
public void InitializeWorkflow() { var config = new SqlManagerConfiguration() { ConnectionString = "Data Source=L00280\\SQLEXPRESS;Initial Catalog=Workflow;Integrated Security=True", ProviderInvariantName = "SqlClient" }; DbProviderFactories.RegisterFactory(config.ProviderInvariantName, SqlClientFactory.Instance); var serializer = new PartialJsonWorkflowSerializer(); WorkflowFactory factory = new WorkflowFactory <RunContext>(null, null) { Serializer = serializer, }; WorkflowStoreSql store = new WorkflowStoreSql(new Bb.Dao.SqlManager(config), factory); var w = new Workflow() { Uuid = Guid.NewGuid(), ExternalId = Guid.NewGuid().ToString(), Change = ChangeEnum.New, Concurency = 1, CreationDate = DateTimeOffset.Now, Version = 1, WorkflowName = "work1", }.AddEvents ( new Event() { Uuid = Guid.NewGuid(), Name = "Event1", Change = ChangeEnum.New, CreationDate = DateTimeOffset.Now, EventDate = DateTimeOffset.Now.AddMinutes(-5), FromState = "State1", ToState = "State2", } .AddActions ( new PushedAction { Uuid = Guid.NewGuid(), Name = Constants.PushReminder, Kind = Constants.PushActionName, Change = ChangeEnum.New, ExecuteMessage = new MessageRaw() { Header = new MessageHeader(null), Body = (MessageBlock) new DynObject() .Add("name", "callMethod1") .Add("arguments", new DynObject() .Add("arg1", "a1") .Add("arg2", "a2") ).Resolve(null), } } ) ); store.Save(w); var items = store.LoadByExternalId(w.ExternalId).First(); }