private List <CanadianLocatorResult> GetInternalCanadaLocatorResults(CanadaLocatorSearchOptions searchOptions) { if (searchOptions.Latitude == (float)0.0 && searchOptions.Longitude == (float)0.0 && !string.IsNullOrEmpty(searchOptions.PostalCode)) { LocatorDAO_Canada.Instance.PopulateLatLongFromZip(searchOptions); } if (searchOptions.ResultsPerPage < 1) { searchOptions.ResultsPerPage = 20; } if (searchOptions.PageNumber < 1) { searchOptions.PageNumber = 1; } if (searchOptions.Products.Count() == 0 || string.IsNullOrEmpty(searchOptions.Products[0])) { searchOptions.Products = new string[] { "CommBatts", "CommFoam", "Batts", "Foam" }; } return(LocatorDAO_Canada.Instance.GetDealers(searchOptions).ToList()); }
public IList <CanadianLocatorResult> GetDealers(CanadaLocatorSearchOptions searchOptions) { var param = new List <object>(); param.Add(searchOptions.Latitude); param.Add(searchOptions.Longitude); param.AddRange(searchOptions.Products.ToArray()); return(GetDealers(searchOptions.Latitude, searchOptions.Longitude, searchOptions.ResultsPerPage, searchOptions.PageNumber, param.ToArray())); }
public void PopulateLatLongFromZip(CanadaLocatorSearchOptions searchOptions) { var sql = new StringBuilder(); sql.AppendLine("select Latitude, Longitude "); sql.AppendLine("FROM ZipPostalCodes DZ (NOLOCK) "); sql.AppendLine("where PostalCode = @0 "); SqlDataReaderHandler handler = delegate(SqlDataReader rdr) { Boolean isData = false; if (rdr.HasRows) { if (rdr.Read()) { searchOptions.Latitude = (rdr.IsDBNull(rdr.GetOrdinal("Latitude")) ? 0.0 : double.Parse(rdr[rdr.GetOrdinal("Latitude")].ToString())); searchOptions.Longitude = (rdr.IsDBNull(rdr.GetOrdinal("Longitude")) ? 0.0 : double.Parse(rdr[rdr.GetOrdinal("Longitude")].ToString())); } } return(isData); }; ExecuteQuery <Boolean>(LocatorDatabase.Common, handler, sql.ToString(), searchOptions.PostalCode); }
public CanadianLocatorResult[] GetCanadaLocatorResults(CanadaLocatorSearchOptions searchOptions) { return(GetInternalCanadaLocatorResults(searchOptions).ToArray()); }