Example #1
0
        public void UploadAndExtractFreeCountryExcel([FromUri] int id)
        {
            //从httpRequest中获取文件并写入磁盘系统
            var filesGetter = new FilesGetter();

            var fileSavePath = filesGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\TempFiles\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            //var excel = new ExcelExtracter(fileSavePath);

            //excel.ExtractFCPurchaseOrderSummary(id);

            //excel.ExtractFCPurchaseOrderDetail(id);

            var parser = new ExcelParser(fileSavePath);

            parser.ParseFreeCountryPackingListV2(id);

            //强行关闭进程
            var killer = new ExcelKiller();

            killer.Dispose();
        }
        public void UploadAndDownloadFile([FromUri] int templateId, [FromUri] string lastBillingDate, [FromUri] string currentBillingDate)
        {
            var chargeMethodsList = _context.ChargeMethods
                                    .Include(x => x.ChargeTemplate)
                                    .Where(x => x.ChargeTemplate.Id == templateId)
                                    .OrderBy(x => x.From)
                                    .ToList();

            var fileGetter = new FilesGetter();
            var path       = fileGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\TempFiles\");

            if (path == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var calculator = new InventoryFeeCalculator(path);

            calculator.RecalculateInventoryFeeInExcel(chargeMethodsList, chargeMethodsList.First().TimeUnit, lastBillingDate, currentBillingDate);

            //强行关闭Excel进程
            var killer = new ExcelKiller();

            killer.Dispose();

            //在静态变量中记录下载信息
            DownloadRecord.FileName = fileGetter.FileName;
            DownloadRecord.FilePath = path;
        }
Example #3
0
        public void Setup()
        {
            Authenticator driveAuthenticator = new Authenticator();

            driveAuthenticator.Authenticate("test");
            this.testee = new FilesGetter(new GoogleDriveServiceProvider(driveAuthenticator));
        }
Example #4
0
        public IHttpActionResult UploadTemplate([FromUri] int shipOrderId, [FromUri] string operation)
        {
            var fileGetter = new FilesGetter();

            var path = fileGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\TempFiles\");

            if (path == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var extracter = new FBAExcelExtracter(path);

            if (operation == FBAOperation.UploadBOL)
            {
                var bolDetailList = extracter.ExtractBOLTemplate();

                var generator = new PDFGenerator();

                var fileName = generator.GenerateFBABOL(shipOrderId, bolDetailList);

                return(Ok(fileName));
            }
            else if (operation == FBAOperation.UploadShipOrder)
            {
                extracter.ExtractFBAPickingListTemplate(shipOrderId);

                return(Ok("Create success!"));
            }

            return(Ok());
        }
        public IHttpActionResult UploadLabelFiles([FromUri] int orderDetailId)
        {
            // 将label文件反序列化,添加新的label文件,再序列化
            var orderDetailInDb = _context.FBAOrderDetails.Find(orderDetailId);
            var deList          = DeserializeLabelFilesString(orderDetailInDb.LabelFiles);
            var list            = new List <LabelFile>();

            list.AddRange(deList);

            //从httpRequest中获取文件并写入磁盘系统
            var filesGetter  = new FilesGetter();
            var filePathList = filesGetter.GetAndSaveMultipleFileFromHttpRequest(@"D:\Labels\");

            if (filePathList.ToList().Count == 0)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            foreach (var f in filePathList)
            {
                var labelFile = new LabelFile();
                labelFile.NameInSystem = f.Split('\\').Last();
                labelFile.OriginalName = labelFile.NameInSystem.Split('-').Last();
                labelFile.RootPath     = f;
                labelFile.UploadDate   = DateTime.Now;

                list.Add(labelFile);
            }

            orderDetailInDb.LabelFiles = SerializeLabelFiles(list);

            _context.SaveChanges();
            return(Ok(new { OrderDetailId = orderDetailId, list.Count }));
        }
        public void Download_WhenFileIsDownloaded_ThenItIsCorrect()
        {
            // Arrange
            var driveFileGetter = new FilesGetter(this.googleDriveServiceProvider);
            var driveFiles = driveFileGetter.GetDriveFiles(string.Empty).ToList();

            // Act
            string rootFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\TestGoogleDrive";
            this.testee.Download(driveFiles[0], rootFolder);

            // Assert
            Directory.GetFiles(rootFolder).Any().Should().BeTrue();
        }
Example #7
0
        public void Download_WhenFileIsDownloaded_ThenItIsCorrect()
        {
            // Arrange
            var driveFileGetter = new FilesGetter(this.googleDriveServiceProvider);
            var driveFiles      = driveFileGetter.GetDriveFiles(string.Empty).ToList();

            // Act
            string rootFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\TestGoogleDrive";

            this.testee.Download(driveFiles[0], rootFolder);

            // Assert
            Directory.GetFiles(rootFolder).Any().Should().BeTrue();
        }
Example #8
0
        public void CreateNewGeneralLocationSummaryAndDetail([FromUri] string vendor, [FromUri] string inboundDate, [FromUri] int preId)
        {
            var fileSavePath = "";
            var filesGetter  = new FilesGetter();

            fileSavePath = filesGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\TempFiles\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var excel = new ExcelExtracter(fileSavePath);

            excel.UploadReplenishimentLocationDetail(preId, vendor, inboundDate, fileSavePath.Split('\\').Last().Split('.').First());
        }
        public IHttpActionResult UploadFBATemplateByMasterOrderId([FromUri] int masterOrderId, [FromUri] string operation)
        {
            //从httpRequest中获取文件并写入磁盘系统
            var filesGetter = new FilesGetter();

            var fileSavePath = filesGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\PackingLists\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var excel  = new FBAExcelExtracter(fileSavePath);
            var killer = new ExcelKiller();
            var result = new List <FBAOrderDetail>();

            if (operation == "Upload")
            {
                try
                {
                    result = excel.ExtractFBAPackingListTemplate("", masterOrderId);
                }
                catch (Exception e)
                {
                    killer.Dispose();
                    throw new Exception(e.Message);
                }
            }

            // 将成功上传的packing list保存到efile中
            var masterOrderInDb = _context.FBAMasterOrders.Find(masterOrderId);

            _context.EFiles.Add(new EFile {
                UploadDate         = DateTime.Now,
                CustomizedFileName = "Packing List",
                RootPath           = @"D:\PackingLists\",
                FileName           = fileSavePath.Split('\\').Last(),
                UploadBy           = _userName,
                FBAMasterOrder     = masterOrderInDb
            });

            _context.SaveChanges();

            killer.Dispose();

            return(Ok(Mapper.Map <IList <FBAOrderDetail>, IList <FBAOrderDetailDto> >(result)));
        }
        public void UploadFBATemplate([FromUri] string grandNumber)
        {
            //从httpRequest中获取文件并写入磁盘系统
            var filesGetter = new FilesGetter();

            var fileSavePath = filesGetter.GetAndSaveFileFromHttpRequest(@"D:\TempFiles\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var excel  = new FBAExcelExtracter(fileSavePath);
            var killer = new ExcelKiller();

            excel.ExtractFBAPackingListTemplate(grandNumber);
            killer.Dispose();
        }
        public void Synchronize_WhenFolderIsSynchronize_ThenStructureIsCorrect()
        {
            // Arrange
            var authenticator = new Authenticator();
            authenticator.Authenticate("test");
            var filesGetter = new FilesGetter(new GoogleDriveServiceProvider(authenticator));
            var files = filesGetter.GetDriveFiles(GoogleDriveConstants.FolderMimeType).ToList();

            // Act
            string rootFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\TestGoogle";
            this.testee.SynchronizeFolder(
                files[1],
                rootFolder);

            // Assert
            Directory.Exists(rootFolder).Should().BeTrue();
            Directory.GetDirectories(rootFolder).Length.Should().Be(1);
        }
Example #12
0
        public void ExtractPullSheetExcel([FromUri] int id)
        {
            var fileSavePath = "";

            //方法1:写入磁盘系统
            //从httpRequest中获取文件并写入磁盘系统
            var filesGetter = new FilesGetter();

            fileSavePath = filesGetter.GetAndSaveFileFromHttpRequest(@"D:\TempFiles\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var excel = new ExcelExtracter(fileSavePath);

            excel.ExtractPullSheet(id);
        }
        public IHttpActionResult UploadFiles([FromUri] string reference, [FromUri] string orderType, [FromUri] string fileName, [FromUri] string version)
        {
            var fileGetter = new FilesGetter();

            var path = fileGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\eFolder\");

            var newFileRecord = new EFile();

            if (version == "V1")
            {
                //newFileRecord.CustomizedFileName = fileName + "-" + DateTime.Now.ToString("hhmmss");
                newFileRecord.CustomizedFileName = path.Split('\\').Last().Split('-')[1];
                newFileRecord.FileName           = path.Split('\\').Last();
                newFileRecord.RootPath           = @"D:\eFolder\";
                newFileRecord.UploadBy           = _userName;
                newFileRecord.UploadDate         = DateTime.Now;
                newFileRecord.Status             = FBAStatus.Valid;
            }
            else
            {
                throw new Exception("The system does not support version:" + version + ".");
            }

            if (orderType == FBAOrderType.MasterOrder)
            {
                var masterOrderInDb = _context.FBAMasterOrders.SingleOrDefault(x => x.Container == reference);
                newFileRecord.FBAMasterOrder = masterOrderInDb;
            }
            else if (orderType == FBAOrderType.ShipOrder)
            {
                var shipOrderInDb = _context.FBAShipOrders.SingleOrDefault(x => x.ShipOrderNumber == reference);
                newFileRecord.FBAShipOrder = shipOrderInDb;
            }
            else
            {
                throw new Exception("The system does not support order type:" + orderType + ".");
            }

            _context.EFiles.Add(newFileRecord);
            _context.SaveChanges();

            return(Ok(Mapper.Map <EFile, EFileDto>(newFileRecord)));
        }
        public void CreateReplenishmentPickDetailFormLoadPlan([FromUri] int shipOrderId)
        {
            var fileSavePath  = "";
            var filesGetter   = new FilesGetter();
            var shipOrderInDb = _context.ShipOrders.Find(shipOrderId);

            fileSavePath = filesGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\TempFiles\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var extractor = new LoadPlanExtracter(fileSavePath);

            extractor.PickReplenishmentLoadPlan(shipOrderId);

            shipOrderInDb.Status = Status.Picking;
            _context.SaveChanges();
        }
Example #15
0
        public void Synchronize_WhenFolderIsSynchronize_ThenStructureIsCorrect()
        {
            // Arrange
            var authenticator = new Authenticator();

            authenticator.Authenticate("test");
            var filesGetter = new FilesGetter(new GoogleDriveServiceProvider(authenticator));
            var files       = filesGetter.GetDriveFiles(GoogleDriveConstants.FolderMimeType).ToList();

            // Act
            string rootFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\TestGoogle";

            this.testee.SynchronizeFolder(
                files[1],
                rootFolder);

            // Assert
            Directory.Exists(rootFolder).Should().BeTrue();
            Directory.GetDirectories(rootFolder).Length.Should().Be(1);
        }
        public void UploadRegularPackingList([FromUri] int preId, [FromUri] string vendor)
        {
            var fileSavePath = "";

            var filesGetter = new FilesGetter();

            fileSavePath = filesGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\TempFiles\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var excel = new ExcelExtracter(fileSavePath);

            excel.ExtractPOSummaryAndCartonDetail(preId, vendor);

            var killer = new ExcelKiller();

            killer.Dispose();
        }
Example #17
0
        public void SaveUploadedFileAndExtractExcel([FromUri] int id, [FromUri] string vendor)
        {
            var fileSavePath = "";

            //写入磁盘系统
            var filesGetter = new FilesGetter();

            fileSavePath = filesGetter.GetAndSaveSingleFileFromHttpRequest(@"D:\TempFiles\");

            if (fileSavePath == "")
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var excel = new ExcelExtracter(fileSavePath);

            excel.ExtractPOSummaryAndCartonDetail(id, vendor);

            //强行关闭进程
            var killer = new ExcelKiller();

            killer.Dispose();
        }
Example #18
0
            public async Task RefreshContent()
            {
                PBmain.IsRunning     = PBmain.IsVisible = true;
                BTNrefresh.IsEnabled = false;
                BTNrefresh.Text      = "↻ (Refreshing...)";
                StopRequest          = false;
                IsRunning            = true;
                await FoldersGetter.ResetAsync();

                var list = await FoldersGetter.GetNextPageAsync();

                //Clearing children when the view is removed from screen is much faster
                GDmain.Children.Remove(SPcontent);
                SPcontent.Children.Clear();
                GDmain.Children.Add(SPcontent, 0, 1);

                int folderCount = 0, fileCount = 0;

                while (list != null)
                {
                    foreach (var subFolder in list)
                    {
                        if (StopRequest)
                        {
                            break;
                        }
                        var lb = new CloudFileLabel(subFolder);
                        lb.FileClicked += delegate
                        {
                            LBselected?.Deselect();
                            (LBselected = lb).Select();
                            OnFileClicked(lb);
                        };
                        SPcontent.Children.Add(lb);
                        folderCount++;
                    }
                    BTNrefresh.Text = $"↻ (Refreshing...){(folderCount > 0 ? $" | {folderCount} folders" : "")}{(fileCount > 0 ? $" | {fileCount} files" : "")}";
                    list            = await FoldersGetter.GetNextPageAsync();
                }
                await FilesGetter.ResetAsync();

                list = await FilesGetter.GetNextPageAsync();

                while (list != null)
                {
                    foreach (var file in list)
                    {
                        if (StopRequest)
                        {
                            IsRunning = false;
                            return;
                        }
                        var lb = new CloudFileLabel(file);
                        lb.FileClicked += delegate
                        {
                            LBselected?.Deselect();
                            (LBselected = lb).Select();
                            OnFileClicked(lb);
                        };
                        SPcontent.Children.Add(lb);
                        fileCount++;
                    }
                    BTNrefresh.Text = $"↻ (Refreshing...){(folderCount > 0 ? $" | {folderCount} folders" : "")}{(fileCount > 0 ? $" | {fileCount} files" : "")}";
                    list            = await FilesGetter.GetNextPageAsync();
                }
                PBmain.IsRunning = PBmain.IsVisible = false;
                MyLogger.Log("Folders loaded");
                IsRunning = false;
                await Task.Delay(500);

                BTNrefresh.Text = $"↻{(folderCount>0?$" | {folderCount} folders":"")}{(fileCount>0?$" | {fileCount} files":"")}{(StopRequest?" (Incomplete)":"")}";
                if (folderCount == 0 && fileCount == 0)
                {
                    BTNrefresh.Text += " (Empty)";
                }
                BTNrefresh.IsEnabled = true;
            }
 public void Setup()
 {
     Authenticator driveAuthenticator = new Authenticator();
     driveAuthenticator.Authenticate("test");
     this.testee = new FilesGetter(new GoogleDriveServiceProvider(driveAuthenticator));
 }