public List <StudentEntity> ReadRecords(string filePath) { try { var reader = new StreamReader(File.OpenRead(filePath)); List <StudentEntity> students = new List <StudentEntity>(); StudentEntity student; while (!reader.EndOfStream) { var line = reader.ReadLine(); var studentDataArray = line.Split(Separator); if (studentDataArray.Length == 4) { var stage = studentDataArray[0]; var gender = studentDataArray[2]; var lastModifiedDate = FieldParser.ConvertToDate(studentDataArray[3]); student = new StudentEntity(stage, studentDataArray[1], gender, lastModifiedDate); students.Add(student); } } return(students); } catch (Exception ex) { throw new InvalidOperationException("ReadRecords:" + ex.Message + ex.StackTrace); } }
internal void SetFilters(List <string> csvFilters) { try { KeyValuePair <string, object> filterDefinition = new KeyValuePair <string, object>(); _sortByColumns = new List <string>(); foreach (var filter in csvFilters) { var filterProps = filter.Split('='); switch (filterProps[0].ToLower()) { case "gender": _sortByColumns.Add("LastUpdated|1"); filterDefinition = new KeyValuePair <string, object>(filterProps[0], filterProps[1]); break; case "stage": _sortByColumns.Add("LastUpdated|1"); filterDefinition = new KeyValuePair <string, object>(filterProps[0], filterProps[1]); break; case "lastupdated": _sortByColumns.Add("LastUpdated|0"); filterDefinition = new KeyValuePair <string, object>(filterProps[0], FieldParser.ConvertToDate(filterProps[1])); break; default: _sortByColumns.Add("Name"); filterDefinition = new KeyValuePair <string, object>(filterProps[0], filterProps[1]); break; } var filterProp = new KeyValuePair <string, object>(filterProps[0], filterProps[1]); _filters.Add(filterProp); } } catch (Exception ex) { string errorMessage = $"Error setting filters for the list of students."; throw new StudentException(errorMessage, ex); } }