public void ReadDataFromCsvFile_OverridesProvidedFields_CSVFieldOverridesProvided() { var mockLogger = new Mock <ILogger>(); string testFile = "../../../Utilities/validdata.csv"; CSVFieldOverrides withoutOverrides = new CSVFieldOverrides(); Dictionary <string, string> fields = new Dictionary <string, string>(); fields.Add("FIRST_NAME", "FIRST_NAME"); fields.Add("LAST_NAME", "LAST_NAME"); fields.Add("EMAIL", "EMAIL"); fields.Add("SUPERVISOR", "SUPERVISOR"); fields.Add("EMPLOYEE_ID", "EMPLOYEE_ID"); fields.Add("LOCATION_TITLE", "LOCATION_TITLE"); fields.Add("LOCATION_ABR", "LOCATION_ABR"); fields.Add("GROUP_TITLE", "GROUP_TITLE"); fields.Add("GROUP_ABR", "GROUP_ABR"); CSVFieldOverrides withOverrides = new CSVFieldOverrides(); withOverrides.Fields = fields; EverfiCSVReader reader = new EverfiCSVReader(mockLogger.Object, withOverrides); var usersFromCSVWithOverride = reader.ReadDataFromCsvFile(testFile).ToList(); foreach (var field in fields) { foreach (var user in usersFromCSVWithOverride) { Assert.Matches(field.Value, user.GetType().GetProperty(field.Key).GetValue(user).ToString()); } } }
public EverfiCSVReader(ILogger logger, CSVFieldOverrides fieldOverrides) { this.logger = logger; CsvParserOptions options = new CsvParserOptions(DEFAULT_CONTAINS_HEADER, DEFAULT_DELIMETER); parser = new CsvParser <EverfiUser>(options, new EverfiUserModelMapping()); this.fieldOverrides = fieldOverrides; }
public Application(AppConfiguration configuration, CSVFieldOverrides fieldOverrides, ILogger logger) { this.configuration = configuration; this.fieldOverrides = fieldOverrides; this.logger = logger; try { timeStamp = DateTime.Now; fileArchiver = new FileArchiver(this.timeStamp, this.logger); this.templateFile = new FileInfo(Environment.ExpandEnvironmentVariables(configuration.ExcelTemplatePath)); this.csvFile = new FileInfo(Environment.ExpandEnvironmentVariables(configuration.CSVReportPath)); } catch (Exception ex) { logger.Error("Failed to parse file paths | Reason: {0}", ex); Environment.Exit(0); } }