public void Write(TextWriter writer) { if (StreetName != _MetaphoneStreet) { try { var metaphone = DoubleMetaphone.EncodePhrase(StreetName); if (metaphone.Length > ZipStreets.MetaphoneMaxLength) { metaphone = metaphone.Substring(0, ZipStreets.MetaphoneMaxLength); } _MetaphoneStreet = StreetName; _MetaphoneValue = metaphone; } // ReSharper disable once EmptyGeneralCatchClause catch (Exception /*ex*/) { } } if (writer == null) // write to database { ZipStreets.Insert(ZipCode, UpdateKey, DirectionPrefix, StreetName, StreetSuffix, DirectionSuffix, PrimaryLowNumber, PrimaryHighNumber, PrimaryOddEven, BuildingName, SecondaryType, SecondaryLowNumber, SecondaryHighNumber, SecondaryOddEven, _MetaphoneValue, State, LdsInfo.Congress, LdsInfo.StateSenate, LdsInfo.StateHouse, LdsInfo.County); } else // write to csv { var csvWriter = new SimpleCsvWriter(); csvWriter.AddField(ZipCode); csvWriter.AddField(UpdateKey); csvWriter.AddField(DirectionPrefix); csvWriter.AddField(StreetName); csvWriter.AddField(StreetSuffix); csvWriter.AddField(DirectionSuffix); csvWriter.AddField(PrimaryLowNumber); csvWriter.AddField(PrimaryHighNumber); csvWriter.AddField(PrimaryOddEven); csvWriter.AddField(BuildingName); csvWriter.AddField(SecondaryType); csvWriter.AddField(SecondaryLowNumber); csvWriter.AddField(SecondaryHighNumber); csvWriter.AddField(SecondaryOddEven); csvWriter.AddField(_MetaphoneValue); csvWriter.AddField(State); csvWriter.AddField(LdsInfo.Congress); csvWriter.AddField(LdsInfo.StateSenate); csvWriter.AddField(LdsInfo.StateHouse); csvWriter.AddField(LdsInfo.County); csvWriter.Write(writer); } }