public LookupModuleMessage(KeyString dataOwnerKey, KeyString moduleKey, SemanticVersionNumber dataOwnerVersion = null, SemanticVersionNumber moduleVersion = null) { DataOwnerKey = dataOwnerKey; DataOwnerVersion = dataOwnerVersion; ModuleKey = moduleKey; ModuleVersion = moduleVersion; }
public void SemanticVersionNumber_ImplicitConversion() { SemanticVersionNumber semanticVersionNumber = "2.3.4"; SemanticVersionNumber semanticVersionNumber2 = new Version(1, 2, 3); string output = semanticVersionNumber; Version outputVersion = semanticVersionNumber2; }
public NodeData(string description, JsonSchema dataJsonSchema, KeyString behaviorModuleKey, KeyString behaviorKey, SemanticVersionNumber behaviorVersion, JsonValue behaviorConfiguration) { Description = description; BehaviorKey = behaviorKey; BehaviorVersion = behaviorVersion; BehaviorConfiguration = behaviorConfiguration; DataJsonSchema = dataJsonSchema; }
public LookupWorkflowMessage(KeyString dataOwnerKey, KeyString moduleKey, KeyString workflowKey, SemanticVersionNumber dataOwnerVersion = null, SemanticVersionNumber moduleVersion = null, SemanticVersionNumber workflowVersion = null) { DataOwnerKey = dataOwnerKey; DataOwnerVersion = dataOwnerVersion; ModuleKey = moduleKey; ModuleVersion = moduleVersion; WorkflowKey = workflowKey; WorkflowVersion = workflowVersion; }
public void SemanticVersionNumber_Serialization() { SemanticVersionNumber semanticVersionNumber = new SemanticVersionNumber(2, 3, 4); string output = JsonConvert.SerializeObject(semanticVersionNumber); SemanticVersionNumber deserializedSemanticVersionNumber = JsonConvert.DeserializeObject <SemanticVersionNumber>(output); deserializedSemanticVersionNumber.ShouldBe(semanticVersionNumber); }
public void SemanticVersionNumber_Compare_Major() { SemanticVersionNumber version = "2.3.4"; SemanticVersionNumber lowerVersion = "1.3.4"; SemanticVersionNumber higherVersion = "3.3.4"; SemanticVersionNumber equalVersion = "2.3.4"; version.CompareTo(lowerVersion).ShouldBe(1); version.CompareTo(higherVersion).ShouldBe(-1); version.CompareTo(equalVersion).ShouldBe(0); }
private void DataOwnerCRUDMessageHandler(IDataOwnerCRUDMessage message) { switch (message.CRUDMessageType) { case Model.CRUDMessageType.Create: CreateDataOwnerMessage createDataOwnerMessage = message as CreateDataOwnerMessage; string name = createDataOwnerMessage.DataOwnerDefinition.Name; SemanticVersionNumber version = createDataOwnerMessage.DataOwnerDefinition.Version; string instanceName = $"{name}_{version}_1";//Instance number hardcoded if (Context.Child(instanceName) == ActorRefs.Nobody) { try { var actorProps = Context.DI().Props <DataOwnerActor>(); //TODO Add router for the actor for different instances var dataOwnerRef = Context.ActorOf(actorProps, instanceName); _dataOwners.Add(name, new Dictionary <SemanticVersionNumber, IActorRef>() { { version, dataOwnerRef } }); foreach (ModuleDefinition moduleDefinition in createDataOwnerMessage.DataOwnerDefinition.ModuleDefinitions) { dataOwnerRef.Tell(new CreateModuleMessage(moduleDefinition)); } Sender.Tell(new CreateDataOwnerSucceededMessage(createDataOwnerMessage, dataOwnerRef)); } catch (Exception ex) { string errorMessage = string.Format("{0} failed in {1}", ActorId, typeof(CreateDataOwnerMessage).Name); Logger.Error(ex, errorMessage); Sender.Tell(new CreateDataOwnerFailedMessage(createDataOwnerMessage, ex, errorMessage)); } } else { string errorMessage = string.Format("{0} received a {1} for a already existing DataOwner", ActorId, typeof(CreateDataOwnerMessage).Name); Logger.Debug(errorMessage); Sender.Tell(new CreateDataOwnerFailedMessage(createDataOwnerMessage, errorMessage)); } break; case CRUDMessageType.Delete: //Delete children with or without the data throw new NotImplementedException(); default: //TODO delete throw new WorkflowStartupException("CRUD Message Type Not Implemented"); } }
private void ModuleCRUDMessageHandler(IModuleCRUDMessage message) { switch (message.CRUDMessageType) { case Model.CRUDMessageType.Create: CreateModuleMessage createModuleMessage = message as CreateModuleMessage; string name = createModuleMessage.ModuleDefinition.Name; SemanticVersionNumber version = createModuleMessage.ModuleDefinition.Version; string instanceName = name + "." + version.ToString(); if (Context.Child(instanceName) == ActorRefs.Nobody) { try { var actorProps = Context.DI().Props <ModuleActor>(); var moduleRef = Context.ActorOf(actorProps, instanceName); _modules.Add(name, new Dictionary <SemanticVersionNumber, IActorRef>() { { version, moduleRef } }); foreach (WorkflowDefinition workflowDefinition in createModuleMessage.ModuleDefinition.WorkflowDefinitions) { moduleRef.Tell(new CreateWorkflowMessage(workflowDefinition)); } Sender.Tell(new CreateModuleSucceededMessage(createModuleMessage, moduleRef)); } catch (Exception ex) { string errorMessage = string.Format("{0} failed in {1}", ActorId, typeof(CreateModuleMessage).Name); Logger.Error(ex, errorMessage); Sender.Tell(new CreateModuleFailedMessage(createModuleMessage, ex, errorMessage)); } } else { string errorMessage = string.Format("{0} received a {1} for a already existing Module", ActorId, typeof(CreateModuleMessage).Name); Logger.Debug(errorMessage); Sender.Tell(new CreateModuleFailedMessage(createModuleMessage, errorMessage)); } break; case CRUDMessageType.Delete: //Delete children with or without the data throw new NotImplementedException(); default: //TODO delete throw new WorkflowStartupException("CRUD Message Type Not Implemented"); } }
/// <summary> /// Looks up an active Workflow child. If version is not supplied the highest version is returned /// </summary> /// <param name="workflowKey"></param> /// <param name="version"></param> /// <returns></returns> private IActorRef LookupWorkflow(KeyString workflowKey, SemanticVersionNumber version = null) { if (_workflows.TryGetValue(workflowKey, out Dictionary <SemanticVersionNumber, IActorRef> versions)) { if (version == null && versions != null) { return(versions[versions.Max(v => v.Key)]); } else if (versions != null && versions.TryGetValue(version, out IActorRef actorRef)) { return(actorRef); } } return(ActorRefs.Nobody); }
public LookupDataOwnerMessage(KeyString dataOwnerKey, SemanticVersionNumber dataOwnerVersion = null) { DataOwnerKey = dataOwnerKey; DataOwnerVersion = dataOwnerVersion; }