private async Task <int> StartUnzipAsync() { var myZip = new ZipUnpacker(DeponaConfig.Configuration.GetMappSettingsInstance("Temp"), DeponaConfig.Configuration.GetMappSettingsInstance("Source")); string[] zipfileName = Directory.GetFiles(_dictMapp["Temp"], "*.zip"); var t = await myZip.UnpackZipAndCopyToSource(zipfileName[0]); return(0); }
private static void ProcessZipFiles() { using (var dbContext = new DealershipDbContext()) { var data = new DealershipData(dbContext); var employees = new DealershipRepository <Employee>(dbContext); var sales = new DealershipRepository <Sale>(dbContext); var vehicles = new DealershipRepository <Vehicle>(dbContext); var shops = new DealershipRepository <Shop>(dbContext); SeedingSQLDBFromZip seedingSQLDBFromZip = new SeedingSQLDBFromZip(data, employees, shops, sales, vehicles); var processor = new ZipUnpacker(); processor.Unpack(Constants.PathToZipFile, Constants.PathToUnzip); var matchingDirectories = Utility.GetDirectoriesByPattern(Constants.PathToUnzippedFiles); ReportReader reportReader = new ReportReader(seedingSQLDBFromZip, data); reportReader.ParseExcelData(matchingDirectories); } }
private async void cmdUnpack_Click(object sender, EventArgs e) { bool errorState = false; if (!Directory.Exists(_dictMapp["Temp"])) { return; } if (!Directory.Exists(_dictMapp["Source"])) { return; } var filecountDat = (from file in Directory.EnumerateFiles(_dictMapp["Temp"], "*.dat", SearchOption.TopDirectoryOnly) select file).Count(); var filecountZip = (from file in Directory.EnumerateFiles(_dictMapp["Temp"], "*.zip", SearchOption.TopDirectoryOnly) select file).Count(); var filecountSourcemap = (from file in Directory.EnumerateFiles(_dictMapp["Source"], "*.*", SearchOption.TopDirectoryOnly) select file).Count(); var filecountTempmap = (from file in Directory.EnumerateFiles(_dictMapp["Temp"], "*.*", SearchOption.TopDirectoryOnly) select file).Count(); Cursor.Current = Cursors.WaitCursor; StringBuilder sb = new StringBuilder(); if (filecountZip > 1) { sb.AppendLine("FEL: flera zip filer! (max = 1)"); errorState = true; } if (filecountDat > 0 && filecountZip > 0) { sb.AppendLine("FEL: mix av .dat + .zip filer! (antingen .dat / eller .zip)"); errorState = true; } if (filecountSourcemap > 0) { sb.AppendLine("FEL: Source mappen är inte tom! (måste vara tom)"); errorState = true; } if (filecountTempmap == 0) { sb.AppendLine("FEL: Tempmappen är tom."); errorState = true; } if (errorState) { MessageBox.Show(sb.ToString(), "Fel hittade!", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (!errorState) { if (filecountZip == 1) { var myZip = new ZipUnpacker(DeponaConfig.Configuration.GetMappSettingsInstance("Temp"), DeponaConfig.Configuration.GetMappSettingsInstance("Source")); string[] zipfileName = Directory.GetFiles(_dictMapp["Temp"], "*.zip"); var fileInfo = new FileInfo(zipfileName[0]); long byteSize = fileInfo.Length; float compLevel = myZip.GetZipCompression(zipfileName[0]); long totBytes = byteSize * (long)(compLevel); totBytes = totBytes / 120000; int zipCount = myZip.GetZipFileCount(zipfileName[0]); progressBarZip.Maximum = zipCount + (int)totBytes; grpFooter.Enabled = false; grpUnzip.Visible = true; timerZip.Start(); /* * await Task.Run(() => * { * var t = startUnzipAsync(); * }); */ await Task.Run(StartUnzipAsync); timerZip.Stop(); grpUnzip.Enabled = false; grpFooter.Enabled = true; grpUnzip.Visible = false; this.Show(); this.Focus(); string caption = "Zip archive extraction"; MessageBox.Show("Zip archive unpacked and files moved to 'Source'", caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (filecountDat > 0) { // copy all .dat files to 'Source' folder var copyfiles = new CopyFiles(DeponaConfig.Configuration.GetMappSettingsInstance("Temp"), DeponaConfig.Configuration.GetMappSettingsInstance("Source")); int res = copyfiles.copyFiles(DeponaConfig.Configuration.GetMappSettingsInstance("Temp"), DeponaConfig.Configuration.GetMappSettingsInstance("Source")); if (res == -2) { MessageBox.Show("Error: 'Source folder is NOT empty!", "Copy error!", MessageBoxButtons.OK, MessageBoxIcon.Information); } // delete all files from 'Temp' folder var files = Directory.EnumerateFiles(DeponaConfig.Configuration.GetMappSettingsInstance("Temp")); int deleteCount = 0; foreach (var fileitem in files) { File.Delete(fileitem); deleteCount++; } DeponaConfig.Configuration.WriteLogMessage($"Deleted files in 'Temp': {deleteCount}"); string message = "Copy / move success!"; MessageBox.Show($"{deleteCount} files (.dat + .pdf) moved to 'Source'", message, MessageBoxButtons.OK, MessageBoxIcon.Information); } } Cursor.Current = Cursors.Default; }