public void Execute(IEdiMessage message)
        {
            if (_specs.Count == 0) throw new Exception("Specifications are not Registered");

            _specs.Where(spec => spec.IsSatisfiedBy(message))
                .Each(spec => spec.Execute(message));
        }
 public static void ProcessFooter(Segment seg, IEdiMessage ediMessage, string ElementDelimiter,
                          int segmentsProcessed)
 {
     int expected = seg.GetElements(ElementDelimiter)[1].CastToInt();
     if (segmentsProcessed != expected)
         throw new InvalidEDIDocumentException("Segments processed does not match included segment count! Segments processed = " + segmentsProcessed + "; expected " + expected);
     if (ediMessage.ControlNumber != seg.GetElements(ElementDelimiter)[2])
         throw new InvalidEDIDocumentException("Control numbers in _header and _footer do not match!");
 }
 public static void ProcessFooter(List<Segment> seg_list, IEdiMessage ediMessage, string ElementDelimiter,
                                  int segmentsProcessed)
 {
     Segment temp_seg = seg_list.FindSegmentByLabel(SegmentLabel.DocumentClose);
     int expected = temp_seg.GetElements(ElementDelimiter)[1].CastToInt();
     if (segmentsProcessed != expected)
         throw new InvalidEDIDocumentException("Segments processed does not match included segment count! Segments processed = " + segmentsProcessed + "; expected " + expected);
     if (ediMessage.ControlNumber != temp_seg.GetElements(ElementDelimiter)[2])
         throw new InvalidEDIDocumentException("Control numbers in _header and _footer do not match!");
     seg_list.Remove(temp_seg);
 }
        public void Execute(IEdiMessage message)
        {
            var orderHasBeenShippedMessage = (OrderHasBeenShippedMessage) message;

            var ediAsnSentMessageToBeSent = new EdiAsnSentMessage()
            {
                ControlNumber = orderHasBeenShippedMessage.ControlNumber,
                BOL = orderHasBeenShippedMessage.BOL,
                LineNumbers = orderHasBeenShippedMessage.GetLineNumbers().ToList()
            };

            _publisher.Publish(ediAsnSentMessageToBeSent);
        }
Example #5
0
        public static void ProcessFooter(List <Segment> seg_list, IEdiMessage ediMessage, string ElementDelimiter,
                                         int segmentsProcessed)
        {
            Segment temp_seg = seg_list.FindSegmentByLabel(SegmentLabel.DocumentClose);
            int     expected = temp_seg.GetElements(ElementDelimiter)[1].CastToInt();

            if (segmentsProcessed != expected)
            {
                throw new InvalidEDIDocumentException("Segments processed does not match included segment count! Segments processed = " + segmentsProcessed + "; expected " + expected);
            }
            if (ediMessage.ControlNumber != temp_seg.GetElements(ElementDelimiter)[2])
            {
                throw new InvalidEDIDocumentException("Control numbers in _header and _footer do not match!");
            }
            seg_list.Remove(temp_seg);
        }
        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 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();
     }
 }
Example #8
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();
            }
        }
Example #9
0
        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);
        }
Example #10
0
 public bool CanPublish(IEdiMessage msg)
 {
     return(msg.GetType() == typeof(OrderHasBeenShippedMessage));
 }
Example #11
0
 public bool CanProcess(IEdiMessage msg)
 {
     return(msg.DocumentId == EdiDocumentTypes.PurchaseOrder.DocumentNumber && msg.BusinessPartnerCode == BusinessPartner.Initech.Code);
 }
 public bool Accept(IEdiMessage message)
 {
     return (message.BusinessPartnerCode == "FEDEX") ;
 }
Example #13
0
 public async Task Send(Company.Company f, Company.Company to, IEdiMessage message)
 {
 }
Example #14
0
 public bool CanPublish(IEdiMessage msg)
 {
     return(true);
 }
 private void publish(IEdiMessage obj)
 {
     obj.Publish();
 }
 public DocumentRecordPackage(IEdiMessage msg, IEnumerable<ResponseElementEntity> responseValues, IEnumerable<DocumentLineItemEntity> lines)
 {
     Message = msg;
     ResponseValues = responseValues;
     Lines = lines;
 }
 public virtual IList<DocumentLineItemEntity> ProcessLines(List<Segment> lst, IEdiMessage doc)
 {
     SegmentCount = 0;
     _currentLine.Clear();
     return null;
 }
 private void process_footer(List<Segment> segList, IEdiMessage order, int segmentsProcessed)
 {
     EDIUtilities.ProcessFooter(segList, order, _genericParser.ElementDelimiter, segmentsProcessed + 1);
 }
Example #19
0
 public DocumentRecordPackage(IEdiMessage msg, IEnumerable <ResponseElementEntity> responseValues, IEnumerable <DocumentLineItemEntity> lines)
 {
     Message        = msg;
     ResponseValues = responseValues;
     Lines          = lines;
 }
Example #20
0
 public virtual void ProcessLines(List <Segment> lst, IEdiMessage doc)
 {
     SegmentCount = 0;
     _current_line.Clear();
 }
 public bool CanPublish(IEdiMessage msg)
 {
     return msg.GetType() == typeof(OrderHasBeenShippedMessage);
 }
 public void PublishMessage(IEdiMessage ediMessage)
 {
 }
 public void PublishMessage(IEdiMessage ediMessage)
 {
     publish((OrderHasBeenShippedMessage) ediMessage);
 }
Example #24
0
 public void PublishMessage(IEdiMessage ediMessage)
 {
 }
Example #25
0
        public static IEdiMessagePublisher Publisher(this IEdiMessage ediMessage)
        {
            var publishers = ServiceLocator.Current.GetAllInstances(typeof(IEdiMessagePublisher)).Select(p => (IEdiMessagePublisher)p);

            return(publishers.Find(p => p.CanPublish(ediMessage)));
        }
Example #26
0
 public virtual IList <DocumentLineItemEntity> ProcessLines(List <Segment> lst, IEdiMessage doc)
 {
     SegmentCount = 0;
     _currentLine.Clear();
     return(null);
 }
Example #27
0
 public new bool CanProcess(IEdiMessage msg)
 {
     return(msg.GetType() == typeof(OrderIsBackorderedMessage) && msg.BusinessPartnerCode == BusinessPartner.Initech.Code);
 }
Example #28
0
 public bool CanPublish(IEdiMessage msg)
 {
     return(msg.GetType() == typeof(OrderChangeRequestReceivedMessage));
 }
Example #29
0
 public void PublishMessage(IEdiMessage ediMessage)
 {
     publish((OrderChangeRequestReceivedMessage)ediMessage);
 }
Example #30
0
 public bool IsSatisfiedBy(IEdiMessage message)
 {
     return(message.GetType() == typeof(OrderHasBeenShippedMessage));
 }
 public virtual void ProcessLines(List<Segment> lst, IEdiMessage doc)
 {
     SegmentCount = 0;
     _current_line.Clear();
 }
Example #32
0
 public bool Accept(IEdiMessage message)
 {
     return(message.BusinessPartnerCode == "FEDEX");
 }
Example #33
0
 public bool CanProcess(IEdiMessage msg)
 {
     return(msg.GetType() == typeof(OrderHasBeenShippedMessage) && msg.BusinessPartnerCode == BusinessPartner.Initech.Code);
 }
Example #34
0
 public void PublishMessage(IEdiMessage ediMessage)
 {
     publish((OrderHasBeenShippedMessage)ediMessage);
 }
 public bool CanPublish(IEdiMessage msg)
 {
     return msg.GetType() == typeof(OrderChangeRequestReceivedMessage);
 }
 public bool IsSatisfiedBy(IEdiMessage message)
 {
     return message.GetType() == typeof(OrderHasBeenShippedMessage);
 }
 public void PublishMessage(IEdiMessage ediMessage)
 {
     publish((OrderChangeRequestReceivedMessage)ediMessage);
 }
 private int process_line_items(List<Segment> segList, IEdiMessage order)
 {
     var refs = _lineParser.ProcessLines(segList, order);
     _recorder.MemorizeInnerReferences(refs, order.ControlNumber, BusinessPartner.Initech);
     return _lineParser.SegmentCount;
 }
Example #39
0
 void IAddressParser.ProcessAddresses(List <Segment> segments, IEdiMessage ediMessage)
 {
     throw new System.NotImplementedException();
 }
Example #40
0
 private void process_footer(List <Segment> segList, IEdiMessage order, int segmentsProcessed)
 {
     EDIUtilities.ProcessFooter(segList, order, _genericParser.ElementDelimiter, segmentsProcessed + 1);
 }
 public bool CanPublish(IEdiMessage msg)
 {
     return true;
 }
Example #42
0
 private void publish(IEdiMessage obj)
 {
     obj.Publish();
 }
Example #43
0
 public bool CanProcess(IEdiMessage msg)
 {
     return(msg.GetType() == typeof(OrderRequestReceivedMessage) && msg.BusinessPartnerNumber == BusinessPartner.FedEx.Number);
 }