public void Add(NeighbourhoodProblem problem) { var line = Serialize(problem); using (var writer = File.AppendText(dataFilepath)) { writer.WriteLine(line); } }
public static string Serialize(NeighbourhoodProblem problem) { var columns = new string[NumberOfColumns]; columns[RegisteredColumn] = problem.Registered.ToBinary().ToString(); columns[LatitudeColumn] = problem.Location.Latitude.ToString(); columns[LongditudeColumn] = problem.Location.Longditude.ToString(); columns[LocationNameColumn] = problem.Location.Name; columns[DescriptionColumn] = problem.Description; columns[ReporterColumn] = problem.Reporter; var row = string.Join(ColumnDelimiterString, columns); return row; }
public static NeighbourhoodProblem Deserialize(string row) { var columns = row.Split(ColumnDelimiterChar); var problem = new NeighbourhoodProblem { Registered = DateTime.FromBinary(long.Parse(columns[RegisteredColumn])), Location = new GeoLocation { Latitude = double.Parse(columns[LatitudeColumn]), Longditude = double.Parse(columns[LongditudeColumn]), Name = columns[LocationNameColumn] }, Description = columns[DescriptionColumn], Reporter = columns[ReporterColumn] }; return problem; }