private Contact LoadContact(MySqlDataReader reader) { Contact c = new Contact(); c.Id = (int)reader["id"]; c.SourceId = (int)(long)reader["sourceId"]; c.LastModified = (DateTime)reader["lastModified"]; c.StartTime = (DateTime)reader["startTime"]; c.EndTime = (DateTime)reader["endTime"]; c.Callsign = (string)reader["callsign"]; c.Station = reader["station"] as string; c.Operator = reader["operator"] as string; c.Band = BandHelper.Parse(reader["band"] as string); c.Mode = ModeHelper.Parse(reader["mode"] as string); c.Frequency = (long)reader["frequency"]; c.ReportReceived = (reader["reportRx"] as string) ?? string.Empty; c.ReportSent = (reader["reportTx"] as string) ?? string.Empty; c.Notes = (reader["notes"] as string) ?? string.Empty; int serialReceived; int serialSent; int.TryParse(reader["serialReceived"] as string, out serialReceived); int.TryParse(reader["serialSent"] as string, out serialSent); c.SerialReceived = serialReceived; c.SerialSent = serialSent; c.QslRxDate = reader.GetDateTimeNullable("qslRxDate"); c.QslTxDate = reader.GetDateTimeNullable("qslTxDate"); c.QslMethod = reader["qslMethod"] as string; c.LocationID = (int)reader["location"]; c.SatelliteName = reader.GetStringNullable("satellitename"); c.SatelliteMode = reader.GetStringNullable("satellitemode"); // Optional stuff below here... string locatorString = reader["locator"] as string; if (locatorString != null) c.LocatorReceived = new Locator(locatorString); return c; }