//this function parses input file private static List <RecordDto> ParseInputFile(Enums.InputFileType inputType) { try { string inputFile = Utility.GetFullFilePathWithExtension(inputType); if (File.Exists(inputFile)) { Char[] seperator = Utility.GetDelimiterChar(inputType); var dtoRecord = from line in File.ReadLines(inputFile) let record = line.Split(seperator, StringSplitOptions.None) select new RecordDto() { LastName = record[0], FirstName = record[1], Gender = record[2], FavoriteColor = record[3], DateOfBirth = Convert.ToDateTime(record[4]).ToString("M/d/yyyy") }; return(dtoRecord.ToList()); } else { return(null); } } catch (Exception ex) { Console.WriteLine("Error while executing ParseInputFile"); throw ex; } }
public static Char[] GetDelimiterChar(Enums.InputFileType inputType) { Char[] delimiter = null; if (inputType.Equals(Enums.InputFileType.PipeDelimited)) { delimiter = new Char[] { '|' }; } else if (inputType.Equals(Enums.InputFileType.CommaDelimited)) { delimiter = new Char[] { ',' }; } else if (inputType.Equals(Enums.InputFileType.SpaceDelimited)) { delimiter = new Char[] { ' ' }; } return(delimiter); }
public static string GetFullFilePathWithExtension(Enums.InputFileType inputType) { if (inputType.Equals(Enums.InputFileType.PipeDelimited)) { return(Path.Combine(Directory.GetCurrentDirectory(), Constants.PIPE_DELIMITED_INPUT_FILE)); } else if (inputType.Equals(Enums.InputFileType.CommaDelimited)) { return(Path.Combine(Directory.GetCurrentDirectory(), Constants.COMMA_DELIMITED_INPUT_FILE)); } else if (inputType.Equals(Enums.InputFileType.SpaceDelimited)) { return(Path.Combine(Directory.GetCurrentDirectory(), Constants.SPACE_DELIMITED_INPUT_FILE)); } else { return(string.Empty); } }