public override void AfterSave() { base.AfterSave(); if (string.IsNullOrEmpty(EntityFolderID)) { throw new Exception("EntityFolderID not found"); } Folder folder = new ORM <Folder>().Fetch(EntityFolderID); OPCServerFolderBehaviorData ext = folder?.GetExtensionData <OPCServerFolderBehaviorData>(); if (ext != null) { if (Disabled) { OPCEngine.RemoveEventGroup(ext.Url, ext.AgentId, Id); } else { OpcEventGroup eventGroup = new OpcEventGroup { Paths = EventValues?.Select(y => y.PathToValue).ToArray() ?? new string[0], EventId = Id, Deadband = Deadband, UpdateRate = UpdateRate }; OPCEngine.AddOrUpdateEventGroup(ext.Url, ext.AgentId, eventGroup); } } }
public static void AddOrUpdateEventGroup(string url, string agentId, OpcEventGroup eventGroup) { AgentInstructions instr = new AgentInstructions() { Id = Guid.NewGuid().ToString(), EntityName = "Update Event Group on " + url, MustBeCompletedBy = DateUtilities.Now(), AgentInstructionHanlderType = "Decisions.OPC.Agent.AddOrUpdateEventGroupInstructionHandler", Data = new[] { new DataPair("opcServerUrl", url), new DataPair("eventGroup", eventGroup), } }; AgentService.Instance.InstructAgent(new SystemUserContext(), agentId, instr); }