Ejemplo n.º 1
0
        public UploadData UploadFile(string fileName, int fileType, Stream stream)
        {
            using (var context = new InnostarModelsContext())
            {
                UploadData result = new UploadData();
                if (!Service.IsAuthorized(result))
                {
                    return(result);
                }
                DataFileRepository dataFileRepository = new DataFileRepository(context);
                DataFile           dataFile           = new DataFile();
                dataFile.OriginalFileName = fileName;
                dataFile.FileType         = fileType;
                dataFile.LocalFileName    = Guid.NewGuid().ToString() + Path.GetExtension(fileName);
                string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["FilesPath"], dataFile.LocalFileName);
                using (var fileStream = File.Create(filePath))
                {
                    stream.CopyTo(fileStream);
                }

                dataFileRepository._Insert(dataFile);
                dataFileRepository._Save();

                result.id      = dataFile.Id;
                result.code    = "200";
                result.message = "OK";
                return(result);
            }
        }
Ejemplo n.º 2
0
        private static List <TransferControlMaster> MapTransforControlFromManhattanFile(string controlFile)
        {
            var transferControlMasterRepository = new DataFileRepository <TransferControlMaster>();
            var masterControlMapping            = transferControlMasterRepository.Get(controlFile).ToList();

            return(masterControlMapping);
        }
Ejemplo n.º 3
0
        private void WriteFile(DataFileRepository <TransferControlMaster> transferControlWriter,
                               IEnumerable <TransferControlMaster> masters)
        {
            var masterControlFileName = _configuration.GetInboundMasterControlFilename();
            var inboundFileDirectory  = _configuration.GetInboundFileDirectory();

            transferControlWriter.Save(masters.OrderByDescending(o => o.Filename), Path.Combine(inboundFileDirectory, masterControlFileName));
        }
Ejemplo n.º 4
0
        public void SetUp()
        {
            _configurationProvider = Mock.Of <IConfigurationProvider>();
            _dataFileProvider      = new DataFileRepository();

            _localizedStringFinder = new LocalizedStringFinder(
                _configurationProvider,
                _dataFileProvider);
        }
Ejemplo n.º 5
0
        public ActionResult GetFile(int id)
        {
            using (var logFile = new StreamWriter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["FilesPath"], @"FileLog.txt"), true))
            {
                var guid = Guid.NewGuid().ToString();

                logFile.WriteLine("Guid : {0} | File request accepted | Date : {1:H:mm:ss zzz dd/mm/yy } | Id: {2}", guid, DateTime.Now, id);

                try
                {
                    using (var context = new InnostarModelsContext())
                    {
                        var datafileRepository = new DataFileRepository(context);
                        var dataFiles          = datafileRepository._All.Where(e => e.Id == id);
                        //GetBy(new Query<DataFile>(e => e.Id == id));
                        if (dataFiles.Any())
                        {
                            var    dataFile = dataFiles.FirstOrDefault();
                            string path     = Path.Combine(
                                AppDomain.CurrentDomain.BaseDirectory,
                                ConfigurationManager.AppSettings["FilesPath"],
                                dataFile.LocalFileName);
                            if (System.IO.File.Exists(path))
                            {
                                //logFile.WriteLine("Guid : {0} | File sent | Date : {1:H:mm:ss zzz dd/mm/yy } | Filename: {2}", guid, DateTime.Now, dataFile.OriginalFileName);
                                return(base.File(path, GetContentType(path)));
                            }
                            else
                            {
                                //logFile.WriteLine("Guid : {0} | No file at disc | Date : {1:H:mm:ss zzz dd/mm/yy }", guid, DateTime.Now);
                                return(new HttpStatusCodeResult(404, "no such file"));
                            }
                        }
                        else
                        {
                            //logFile.WriteLine(
                            //    "Guid : {0} | No file in DB | Date : {1:H:mm:ss zzz dd/mm/yy }",
                            //    guid,
                            //    DateTime.Now);
                            return(new HttpStatusCodeResult(404, "no such file"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    //logFile.WriteLine("Guid : {0} | File sending exception| Date : {1:H:mm:ss zzz dd/mm/yy } | Exception: {2}", guid, DateTime.Now, ex.Message);
                    return(new HttpStatusCodeResult(500, "server error"));
                }
            }
        }
Ejemplo n.º 6
0
        protected override void ProcessFiles(ICollection <TransferControlFile> transferControlFiles)
        {
            if (transferControlFiles.Count != 1)
            {
                throw new ArgumentOutOfRangeException("transferControlFiles", "Expected one file, found " + transferControlFiles.Count);
            }

            var file          = transferControlFiles.First();
            var pixRepository = new DataFileRepository <ManhattanPerpetualInventoryTransfer>();
            var pixList       = pixRepository.Get(file.FileLocation).ToList();

            _perpetualInventoryTransferRepository.InsertPerpetualInventoryTransfer(pixList);
            LogInsert(pixList, file);
        }
Ejemplo n.º 7
0
        private void AppendMasterControl(IEnumerable <TransferControlMaster> files,
                                         Models.TransferControl transferControl)
        {
            try
            {
                var transferControlWriter = new DataFileRepository <TransferControlMaster>();

                WriteFile(transferControlWriter, files);

                FtpAppendTransferControl();

                transferControl.ProcessedDate = DateTime.Now;
                _transferControlRepository.UpdateTransferControl(transferControl);

                MoveTransferControlMasterToProcessedFolder();
            }
            catch (Exception exception)
            {
                _log.Exception("Inbound : Failure transmitting outbound master control file ", exception);
                throw;
            }
        }
Ejemplo n.º 8
0
        private void ProcessFile(TransferControlFile file)
        {
            var shipmentHeaderRespository = new DataFileRepository <ManhattanShipmentHeader>();
            var shipmentDetailRespository = new DataFileRepository <ManhattanShipmentLineItem>();
            var cartonHeaderRespository   = new DataFileRepository <ManhattanShipmentCartonHeader>();
            var cartonDetailRespository   = new DataFileRepository <ManhattanShipmentCartonDetail>();

            var fileInfo = new FileInfo(file.FileLocation);
            var fileType = fileInfo.Name.Substring(0, 2);

            switch (fileType)
            {
            case ManhattanDataFileType.ShipmentHeader:
                var shipmentHeader = shipmentHeaderRespository.Get(fileInfo.FullName).ToList();
                _shipmentRepository.InsertShipmentHeaders(shipmentHeader);
                LogInsert(shipmentHeader, file);
                break;

            case ManhattanDataFileType.ShipmentDetail:
                var shipmentDetail = shipmentDetailRespository.Get(fileInfo.FullName).ToList();
                _shipmentRepository.InsertShipmentLineItems(shipmentDetail);
                LogInsert(shipmentDetail, file);
                break;

            case ManhattanDataFileType.CartonHeader:
                var cartonHeader = cartonHeaderRespository.Get(fileInfo.FullName).ToList();
                _shipmentRepository.InsertShipmentCartonHeaders(cartonHeader);
                LogInsert(cartonHeader, file);
                break;

            case ManhattanDataFileType.CartonDetail:
                var cartonDetail = cartonDetailRespository.Get(fileInfo.FullName).ToList();
                _shipmentRepository.InsertShipmentCartonDetails(cartonDetail);
                LogInsert(cartonDetail, file);
                break;
            }
        }
Ejemplo n.º 9
0
        protected override void ProcessFiles(ICollection <TransferControlFile> transferControlFiles)
        {
            if (transferControlFiles.Count != 1)
            {
                throw new ArgumentOutOfRangeException("transferControlFiles",
                                                      "Expected one file, found " + transferControlFiles.Count);
            }

            //1) STL INVENTORY UPDATE - Clean PIX/Shipments before loading the sync file.
            var stlInventoryUpdateJob = new StlInventoryUpdateJob(_log,
                                                                  _stlInventoryUpdateRepository,
                                                                  _shipmentInventoryAdjustmentRepository,
                                                                  _perpetualInventoryTransferRepository,
                                                                  _pixInventoryAdjustmentRepository);

            stlInventoryUpdateJob.RunUnitOfWork("Stl Inventory Update");

            var transferControlFile = transferControlFiles.First();

            var pixRepository = new DataFileRepository <ManhattanInventorySync>();
            var inventorySync = pixRepository.Get(transferControlFile.FileLocation).ToList();

            //2) Load the I5 sync file into our RAW Table.
            _inventorySyncRepository.InsertInventorySync(inventorySync);

            if (inventorySync.Count > 0)
            {
                _inventorySyncRepository.SetAsReceived(new InventorySyncProcessing
                {
                    TransactionNumber    = inventorySync.First().TransactionNumber,
                    ReceivedDate         = DateTime.Now,
                    ManhattanDateCreated = inventorySync.First().DateCreated,
                    ManhattanTimeCreated = inventorySync.First().TimeCreated
                });
            }

            LogInsert(inventorySync, transferControlFile);


            //3)VALIDATION - ABORT THE SYNC IF THE LAST APPLIED PIX/SHIPMENT HAS TIMESTAMP GREATER THAN OUR SYNC FILE'S (scenario would cause inaccurate inventory)
            var inventorySyncStatus = _inventorySyncRepository.GetInventorySyncStatus(inventorySync.First().TransactionNumber);

            if (!inventorySyncStatus.IsValid)
            {
                _log.Debug(string.Format("Inventory Sync {0} is Stale - {1}", inventorySync.First().TransactionNumber, inventorySyncStatus.Message));
                EmailAuditSummary(null, inventorySync.First().TransactionNumber);
            }
            else
            {
                //4) Load the Sync data into Stl Inventory Table.
                var latestManhattanInventorySync = _stlInventoryRepository.GetLatestManhattanInventorySync().ToList();

                if (latestManhattanInventorySync.Count > 0)
                {
                    using (var transactionScope = Scope.CreateTransactionScope())
                    {
                        _stlInventoryRepository.InsertStlInventory(latestManhattanInventorySync);

                        _log.Debug("Inserted " + latestManhattanInventorySync.Count() + " records from latest InventorySync data");

                        _inventorySyncRepository.SetAsProcessed(new InventorySyncProcessing
                        {
                            TransactionNumber = latestManhattanInventorySync.First().ManhattanInventorySyncTransactionNumber,
                            ProcessedDate     = latestManhattanInventorySync.First().InventoryDate
                        });

                        transactionScope.Complete();
                    }

                    var logBuilder = new StringBuilder();
                    logBuilder.AppendLine("---AUDIT REPORT---");

                    var auditEntries = _stlInventoryRepository.GetStlInventorySyncAudit().ToList();
                    if (auditEntries.Count > 0)
                    {
                        logBuilder.AppendLine("STATUS | SKU | QUANTITY");

                        foreach (var entry in auditEntries)
                        {
                            logBuilder.AppendLine(string.Format("{0} | {1} | {2}", entry.Status, entry.Upc, entry.Quantity));
                        }
                    }
                    else
                    {
                        logBuilder.AppendLine("SYNC MATCHES CURRENT INVENTORY");
                    }
                    _log.Debug(logBuilder.ToString());

                    EmailAuditSummary(auditEntries, latestManhattanInventorySync.First().ManhattanInventorySyncTransactionNumber);
                }
                else
                {
                    _log.Debug("No sync data for StlInventory!!!");
                }
            }
        }