Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 3
0
        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;
        }