Opc.Ua.Com.Client.AeTypeCache.DetermineMapping C# (CSharp) Method

DetermineMapping() private method

Uses the recommended names in the AE specification to map to predefined UA event types.
private DetermineMapping ( EventType eventType ) : void
eventType EventType
return void
        private void DetermineMapping(EventType eventType)
        {
            for (int ii = 0; ii < eventType.Attributes.Count; ii++)
            {
                if (AeTypeCache.IsKnownName(eventType.Attributes[ii].Description, "ACK COMMENT"))
                {
                    eventType.AckComment = eventType.Attributes[ii];
                    break;
                }
            }

            eventType.EventTypeMapping = EventTypeMapping.BaseEventType;

            if (eventType.EventTypeId == OpcRcw.Ae.Constants.SIMPLE_EVENT)
            {
                if (AeTypeCache.IsKnownName(eventType.Description, "Device Failure"))
                {
                    eventType.EventTypeMapping = EventTypeMapping.DeviceFailureEventType;
                    return;
                }

                if (AeTypeCache.IsKnownName(eventType.Description, "System Message"))
                {
                    eventType.EventTypeMapping = EventTypeMapping.SystemEventType;
                    return;
                }

                eventType.EventTypeMapping = EventTypeMapping.BaseEventType;
                return;
            }

            if (eventType.EventTypeId == OpcRcw.Ae.Constants.TRACKING_EVENT)
            {
                eventType.EventTypeMapping = EventTypeMapping.AuditEventType;
                return;
            }

            if (eventType.EventTypeId == OpcRcw.Ae.Constants.CONDITION_EVENT)
            {
                if (eventType.ConditionName == null)
                {
                    eventType.EventTypeMapping = EventTypeMapping.ConditionClassType;
                    return;
                }

                eventType.EventTypeMapping = EventTypeMapping.AlarmConditionType;

                if (AeTypeCache.IsKnownName(eventType.Description, "Level"))
                {
                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "PVLEVEL"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.ExclusiveLevelAlarmType;
                        return;
                    }

                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "SPLEVEL"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.ExclusiveLevelAlarmType;
                        return;
                    }

                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "HI HI"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.NonExclusiveLevelAlarmType;
                        return;
                    }

                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "HI"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.NonExclusiveLevelAlarmType;
                        return;
                    }

                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "LO"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.NonExclusiveLevelAlarmType;
                        return;
                    }

                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "LO LO"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.NonExclusiveLevelAlarmType;
                        return;
                    }

                    eventType.EventTypeMapping = EventTypeMapping.LimitAlarmType;
                    return;
                }

                if (AeTypeCache.IsKnownName(eventType.Description, "Deviation"))
                {
                    eventType.EventTypeMapping = EventTypeMapping.NonExclusiveDeviationAlarmType;
                    return;
                }

                if (AeTypeCache.IsKnownName(eventType.Description, "Discrete"))
                {
                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "CFN"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.OffNormalAlarmType;
                        return;
                    }

                    if (AeTypeCache.IsKnownName(eventType.ConditionName, "TRIP"))
                    {
                        eventType.EventTypeMapping = EventTypeMapping.TripAlarmType;
                        return;
                    }

                    eventType.EventTypeMapping = EventTypeMapping.DiscreteAlarmType;
                    return;
                }
            }
        }