Esempio n. 1
0
        protected override void ProcessFiles(ICollection <TransferControlFile> transferControlFiles)
        {
            TransferControlFile headerFile = null;
            TransferControlFile detailFile = null;
            TransferControlFile specialInstructionsFile = null;

            foreach (var file in transferControlFiles)
            {
                var filename = Path.GetFileName(file.FileLocation);
                if (filename == null)
                {
                    throw new InvalidDataException("File location does not have a filename");
                }

                switch (filename.Substring(0, 2).ToUpperInvariant())
                {
                case ManhattanDataFileType.PickHeader:
                    headerFile = file;
                    break;

                case ManhattanDataFileType.PickDetail:
                    detailFile = file;
                    break;

                case ManhattanDataFileType.PickSpecialInstructions:
                    specialInstructionsFile = file;
                    break;
                }
            }

            if (headerFile == null || detailFile == null || specialInstructionsFile == null)
            {
                throw new InvalidDataException("File list does not contain a header, detail, and instruction file.");
            }

            var headers      = _manhattanOrderRepository.GetManhattanPickTicketHeaders(headerFile.FileLocation);
            var details      = _manhattanOrderRepository.GetManhattanPickTicketDetails(detailFile.FileLocation);
            var instructions = _manhattanOrderRepository.GetManhattanPickTicketInstructions(specialInstructionsFile.FileLocation);

            var orders = _manhattanOrderRepository.GetOrders(headers, details);

            _orderHistoryRepository.Save(orders.SelectMany(o => o.CreateHistories("Item picked from Aurora", "Aurora Pick Ticket Job")));

            _auroraPickTicketRepository.InsertAuroraPickTicketHeader(headers);
            _auroraPickTicketRepository.InsertAuroraPickTicketDetail(details);
            _auroraPickTicketRepository.InsertAuroraPickTicketInstruction(instructions);

            _destinationRepository.SaveOrders(orders);
        }