示例#1
0
        public List <CompletedWorkerScreening> ParseWorkerResponse(string fileContent)
        {
            CsvHelper.Configuration.Configuration config = new CsvHelper.Configuration.Configuration();
            config.SanitizeForInjection = true;
            config.IgnoreBlankLines     = true;

            config.TrimOptions      = CsvHelper.Configuration.TrimOptions.Trim;
            config.ShouldSkipRecord = record =>
            {
                return(record.All(string.IsNullOrEmpty));
            };

            // fix for unexpected spaces in header
            config.PrepareHeaderForMatch = (string header, int index) => header = header.Trim().ToLower();

            TextReader textReader = new StringReader(fileContent);
            var        workerCsv  = new CsvReader(textReader, config);

            workerCsv.Configuration.RegisterClassMap <CsvWorkerImportMap>();

            try
            {
                List <CsvWorkerImport>          imports   = workerCsv.GetRecords <CsvWorkerImport>().ToList();
                List <CompletedWorkerScreening> responses = new List <CompletedWorkerScreening>();
                foreach (var import in imports)
                {
                    if (import.RecordIdentifier.Substring(0, 2) == "WR")
                    {
                        responses.Add(new CompletedWorkerScreening()
                        {
                            RecordIdentifier = import.RecordIdentifier,
                            ScreeningResult  = CsvWorkerImport.TranslateStatus(import.Result)
                        });
                    }
                    else
                    {
                        responses.Add(new CompletedWorkerScreening()
                        {
                            SpdJobId        = import.RecordIdentifier,
                            ScreeningResult = CsvWorkerImport.TranslateStatus(import.Result)
                        });
                    }
                }

                return(responses);
            }
            catch (Exception e)
            {
                _logger.LogError("Error parsing worker response.");
                _logger.LogError("Message:");
                _logger.LogError(e.Message);
                // return an empty list so we continue processing other files.
                return(new List <CompletedWorkerScreening>());
            }
        }
        public WorkerScreeningResponse ParseWorkerResponse(string fileContent)
        {
            CsvHelper.Configuration.Configuration config = new CsvHelper.Configuration.Configuration();
            config.SanitizeForInjection = true;
            config.IgnoreBlankLines     = true;

            config.TrimOptions      = CsvHelper.Configuration.TrimOptions.Trim;
            config.ShouldSkipRecord = record =>
            {
                return(record.All(string.IsNullOrEmpty));
            };

            // fix for unexpected spaces in header
            config.PrepareHeaderForMatch = (string header, int index) => header = header.Trim().ToLower();

            TextReader textReader = new StringReader(fileContent);
            var        workerCsv  = new CsvReader(textReader, config);

            workerCsv.Configuration.RegisterClassMap <CsvWorkerImportMap>();

            try
            {
                CsvWorkerImport import = workerCsv.GetRecords <CsvWorkerImport>().ToList().First();

                WorkerScreeningResponse response = new WorkerScreeningResponse()
                {
                    RecordIdentifier = import.Lcrbworkerjobid,
                    Result           = import.Result
                };

                return(response);
            }
            catch (Exception e)
            {
                _logger.LogError("Error parsing worker response.");
                _logger.LogError("Message:");
                _logger.LogError(e.Message);
                // return an empty list so we continue processing other files.
                return(new WorkerScreeningResponse());
            }
        }