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()); } }