Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        internal void DoOneZipCode(string zipCode)
        {
            if (!SuppressUpdate && TextWriter == null)
            {
                ZipStreets.DeleteByZipCode(zipCode, 0);
            }

            using (
                var reader = ZipStreetsDownloaded.GetAnalysisDataReaderByZipCode(zipCode, 0)
                )
            {
                var first = true;

                string currentDirectionPrefix = null;
                string currentStreetName      = null;
                string currentStreetSuffix    = null;
                string currentDirectionSuffix = null;

                List <StreetAnalysisData> dataList = null;

                while (reader.Read())
                {
                    if (!StateCache.IsValidStateCode(reader.State))
                    {
                        continue;                       // skip PR etc
                    }
                    if (reader.Plus4Low.EndsWith("ND")) // no delivery
                    {
                        continue;
                    }

                    if (first)
                    {
                        AppendStatusText("{1} Beginning zipCode {0}", zipCode, RowsWritten);
                        first = false;
                    }
                    var directionPrefix = reader.DirectionPrefix;
                    var streetName      = reader.StreetName;
                    var streetSuffix    = reader.StreetSuffix;
                    var directionSuffix = reader.DirectionSuffix;
                    if (directionPrefix != currentDirectionPrefix ||
                        streetName != currentStreetName || streetSuffix != currentStreetSuffix ||
                        directionSuffix != currentDirectionSuffix)
                    {
                        if (dataList != null)
                        {
                            RowsWritten += AnalyzeStreet(dataList);
                        }
                        dataList = new List <StreetAnalysisData>();
                        currentDirectionPrefix = directionPrefix;
                        currentStreetName      = streetName;
                        currentStreetSuffix    = streetSuffix;
                        currentDirectionSuffix = directionSuffix;
                    }
                    if (dataList != null)
                    {
                        dataList.Add(new StreetAnalysisData(reader));
                    }
                }
                if (dataList != null)
                {
                    RowsWritten += AnalyzeStreet(dataList);
                }
            }
        }