Opc.Ua.Server.MasterNodeManager.ValidateMonitoredItemCreateRequest C# (CSharp) Method

ValidateMonitoredItemCreateRequest() protected static method

Validates a monitored item create request parameter.
protected static ValidateMonitoredItemCreateRequest ( MonitoredItemCreateRequest item ) : ServiceResult
item MonitoredItemCreateRequest
return ServiceResult
        protected static ServiceResult ValidateMonitoredItemCreateRequest(MonitoredItemCreateRequest item)
        {
            // check for null structure.
            if (item == null)
            {
                return new ServiceResult(StatusCodes.BadStructureMissing);
            }
              
            // validate read value id component.
            ServiceResult error = ReadValueId.Validate(item.ItemToMonitor);
            
            if (ServiceResult.IsBad(error))
            {
                return error;
            }

            // check for valid monitoring mode.
            if ((int)item.MonitoringMode < 0 || (int)item.MonitoringMode > (int)MonitoringMode.Reporting)
            {
                return new ServiceResult(StatusCodes.BadMonitoringModeInvalid);
            }
                        
            // check for null structure.
            MonitoringParameters attributes = item.RequestedParameters;
            
            error = ValidateMonitoringAttributes(attributes);

            if (ServiceResult.IsBad(error))
            {
                return error;
            }

            // check that no filter is specified for non-value attributes.
            if (item.ItemToMonitor.AttributeId != Attributes.Value && item.ItemToMonitor.AttributeId != Attributes.EventNotifier)
            {
                if (!ExtensionObject.IsNull(attributes.Filter))
                {
                    return new ServiceResult(StatusCodes.BadFilterNotAllowed);
                }
            }
            else
            {                
                error = ValidateMonitoringFilter(attributes.Filter);

                if (ServiceResult.IsBad(error))
                {
                    return error;
                }
            }

            // passed basic validation.
            return null;
        }