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