/// <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); }