/// <summary> /// Called when the Acknowledge method is called. /// </summary> /// <param name="context">The system context.</param> /// <param name="method">The method being called.</param> /// <param name="objectId">The id of the object.</param> /// <param name="eventId">The identifier for the event which is the target for the comment.</param> /// <param name="comment">The comment.</param> /// <returns>Any error.</returns> protected virtual ServiceResult OnAcknowledgeCalled( ISystemContext context, MethodState method, NodeId objectId, byte[] eventId, LocalizedText comment) { ServiceResult error = ProcessBeforeAcknowledge(context, eventId, comment); if (ServiceResult.IsGood(error)) { SetAcknowledgedState(context, true); if (CanSetComment(comment)) { SetComment(context, comment, GetCurrentUserId(context)); } } if (this.AreEventsMonitored) { // report a state change event. if (ServiceResult.IsGood(error)) { ReportStateChange(context, false); } // raise the audit event. AuditConditionAcknowledgeEventState e = new AuditConditionAcknowledgeEventState(null); TranslationInfo info = new TranslationInfo( "AuditConditionAcknowledge", "en-US", "The Acknowledge method was called."); e.Initialize( context, this, EventSeverity.Low, new LocalizedText(info), ServiceResult.IsGood(error), DateTime.UtcNow); e.SourceName.Value = "Attribute/Call"; e.MethodId = new PropertyState <NodeId>(e); e.MethodId.Value = method.NodeId; e.InputArguments = new PropertyState <object[]>(e); e.InputArguments.Value = new object[] { eventId, comment }; ReportEvent(context, e); } return(error); }
/// <summary> /// Called when the Acknowledge method is called. /// </summary> /// <param name="context">The system context.</param> /// <param name="method">The method being called.</param> /// <param name="objectId">The id of the object.</param> /// <param name="eventId">The identifier for the event which is the target for the comment.</param> /// <param name="comment">The comment.</param> /// <returns>Any error.</returns> protected virtual ServiceResult OnAcknowledgeCalled( ISystemContext context, MethodState method, NodeId objectId, byte[] eventId, LocalizedText comment) { ServiceResult error = ProcessBeforeAcknowledge(context, eventId, comment); if (ServiceResult.IsGood(error)) { SetAcknowledgedState(context, true); SetComment(context, comment, GetCurrentUserId(context)); } if (this.AreEventsMonitored) { // report a state change event. if (ServiceResult.IsGood(error)) { ReportStateChange(context, false); } // raise the audit event. AuditConditionAcknowledgeEventState e = new AuditConditionAcknowledgeEventState(null); TranslationInfo info = new TranslationInfo( "AuditConditionAcknowledge", "en-US", "The Acknowledge method was called."); e.Initialize( context, this, EventSeverity.Low, new LocalizedText(info), ServiceResult.IsGood(error), DateTime.UtcNow); e.SourceName.Value = "Attribute/Call"; e.MethodId = new PropertyState<NodeId>(e); e.MethodId.Value = method.NodeId; e.InputArguments = new PropertyState<object[]>(e); e.InputArguments.Value = new object[] { eventId, comment }; ReportEvent(context, e); } return error; }
/// <summary> /// Called when the Acknowledge method is called. /// </summary> /// <param name="context">The system context.</param> /// <param name="method">The method being called.</param> /// <param name="objectId">The id of the object.</param> /// <param name="eventId">The identifier for the event which is the target for the comment.</param> /// <param name="comment">The comment.</param> /// <returns>Any error.</returns> protected virtual ServiceResult OnAcknowledgeCalled( ISystemContext context, MethodState method, NodeId objectId, byte[] eventId, LocalizedText comment) { ServiceResult error = ProcessBeforeAcknowledge(context, eventId, comment); if (ServiceResult.IsGood(error)) { AcknowledgeableConditionState branch = GetAcknowledgeableBranch(eventId); if (branch != null) { branch.OnAcknowledgeCalled(context, method, objectId, eventId, comment); if (SupportsConfirm()) { ReplaceBranchEvent(eventId, branch); } else { RemoveBranchEvent(eventId); } } else { SetAcknowledgedState(context, true); if (SupportsConfirm()) { SetConfirmedState(context, false); } } // If this is a branch, the comment goes to both the branch and the original event if (CanSetComment(comment)) { SetComment(context, comment, GetCurrentUserId(context)); } UpdateRetainState(); } if (EventsMonitored()) { // report a state change event. if (ServiceResult.IsGood(error)) { ReportStateChange(context, false); } // raise the audit event. AuditConditionAcknowledgeEventState e = new AuditConditionAcknowledgeEventState(null); TranslationInfo info = new TranslationInfo( "AuditConditionAcknowledge", "en-US", "The Acknowledge method was called."); e.Initialize( context, this, EventSeverity.Low, new LocalizedText(info), ServiceResult.IsGood(error), DateTime.UtcNow); e.SetChildValue(context, BrowseNames.SourceNode, NodeId, false); e.SetChildValue(context, BrowseNames.SourceName, "Method/Acknowledge", false); e.SetChildValue(context, BrowseNames.MethodId, method.NodeId, false); e.SetChildValue(context, BrowseNames.InputArguments, new object[] { eventId, comment }, false); e.SetChildValue(context, BrowseNames.ConditionEventId, eventId, false); e.SetChildValue(context, BrowseNames.Comment, comment, false); ReportEvent(context, e); } return(error); }