private void GenerateZipFile()
        {
            var zip = new ZipFileHandler();

            zip.ZipFolder(ExcelSettings.Default.SalesReportsFoldersLocation,
                          ExcelSettings.Default.ZipFileResultLocation);
        }
Exemple #2
0
        public List <string> DeployArtifacts(FileTransferPacket packet)
        {
            if (packet.Content == null)
            {
                return(new List <string>());
            }

            //store file into a temp folder
            string directoryName = Path.Combine(Information.TempDirectoryTempData, DateTime.Now.ToString("yyyyMMddHHmmss") + "_d");

            Directory.CreateDirectory(directoryName);
            string fileName = Path.Combine(directoryName, DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip");

            SaveFileStream(fileName, new MemoryStream(packet.Content));
            List <string> files = ZipFileHandler.UnZip(fileName, directoryName);

            File.Delete(fileName);

            //pass over to batch file
            string batchFile = ExtractBatchFile(directoryName);

            Trace.TraceInformation("The system is going to update. Waiting for stop signal...");
            Trace.Flush();

            Eyedia.Core.Windows.Utilities.WindowsUtility.ExecuteBatchFile(batchFile, true);
            //List<string> output = new List<string>();
            //List<string> error = new List<string>();
            //Eyedia.Core.Windows.Utilities.WindowsUtility.ExecuteDosCommand(batchFile, true, ref output, ref error);
            //Trace.TraceInformation("srecmd: Batch file '{0}' was exeucted, output was:{1},{2}Error:{3}{4}",
            //    batchFile, output.ToLine(), Environment.NewLine, error.ToLine(), Environment.NewLine);
            return(files);
        }
        public void ReadAllPurchases(string zipFileLocation, Action <int, int, decimal, string, DateTime> action)
        {
            const string TempFolderName = @"UnzippedSalesReports";

            var excelXlsHander = new ExcelXlsHandler();

            var zip = new ZipFileHandler();

            zip.UnzipFolder(zipFileLocation, TempFolderName);

            foreach (var subfolder in Directory.GetDirectories(TempFolderName))
            {
                var dateAsString = subfolder.Substring(subfolder.LastIndexOf('\\') + 1);
                var date         = DateTime.ParseExact(dateAsString, "dd-MMM-yyyy", CultureInfo.InvariantCulture);

                foreach (var file in Directory.GetFiles(subfolder))
                {
                    if (file.EndsWith(".xls"))
                    {
                        var slashIndex   = file.LastIndexOf('\\') + 1;
                        var locationName = file.Substring(slashIndex, file.IndexOf("-Purchases-Report", slashIndex) - slashIndex);

                        excelXlsHander.ReadExcelSheet(file, row =>
                        {
                            if (row[0] != DBNull.Value)
                            {
                                action((int)(double)row[0], (int)(double)row[1], (decimal)(double)row[2], locationName, date);
                            }
                        });
                    }
                }
            }

            Directory.Delete(TempFolderName, true);
        }
        private void GenerateZipFile()
        {
            var zip = new ZipFileHandler();

            zip.ZipFolder(
                ExcelSettings.Default.SalesReportsDestinationFolder,
                ExcelSettings.Default.OutputZipFileLocation);
        }
Exemple #5
0
        public string PickupDlls(string fromLocation = null)
        {
            string toZipFile = Path.Combine(Information.TempDirectoryTempData, "idpe.zip");

            if (File.Exists(toZipFile))
            {
                File.Delete(toZipFile);
            }

            if (fromLocation == null)
            {
                fromLocation = AppDomain.CurrentDomain.BaseDirectory;
            }

            //create temp repository
            string tempRepository = Path.Combine(Information.TempDirectoryTempData, "sredlls");

            if (Directory.Exists(tempRepository))
            {
                Directory.Delete(tempRepository, true);
            }
            Directory.CreateDirectory(tempRepository);

            //copy neccessary files into temp repository
            string[]      files     = Directory.GetFiles(fromLocation);
            List <string> artifacts = DeploymentArtifacts;

            foreach (string file in files)
            {
                if (artifacts.Contains(Path.GetFileName(file)))
                {
                    File.Copy(file, Path.Combine(tempRepository, Path.GetFileName(file)));
                }
            }

            //couple of artifacts could be with relative path, lets try
            foreach (string file in artifacts)
            {
                if (File.Exists(Path.Combine(tempRepository, file)))
                {
                    if (!File.Exists(Path.Combine(tempRepository, Path.GetFileName(file))))
                    {
                        File.Copy(file, Path.Combine(tempRepository, Path.GetFileName(file)));
                    }
                }
            }

            return(EnsureFiles(artifacts, tempRepository) ? ZipFileHandler.Zip(tempRepository, toZipFile): string.Empty);
        }
        public void ReadAllPurchases(string zipFileLocation, Action<int, int, decimal, string, DateTime> action)
        {
            const string TempFolderName = @"UnzippedSalesReports";

            var excelXlsHander = new ExcelXlsHandler();

            var zip = new ZipFileHandler();

            zip.UnzipFolder(zipFileLocation, TempFolderName);

            foreach (var subfolder in Directory.GetDirectories(TempFolderName))
            {
                var dateAsString = subfolder.Substring(subfolder.LastIndexOf('\\') + 1);
                var date = DateTime.ParseExact(dateAsString, "dd-MMM-yyyy", CultureInfo.InvariantCulture);

                foreach (var file in Directory.GetFiles(subfolder))
                {
                    if (file.EndsWith(".xls"))
                    {
                        var slashIndex = file.LastIndexOf('\\') + 1;
                        var locationName = file.Substring(
                            slashIndex,
                            file.IndexOf("-Purchases-Report", slashIndex, StringComparison.Ordinal) - slashIndex);

                        excelXlsHander.ReadExcelSheet(
                            file,
                            row =>
                                {
                                    if (row[0] != DBNull.Value)
                                    {
                                        action(
                                            (int)(double)row[0],
                                            (int)(double)row[1],
                                            (decimal)(double)row[2],
                                            locationName,
                                            date);
                                    }
                                });
                    }
                }
            }

            Directory.Delete(TempFolderName, true);
        }
Exemple #7
0
        internal string Handle()
        {
            ExtensionMethods.TraceInformation("Handling a zip file '{0}', processing by '{1}' of data source '{2}'.", ZipFileName, ProcessingBy, DataSourceId);

            string unzipLocation = Path.Combine(EyediaCoreConfigurationSection.CurrentConfig.TempDirectory, Constants.IdpeBaseFolderName);

            unzipLocation     = Path.Combine(unzipLocation, "TempZip");
            unzipLocation     = Path.Combine(unzipLocation, ZipUniqueId);
            UnZippedFileNames = ZipFileHandler.UnZip(ZipFileName, unzipLocation).ToArray();
            Array.Sort(UnZippedFileNames, (f1, f2) => Path.GetExtension(f1).CompareTo(Path.GetExtension(f2)));  //todo

            if (UnZippedFileNames.Length == 0)
            {
                //2nd attempt. Reason - Sometimes unzip returns 0 files.
                Thread.Sleep(500);
                UnZippedFileNames = ZipFileHandler.UnZip(ZipFileName, unzipLocation).ToArray();
            }
            string validationErrorMessage = string.Format("The zip file '{0}' processing has beeen aborted as validation process failed", ZipFileName);

            if (DataSourceSpecificZipFileWatcher != null)
            {
                DataSourceSpecificZipFileWatcher.UnZippedFileNames = UnZippedFileNames;
                DataSourceSpecificZipFileWatcher.ZipUniqueId       = ZipUniqueId;
                DataSourceSpecificZipFileWatcher.ZipFileName       = ZipFileName;
                if (!DataSourceSpecificZipFileWatcher.Prepare(ref validationErrorMessage))
                {
                    throw new BusinessException(validationErrorMessage);
                }
            }
            else
            {
                if (!Prepare(ref validationErrorMessage))
                {
                    throw new BusinessException(validationErrorMessage);
                }
            }

            UnZippedFileNames = AddUniqueIdToFiles(UnZippedFileNames, ZipUniqueId);
            SetZipFileInfo(this.ZipUniqueId, UnZippedFileNames.Length);

            ExtensionMethods.TraceInformation("There are {0} files.", UnZippedFileNames.Length);
            foreach (string unZippedFileName in UnZippedFileNames)
            {
                string onlyFileName = Path.GetFileName(unZippedFileName);
                if (DataSourceSpecificZipFileWatcher != null)
                {
                    ExtensionMethods.TraceInformation("'{0}' will be processed with specific handler '{1}'", onlyFileName, DataSourceSpecificZipFileWatcher.ToString());
                    DataSourceSpecificZipFileWatcher.Handle(unZippedFileName, onlyFileName, Path.GetExtension(unZippedFileName), FileStatus.Process);
                }
                else
                {
                    ExtensionMethods.TraceInformation("'{0}' will be processed with default handler", onlyFileName);
                    string fileExt = Path.GetExtension(unZippedFileName).ToLower();
                    //if (fileExt == ".txt")
                    //    Debugger.Break();
                    FileStatus fileProposedStatus = FileStatus.Process;
                    if (IsInIgnoreList(fileExt))
                    {
                        fileProposedStatus = FileStatus.Ignore;
                    }
                    if (IsInIgnoreListButCopy(fileExt))
                    {
                        fileProposedStatus = FileStatus.IgnoreMoveToOutput;
                    }
                    Handle(unZippedFileName, Path.GetFileName(unZippedFileName), fileExt, fileProposedStatus);
                }
                ExtensionMethods.TraceInformation("'{0}' handled.", onlyFileName);
            }
            ExtensionMethods.TraceInformation("All files handled.");
            Trace.Flush();
            return(ZipUniqueId);
        }
 private void GenerateZipFile()
 {
     var zip = new ZipFileHandler();
     zip.ZipFolder(
         ExcelSettings.Default.SalesReportsDestinationFolder,
         ExcelSettings.Default.OutputZipFileLocation);
 }