示例#1
0
 public MainWindow()
 {
     InitializeComponent();
     _fileNames          = new ObservableCollection <Image>();
     btnCancel.IsEnabled = false;
     job     = new ImportCsvJob();
     _csv    = new StringBuilder();
     _errors = new ObservableCollection <Error>();
 }
        public async Task RunImport()
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json")
                         .Build();

            StatusRelay relay = new StatusRelay(config);
            await relay.Initialize();

            ImportCsvJob job = new ImportCsvJob();

            JobModel model = new JobModel();

            model.Id   = "IMPORTTEST";
            model.Path = "People.csv";

            ResponseModel response = await job.Run(model, relay, null, config);
        }
示例#3
0
        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;
            }
        }