ProcessResults ProcessFiles(IDropShipper dropShipper)
        {
            var dropShipperDir = _pendingDirectory.GetDropShipperDirectory(dropShipper);
            var fileHandler = dropShipper.ShipmentsHandler;
            var files = fileHandler.GetUnprocessed(dropShipperDir);

            if (!files.Any())
            {
                _logger.Information("Found no {FileType} files to process for {DropShipper}", dropShipperDir.DropShipperHandle);
            }

            var results = new List<FileResults>();

            foreach (var file in files)
            {
                var r = _fileSession.Process(dropShipperDir, fileHandler, file);

                results.Add(r);
            }

            return new ProcessResults
            {
                Files = results
            };
        }
예제 #2
0
        public List<PurchaseOrder> GetPendingPurchaseOrders(GatherShipmentsRequest request, IDropShipper dropShipper)
        {
            var pos = new List<PurchaseOrder>();
            //TODO: Go fetch info from JDE for what orders we need to check with this dropshipper about
            //TODO: Convert to Standard Format

            if (!string.IsNullOrWhiteSpace(request.PurchaseOrder))
            {
                //TODO: Get pos for dropshipper from JDE based on poNumber
                var po = new PurchaseOrder
                {
                    PurchaseOrderNumber = request.PurchaseOrder,
                    OrderDate = System.DateTime.Parse("01/01/2014"), //Random date
                };
                pos.Add(po);
            }
            if (request.OrderDate != null)
            {
                //TODO: Get pos for dropshipper from JDE based on date
                var po = new PurchaseOrder
                {
                    PurchaseOrderNumber = "76286DAILY", //Random PO number
                    OrderDate = request.OrderDate.Value,
                };
                pos.Add(po);
            }

            return pos;
        }
        public IDropShipperDirectory GetDropShipperDirectory(IDropShipper dropShipper)
        {
            var dir = _pendingLocation.GetChildDirectory(dropShipper.Handle);
            dir.EnsureExists();

            return new DropShipperDirectory(dir, dropShipper, _clock);
        }
        public IEnumerable<DropShipperFileRawEntry> ReadEntries(File file, IDropShipper dropShipper)
        {
            var entryNumber = 0;
            var entires = new List<DropShipperFileRawEntry>();

            file.ReadTextFrom(reader =>
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    entryNumber++;

                    var entry = new DropShipperFileRawEntry
                    {
                        EntryNumber = entryNumber,
                        File = file,
                        RawData = line,
                        DropShipper = dropShipper,
                        EffectiveDate = DateTime.Today
                    };

                    entires.Add(entry);
                }
            }, true);

            return entires;
        }
 public TuckerRockyGatherShipmentsHandler(IDropShipper dropShipper, ITuckerRockyClient client, SystemClock clock, TuckerRockyConfig config)
 {
     _dropShipper = dropShipper;
     _client = client;
     _clock = clock;
     _config = config;
 }
 public TuckerRockyGatherPurchaseOrdersHandler(IDropShipper dropShipper)
 {
     _dropShipper = dropShipper;
 }
 public DropShipperDirectory(Directory dropShipperLocation, IDropShipper dropShipper, SystemClock clock)
 {
     _dropShipperLocation = dropShipperLocation;
     _dropShipper = dropShipper;
     _clock = clock;
 }