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); }
public IList<DocumentLineItemEntity> ProcessLines(List<Segment> lst, IEdiMessage doc) { _lines.Clear(); var co = doc as OrderRequestReceivedMessage; if (co == null) return null; lst.RemoveWhile(seg => seg.Label != SegmentLabel.PurchaseOrder); _poParser.ProcessLines(lst, doc); CustomerOrderLine line; do { line = build_line(lst, SegmentLabel.SummaryLabel); if(line != null) co.Add(line); } while (line != null) ; return _lines; }
public void can_remove_while() { var segs = new List <Segment> { new Segment { Label = SegmentLabel.InterchangeLabel }, new Segment { Label = SegmentLabel.GroupLabel }, new Segment { Label = SegmentLabel.DocumentLabel }, new Segment { Label = SegmentLabel.ReferenceLabel }, new Segment { Label = SegmentLabel.ReferenceLabel }, new Segment { Label = SegmentLabel.AddressNameLabel }, new Segment { Label = SegmentLabel.AddressLineLabel }, new Segment { Label = SegmentLabel.GeographicLabel }, new Segment { Label = SegmentLabel.DocumentClose }, new Segment { Label = SegmentLabel.GroupClose }, new Segment { Label = SegmentLabel.InterchangeClose } }; segs.RemoveWhile(seg => seg.Label != SegmentLabel.AddressNameLabel); Assert.That(segs[0] != null); Assert.That(segs[0].Label == SegmentLabel.AddressNameLabel); }
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(); } }
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(); } }
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; }
public IList <DocumentLineItemEntity> ProcessLines(List <Segment> lst, IEdiMessage doc) { _lines.Clear(); var co = doc as OrderRequestReceivedMessage; if (co == null) { return(null); } lst.RemoveWhile(seg => seg.Label != SegmentLabel.PurchaseOrder); _poParser.ProcessLines(lst, doc); CustomerOrderLine line; do { line = build_line(lst, SegmentLabel.SummaryLabel); if (line != null) { co.Add(line); } } while (line != null); return(_lines); }
public void ReclaimDice() { //remove all dice and Enpool them workingDice.RemoveWhile(diePool.Enpool);//hooray functional programming! }
public List <IEnumerable <Segment> > SplitByDocument(List <Segment> segments) { segments.RemoveWhile(seg => seg.Label != EDIConstants.DocumentLabel); return(split(segments, EDIConstants.DocumentLabel, EDIConstants.DocumentClose)); }