Пример #1
0
        /// <summary>
        /// Test
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public override ValidationException[] test(IMessage msg)
        {
            ValidationException[] result = new ValidationException[0];

            foreach (SegmentMandatoryRule rule in segmentRules)
            {
                bool flag1 = (rule.Version == "*") || (msg.Version == rule.Version);

                string   structureName = msg.GetStructureName();
                string[] sNames        = structureName.Split('_');
                bool     flag2         = (rule.MessageType == "*") || (sNames[0] == rule.MessageType);
                bool     flag3         = (rule.TriggerEvent == "*") || (sNames[1] == rule.TriggerEvent);

                if (flag1 && flag2 && flag3)
                {
                    PipeParser parser = new PipeParser();
                    if (!parser.SegmentExists(msg, rule.MadatorySegment))
                    {
                        result = new ValidationException[1] {
                            new ValidationException(string.Format("Segment {0} not available in message", rule.MadatorySegment))
                        };
                    }
                }

                if (result.Length > 0)
                {
                    break;
                }
            }

            return(result);
        }