Beispiel #1
0
        public int ProcessAddresses(List <Segment> lst, IEdiMessageWithAddress ediMessage)
        {
            if (!addressesFound(lst))
            {
                return(0);
            }
            lst.RemoveWhile(seg => seg.Label != SegmentLabel.AddressNameLabel);
            var addrLoop     = new List <Segment>();
            var segmentCount = 0;

            while (EDIUtilities.MoveSegmentByLabel(lst, addrLoop, SegmentLabel.AddressNameLabel))
            {
                segmentCount++;
                Segment nextSeg = lst[0];
                while (nextSeg.Label == SegmentLabel.AddressLineLabel ||
                       nextSeg.Label == SegmentLabel.GeographicLabel ||
                       nextSeg.Label == SegmentLabel.ContactLabel)
                {
                    segmentCount++;
                    EDIUtilities.MoveSegment(lst, addrLoop, nextSeg);
                    nextSeg = lst[0];
                }
                ediMessage.AddAddress(process_address(addrLoop));
                addrLoop.Clear();
            }
            return(segmentCount);
        }
Beispiel #2
0
        public void can_process_footer()
        {
            var doc = new OrderRequestReceivedMessage {
                ControlNumber = "553230001"
            };
            var segs = new List <Segment> {
                new Segment {
                    Contents = "SE*1*553230001", Label = "SE".GetSegmentLabel()
                }
            };

            EDIUtilities.ProcessFooter(segs, doc, "*", 1);
        }
Beispiel #3
0
        public void ProcessAddresses(List <Segment> lst, IEdiMessage ediMessage)
        {
            lst.RemoveWhile(seg => seg.Label != EDIConstants.AddressNameLabel);
            var addr_loop = new List <Segment>();

            while (EDIUtilities.MoveSegmentByLabel(lst, addr_loop, EDIConstants.AddressNameLabel))
            {
                SegmentCount++;
                Segment next_seg = lst[0];
                while (next_seg.Label == EDIConstants.AddressLineLabel ||
                       next_seg.Label == EDIConstants.GeographicLabel)
                {
                    SegmentCount++;
                    EDIUtilities.MoveSegment(lst, addr_loop, next_seg);
                    next_seg = lst[0];
                }
                ediMessage.AddAddress(process_address(addr_loop));
                addr_loop.Clear();
            }
        }
Beispiel #4
0
 private void process_footer(List <Segment> segList, IEdiMessage order, int segmentsProcessed)
 {
     EDIUtilities.ProcessFooter(segList, order, _genericParser.ElementDelimiter, segmentsProcessed + 1);
 }