// Calcluate the Tax for every Employee Record. private async Task CleanupExistingFile() { var tsk = Task.Run(() => { job.DoCleanup(); }); await tsk; }
private void GenerateImportCsv(object sender, DoWorkEventArgs e) { _csv = new StringBuilder(); _cancelToken = new CancellationTokenSource(); BtnLoadImages = false; BtnGenerateImportCsv = false; BtnCancel = true; var bodyContent = new StringBuilder(); var checkNumber = "00000"; var batchNumber = 0; var batchInc = 19; var recCount = 3; var first = true; var usedSkuNums = new List <string>(); _errors = new ObservableCollection <Error>(); try { TxtStatus = "Removing exisiting import product file..."; job = new ImportCsvJob(_descriptionsPath); job.DoCleanup(ImagePath); TxtStatus = "Generating import product csv file, please wait this can take several minutes...."; var t2tRefs = new ImageService().ReadImageDetails(ImagePath); worker.ReportProgress(1); foreach (var refff in t2tRefs.Distinct()) { //_cancelToken.Token.ThrowIfCancellationRequested(); if (string.IsNullOrEmpty(_descriptionsPath)) { MessageBox.Show("Please select a descriptions file"); return; } if (!refff.Contains(checkNumber)) { if (!usedSkuNums.Contains(refff.Substring(0, 6))) { usedSkuNums.Add(refff.Substring(0, 6)); batchNumber++; var dateFromFolder = ImagePath.Split('\\'); var result = job.DoJob(refff, t2tRefs, ref _errors); if (result.Length != 0) { bodyContent.AppendLine(result.ToString()); } if (bodyContent.Length != 0) { _csv.AppendLine(bodyContent.ToString()); if (first) { var heead = new StringBuilder(); heead.AppendLine(headers); first = false; File.AppendAllText( System.Configuration.ConfigurationManager.AppSettings["ImportProductsOutput"] + " " + dateFromFolder[dateFromFolder.Length - 1].Trim() + "" + batchInc + ".csv", heead.ToString()); } File.AppendAllText( System.Configuration.ConfigurationManager.AppSettings["ImportProductsOutput"] + " " + dateFromFolder[dateFromFolder.Length - 1].Trim() + "" + batchInc + ".csv", _csv.ToString().Trim() + Environment.NewLine); } _csv = new StringBuilder(); bodyContent = new StringBuilder(); checkNumber = refff.Substring(0, 9); worker.ReportProgress(recCount++); } } } _csv.AppendLine(bodyContent.ToString()); worker.ReportProgress(100); var unquieErrors = _errors.GroupBy(i => i.RefNumber).Select(i => i.First()).ToList(); foreach (var error in unquieErrors) { error.ErrorMessage = error.ErrorMessage; _errors.Add(error); } Errors = _errors; MessageBox.Show("Import Product File Generated"); } catch (OperationCanceledException ex) { MessageBox.Show("Operation cancelled" + ex.Message); } catch (NullReferenceException ex) { MessageBox.Show("Operation cancelled. Please ensure Excel file is labelled Sheet1."); new LogWriter().LogWrite(ex.Message); new LogWriter().LogWrite(ex.StackTrace); } catch (Exception ex) { MessageBox.Show("Operation cancelled" + ex.Message); new LogWriter().LogWrite(ex.StackTrace); } finally { _cancelToken.Dispose(); BtnGenerateImportCsv = true; BtnCancel = false; BtnLoadImages = true; } }