This assignment is due today.
This project is almost completed. I just need to have a drop downlist like:
added to select a store by zip code and distance). I have already added the above listed code but I need to create a controller to pull the required information to post the nearest store locations. Again if you load the project it already pull the closet store locations but I do not have the time to learn how to create a filter to accomplish this.
There is also a problem. When I submit the request it returns 5 of the same results.
link to api – but I didn’t really use this. I just created a database file and use it to query store info.
http://code.google.com/p/remixdotnet/
bbyopen/App_Code/.DS_Store
bbyopen/App_Code/VBCode/GoogleMapsAPIHelpers.vb
Imports Microsoft.VisualBasic
Imports System.Xml.Linq
Public Class GoogleMapsAPIHelpers
Public Shared Function GetGeocodingSearchResults(ByVal address As String) As XElement
‘Use the Google Geocoding service to get information about the user-entered address
‘See http://code.google.com/apis/maps/documentation/geocoding/index.html for more info…
Dim url = String.Format(“http://maps.google.com/maps/api/geocode/xml?address={0}&sensor=false”, HttpContext.Current.Server.UrlEncode(address))
‘Load the XML into an XElement object (whee, LINQ to XML!)
Dim results = XElement.Load(url)
‘Check the status
Dim status = results.Element(“status”).Value
If status <> “OK” AndAlso status <> “ZERO_RESULTS” Then
‘Whoops, something else was wrong with the request…
Throw New ApplicationException(“There was an error with Google’s Geocoding Service: ” & status)
End If
Return results
End Function
End Class
bbyopen/App_Data/StoreLocations.mdf
bbyopen/App_Data/StoreLocations_log.LDF
bbyopen/Bin/Microsoft.Web.GeneratedImage.dll
bbyopen/Default.aspx
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
Welcome!
This demo shows how to use the Google Maps API to build a simple store locator
web application.
This demo site is powered by the StoreLocations.mdf
database in the App_Data
folder, which contains a single
table, Stores
. This table has one record for each store, specifying the StoreId, address, city, , zip code, phone, hours,
and latitude and longitude coordinates. From the Find a Store page you can search this
database by entering the ZIP code.
Give it a try!
Best Buy Headquarters
bbyopen/Default.aspx.vb
Partial Class _Default
Inherits System.Web.UI.Page
End Class
bbyopen/FindAStore.aspx
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="FindAStore.aspx.vb" Inherits="FindAStore" %>
Find a Store Near You!
Enter your address, city, or postal code to find stores near you!
Enter Zip Code:
Select Your Distance Radius:
<%# Eval("City")%>, <%# Eval("postalCode")%>
<%# Eval("phone")%> <%# Eval("hours")%>
bbyopen/ShowStoreLocations.aspx.vb
Imports System.Collections.Generic
Imports System.Data
Partial Class ShowStoreLocations
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim address = Request.QueryString(“Address”)
If String.IsNullOrEmpty(address) Then
Response.Redirect(“FindAStore.aspx”)
End If
‘Get the lat/long info about the address
Dim results = GoogleMapsAPIHelpers.GetGeocodingSearchResults(address)
lblAddress.Text = address
‘Set the latitude and longtitude parameters based on the address being searched on
Dim lat = results.Element(“result”).Element(“geometry”).Element(“location”).Element(“lat”).Value
Dim lng = results.Element(“result”).Element(“geometry”).Element(“location”).Element(“lng”).Value
dsSearchResults.SelectParameters(“lat”).DefaultValue = lat
dsSearchResults.SelectParameters(“lng”).DefaultValue = lng
lvSearchResults.DataBind()
‘Loop through each nearby location and build up the JavaScript to place the markers
Dim locations As New List(Of String)
Dim overlayContents As New List(Of String)
Dim nearbyLocations = CType(dsSearchResults.Select(DataSourceSelectArguments.Empty), DataView)
Dim count = 1
For Each location As DataRowView In nearbyLocations
locations.Add(String.Format(“{{ title: “”Store #{0}””, position: new google.maps.LatLng({1}, {2}), icon: “”Images/NumberToImageHandler.ashx?number={3}”” }}”, location(“StoreId”), location(“lat”), location(“lng”), count))
overlayContents.Add(String.Format(“{{ content: “”
{1}
{2}, {3} {4}
“” }}”, location(“StoreId”), location(“Address”), location(“City”), location(“postalCode”), location(“phone”)))
count += 1
Next
Dim locationsJson = “[” & String.Join(“,”, locations.ToArray()) & “]”
Dim overlayContentsJson = “[” & String.Join(“,”, overlayContents.ToArray()) & “]”
‘ Inject the Google Maps script
ClientScript.RegisterStartupScript(Me.GetType(), “Google Maps Initialization”, _
String.Format(“init_map(‘map_canvas’, {0}, {1}, 13, {2}, {3});”, lat, lng, locationsJson, overlayContentsJson), True)
End If
End Sub
End Class
bbyopen/Site.master
Unit 4 Assignment 1 Best Buy Store Locator
Alex Benavides
Home
Find a Store
ASP.NET application designed by Alex Benavides.
IT4795 Unit 4 Assignment 1
bbyopen/Site.master.vb
Partial Class Site
Inherits System.Web.UI.MasterPage
End Class
bbyopen/Styles/CustomStyles.css
.skm_BookReviewContainer
{
text-align: center;
}
.skm_BookReview
{
}
.skm_BookReviewByline
{
font-size: 85%;
}
.skm_EditRow
{
background-color: #DDD;
}
.skm_RowLabel
{
font-weight: bold;
text-align: right;
}
pre b
{
color: Red;
}
table.searchResults {
width: 95%;
border: 1px solid black;
}
table.searchResults th {
background-color: #fee;
}
#noResults {
padding-left: 25px;
color: Red;
}
.map-area {
width: 95%;
height: 400px;
margin-bottom: 15px;
border: solid 1px #333;
}
.infoWindow {
line-height: normal;
}
bbyopen/Styles/LICENCE.txt
**************************************************************************
* *
* The Sinorcaish Stylesheet *
* Copyright (C) 2004-07, John Zaitseff *
* *
**************************************************************************
You may freely redistribute and/or modify the Sinorcaish stylesheet files
“sinorcaish-screen.css” and “sinorcaish-print.css” on the condition that
the original copyright notice is preserved. The same condition applies to
the overview document “index.html”, to the sample document “sample.html”
and to the logo image instructions “logo.html”. You may redistribute and/
or modify the template file “template.html” without ANY such restriction.
You may freely redistribute unmodified versions of the complete Sinorcaish
stylesheet archives.
These conditions may be waived; write to John Zaitseff for details:
Postal: John Zaitseff,
The ZAP Group,
Unit 6, 116 Woodburn Road,
Berala, NSW, 2141,
Australia
E-mail: J.Zaitseff@zap.org.au
bbyopen/Styles/sinorcaish-screen.css
/************************************************************************
* *
* Sinorcaish Screen-based Style Sheet *
* Copyright (C) 2004-07, John Zaitseff *
* *
************************************************************************/
/* Author: John Zaitseff
Version: 1.3
$Id: sinorcaish-screen.css 189 2007-03-22 01:35:44Z john $
This file provides the Sinorcaish style sheet for screen-based user
agents (ie, for ordinary Web browsers). This file conforms to the
Cascading Style Sheets 2.1 specification.
The design of Sinorcaish is influenced by Sinorca (available from the
Open Source Web Design site, http://www.oswd.org/), which in turn was
based on the Acronis company web site (http://www.acronis.com/). You
can find more information about this design from its home page on the
ZAP Group web site, http://www.zap.org.au/documents/styles/sinorcaish/.
This file may be redistributed and/or modified on the condition that
the original copyright notice is retained.
*/
/********** Global Styles **********/
/* The global font size is set to 90% as */
/* most browsers’ normal font size is too */
/* large, at least when using Verdana */
body {
font-family: Verdana, “DejaVu Sans”, “Bitstream Vera Sans”, “Lucida Sans”, Arial, Helvetica, sans-serif;
font-size: 90%; /* Allow IE/Win to resize the document */
color: black;
background: White;
margin: 0;
padding: 0;
border: none;
}
.hidden { /* Used for content that should be displayed */
/* by non-stylesheet-aware browsers */
display: none !important;
}
.notprinted { /* Used for content that should not be */
} /* printed to paper */
/* Headings */
h1, /* Headings (H1-H6) should only be used in */
h2, /* the main content area */
h3 {
font-weight: bold;
text-align: left;
margin: 0.5em 0 0 0;
padding: 0;
}
h4,
h5,
h6 {
font-weight: bold;
text-align: left;
margin: 1.25em 0 0 0;
padding: 0;
}
h1 { font-size: 175% }
h2 { font-size: 145% }
h3 { font-size: 120% }
h4 { font-size: 105% }
h5 { font-size: 80% }
h6 { font-size: 65% }
/* Anchors */
a:link {
text-decoration: none;
color: #0066CC;
background: transparent;
}
a:visited {
text-decoration: none;
color: #003399;
background: transparent;
}
a:hover,
a:active {
text-decoration: underline;
}
/* Inline elements and classes */
/* This style sheet assumes B, BIG, EM, I, */
/* SMALL, STRONG, SUB and SUP are defined */
/* by the browser as per the HTML4 sample */
/* style sheet. */
code,
kbd,
samp,
tt {
font-family: “Courier New”, Courier, monospace;
font-size: 115%; /* Courier tends to be a little too small */
line-height: 1.0; /* Otherwise lines tend to spread out */
}
kbd,
code.markup, /* HTML/CSS markup */
span.markup, /* Alternative form for HTML/CSS markup */
.title { /* Title in floating boxes / left sidebar */
font-weight: bolder;
}
abbr,
acronym {
font: inherit; /* Don’t use small-caps, etc. */
}
.tooltip {
cursor: help;
border-bottom: 1px dotted #CCCCCC;
}
abbr[title],
acronym[title] {
cursor: help;
border-bottom: 1px dotted #CCCCCC;
}
cite,
dfn,
var,
.fn, /* Filename */
.url, /* Uniform Resource Locator */
.email { /* E-mail address */
font-style: italic;
}
.program, /* Command-line name of a computer program */
.window, /* Window or dialog box name */
.menu, /* Menu item in a computer program */
.gui, /* Generic GUI element in a computer program */
.key { /* Keypress in a computer program */
font-weight: bolder;
}
.clearboxes { /* Clear navboxes and floatboxes */
clear: right;
}
.unicode {
font-family: “Arial Unicode MS”, “Lucida Sans Unicode”, Verdana, “DejaVu Sans”, “Bitstream Vera Sans”, “Lucida Sans”, Arial, Helvetica, sans-serif;
}
/* Block-inline elements and classes */
img {
vertical-align: baseline;
margin: 0;
padding: 0;
border: none;
}
img.icon16 { /* For 16×16 file-type icons */
vertical-align: -2px;
}
del,
del * { /* Required for Mozilla */
text-decoration: line-through;
}
ins,
ins * { /* Required for Mozilla */
text-decoration: underline;
}
.floatleft { /* Left-floating images and spans */
margin: 0.5em 1.5em 0.5em 0;
float: left;
}
.floatright { /* Right-floating images and spans */
margin: 0.5em 0 0.5em 1.5em;
float: right;
}
.nowrap {
white-space: nowrap;
}
/* Block elements */
p {
margin: 1em 0;
padding: 0;
}
blockquote { /* Should only be used in main content area, */
/* floating boxes or left sidebar. */
margin: 1em 2.5em;
padding: 0;
}
pre { /* Should only be used in main content area */
/* and floating boxes. */
font-family: “Courier New”, Courier, monospace;
font-size: 95%; /* Courier tends to be a little too small */
line-height: 1.2;
margin: 1em 2.5em;
padding: 0;
}
pre code,
pre kbd,
pre samp,
pre tt {
font-size: 100%; /* PRE is already enlarged above */
line-height: 1.2; /* Use same value as for PRE above */
}
hr {
color: #999999;
background: transparent;
height: 1px; /* Required for IE/Win */
margin: 0;
padding: 0;
border-color: #999999;
border-width: 1px;
border-style: none none solid none;
}
hr.lighter { /* Warning: not printed out on paper */
color: #F0F0F0;
background: transparent;
border-color: #F0F0F0;
}
/* Lists */
ol {
list-style: decimal outside;
margin: 1em 0;
padding: 0 0 0 2.5em;
}
ol.alpha {
list-style-type: lower-alpha;
}
ol.number {
list-style-type: decimal;
}
ul {
list-style: square outside;
margin: 1em 0;
padding: 0 0 0 2.5em;
}
ol ol,
ol ul,
ul ol,
ul ul {
margin-top: 0;
margin-bottom: 0;
}
ol ul, /* Override possible browser styles */
ol ol ul,
ol ul ul,
ul ul,
ul ol ul,
ul ul ul {
list-style: square outside;
}
li {
margin: 0;
padding: 0;
}
dl {
margin: 1em 0;
padding: 0;
}
dt {
font: inherit; /* Don’t make the text bold by default */
margin: 1em 0 0.25em 0;
padding: 0;
}
dd {
margin: 0 0 1em 2.5em;
padding: 0;
}
/* Tables */
/* Tables should never be used for visual */
/* formatting: that is the role of CSS! */
table.simple {
color: inherit;
background: inherit; /* Don’t make tables transparent */
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
margin: 0.5em 2.5em;
padding: 0;
border: 1px solid #999999;
}
table.simple caption {
text-align: center;
caption-side: top;
margin: 0 2.5em 0.75em;
padding: 0;
border: none;
}
table.simple td,
table.simple th {
text-align: center;
vertical-align: middle;
margin: 0;
padding: 0.25em 0.5em;
border: 1px solid #999999;
}
table.simple th,
table.simple td.highlight,
table.simple th.highlight {
font-weight: bold;
color: inherit;
background: #F0F0F0;
}
table.simple td.lighter,
table.simple th.lighter {
color: inherit;
background: #F8F8F8;
}
table.simple td.left,
table.simple th.left {
text-align: left;
}
table.simple td.center,
table.simple th.center {
text-align: center;
}
table.simple td.right,
table.simple th.right {
text-align: right;
}
/* Forms */
form {
margin: 1em 0;
padding: 0;
border: none;
}
input,
button,
select,
fieldset,
legend {
font-family: Verdana, “DejaVu Sans”, “Bitstream Vera Sans”, “Lucida Sans”, Arial, Helvetica, sans-serif;
font-size: 95%;
color: black;
background: inherit;
vertical-align: middle;
}
textarea {
font-family: “Courier New”, Courier, monospace;
font-size: 100%;
color: black;
background: inherit;
vertical-align: middle;
}
fieldset {
font-size: 100%;
margin: 1em 0;
border: 1px solid #999999;
}
legend {
font-size: 100%;
margin: 0 0.5em;
padding: 0 0.25em;
border: none;
}
table.formtable {
color: inherit;
background: inherit;
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
margin: 0;
padding: 0;
border: none;
}
table.formtable td,
table.formtable th {
text-align: justify;
vertical-align: middle;
margin: 0;
padding: 0.25em 0.5em;
border: none;
}
table.formtable th {
text-align: center;
font-weight: bold;
}
table.formtable td.label,
table.formtable th.label {
text-align: right;
vertical-align: top;
}
table.formtable td.vertspace,
table.formtable th.vertspace {
empty-cells: show;
margin: 0;
padding: 0.5em 0;
height: 1em; /* Required for IE/Win */
}
table.formtable fieldset {
margin: 0;
}
table.formtable fieldset td,
table.formtable fieldset th {
margin: 0.25em 0.5em;
}
.reqfield {
color: red;
background: transparent;
font-weight: bolder;
}
.info {
color: gray;
background: transparent;
font-size: 90%;
}
/* The following HTML elements should NOT be used in documents using this
style sheet:
address – use the #footer style instead
q – use “ and ” instead
*/
/********** Styles for Main Content **********/
#main {
text-align: justify;
line-height: 1.5;
color: black;
background: white;
margin: 0 0 0 12.5em;
padding: 0.1em 1.5em 0.5em 1em;
border-left: 1px solid #999999;
}
#main h1 { /* Should be used once, following navhead */
color: #999999;
background: transparent;
margin: 0 0 0.5em 0;
}
#main .highlight { /* Highlight box (for warnings, etc) */
color: inherit;
background: #F0F0F0;
margin: 1em 0;
padding: 1em 2.5em;
border: 1px solid #999999;
}
#main .totop { /* For “Top ^” lines in FAQs, etc */
font-size: 90%;
text-align: right;
margin: -0.75em 0 1em 0;
padding: 0 0 0.25em 0;
border-bottom: 1px solid #F0F0F0;
}
#main table.simple td.highlight, /* Else “#main .highlight” will override */
#main table.simple th.highlight {
margin: 0;
padding: 0.25em 0.5em;
}
/* Other styles related to the main content */
#mainlink { /* “Skip to main content” link */
display: none !important;
}
#navhead { /* “Path to this page” information */
/* Warning: not printed out on paper */
font-size: 90%;
}
#navhead hr {
display: none;
}
#endmain {
visibility: hidden;
clear: both; /* Doesn’t always work under IE/Win */
}
/********** Styles for Floating Boxes **********/
/* “navbox” is used to provide intra/inter- */
/* page links; it is NOT printed out on */
/* paper. “floatbox” is used to provide */
/* floating boxes that may appear anywhere */
/* in the main content; they ARE printed. */
.floatbox,
.navbox {
overflow: visible;
font-size: 95%;
line-height: 1.25;
margin: 0 0 0.75em 1.5em;
padding: 0.5em 1em;
border: 1px solid #999999;
float: right;
clear: right;
}
.floatbox {
color: black;
background: #F0F0F0;
width: 35%;
}
.navbox {
text-align: left;
color: black;
background: white;
width: 12.5em;
}
.floatbox hr, /* Used for non-stylesheet-aware browsers */
.navbox hr {
display: none !important;
}
.floatbox p,
.navbox p {
margin: 0.75em 0;
padding: 0;
}
.floatbox ol,
.floatbox ul {
margin: 0.75em 0;
padding: 0 0 0 1.5em;
}
.navbox ol,
.navbox ul {
margin: 0.5em 0;
padding: 0 0 0 1.5em;
}
.floatbox blockquote {
margin: 0.75em 1.5em;
padding: 0;
}
.floatbox pre {
font-size: 95%;
margin: 0.75em 1.5em;
padding: 0;
}
.floatbox dt {
margin: 0.75em 0;
padding: 0;
}
.floatbox dt {
margin: 0.75em 0 0.25em 0;
padding: 0;
}
.floatbox dd {
margin: 0 0 0.75em 1.5em;
padding: 0;
}
#main .floatbox .highlight {
color: inherit;
background: white;
margin: 0.75em 0;
padding: 0.75em 1.5em;
}
#main .floatbox table.simple {
margin: 0.75em 0;
}
#main .floatbox table.simple th,
#main .floatbox table.simple td.highlight,
#main .floatbox table.simple th.highlight {
color: inherit;
background: white;
margin: 0;
padding: 0.25em 0.5em;
}
/********** Styles for Header **********/
/* In this style sheet, headers are composed */
/* of three parts: left, right and subheader */
/* Left part is ideally an image. */
#header { /* Warning: not printed out on paper */
color: #003399;
background: #8CA8E6;
}
#header a:link,
#header a:visited {
color: #003399;
background: transparent;
}
#header .highlight,
#header a.highlight:link,
#header a.highlight:visited {
color: white;
background: transparent;
}
/* Left part of header (ideally an image but may be a link) */
#header div.left {
float: left;
clear: left;
margin: 0;
padding: 0;
}
#header div.left img {
display: block; /* Otherwise IMG is an inline, causing gaps */
}
#header div.left,
#header div.left a:link,
#header div.left a:visited {
font-size: 200%;
font-weight: bold;
text-decoration: none;
color: white;
background: transparent;
}
#header div.left p {
margin: 0 0 0 0.25em;
padding: 0;
}
#header div.left .alt {
color: #FF9800;
background: transparent;
}
/* Right part of header is for external/global links, search, etc */
#header div.right {
font-size: 90%;
text-align: right;
margin: 0;
padding: 0.5em 1.17em 0 1em;
float: right;
clear: right;
}
#header div.right a:link,
#header div.right a:visited {
margin: 0;
padding: 0 0.5em;
}
#header div.right form {
margin: 0;
padding: 0.25em 0.5em 0 0;
}
#header div.right form input {
font-size: 95%;
vertical-align: middle;
}
/* Subheader for global links */
#header div.subheader {
color: white;
background: #003399;
margin: 0;
padding: 0;
border: 1px solid #003399; /* Required for IE/Win */
clear: both;
}
#header div.subheader p { /* To overcome an IE/Win unwanted padding */
/* bug, still present in IE7. */
margin: 0;
padding: 0.5em;
}
#header div.subheader a:link,
#header div.subheader a:visited {
font-weight: bolder;
color: white;
background: transparent;
margin: 0;
padding: 0 0.5em;
}
#header div.subheader .highlight,
#header div.subheader a.highlight:link,
#header div.subheader a.highlight:visited {
color: #FDA05E;
background: transparent;
}
/********** Styles for Left Sidebar **********/
#sidebar { /* Warning: not printed out on paper */
width: 12.5em;
border-right: 1px solid #999999;
float: left;
background-color:#F0F0F0;
clear: both;
}
#sidebar div {
font-size: 95%;
margin: 0;
padding: 0.25em 0.25em;
}
#sidebar div.lighter {
color: inherit;
background: white;
}
#sidebar p {
margin: 0.5em 0;
}
#sidebar .title a:link,
#sidebar .title a:visited {
color: black;
background: transparent;
}
#sidebar ul {
list-style: none outside;
margin: 0.5em 0;
padding: 0;
}
#sidebar ul li {
margin: 0;
padding: 0.125em 0;
}
#sidebar ul li.highlight {
color: inherit;
background: white;
margin-left: -1em;
margin-right: -1em;
padding-left: 1em;
border-top: 1px solid #999999;
border-bottom: 1px solid #999999;
}
#sidebar ul li.highlight a:link,
#sidebar ul li.highlight a:visited {
color: black;
background: transparent;
}
/********** Styles for Footer **********/
#footer {
font-size: 90%;
text-align: left;
color: white;
background: #6381DC;
margin: 0;
padding: 0.5em 1.67em 0.5em 15.25em;
clear: both;
}
#footer a:link,
#footer a:visited {
text-decoration: underline;
color: white;
background: transparent;
}
#footer hr {
display: none !important;
}
/* End of the Sinorcaish style sheet */
bbyopen/web.config
bbyopen/App_Code/.DS_Store
bbyopen/App_Code/VBCode/GoogleMapsAPIHelpers.vb
Imports Microsoft.VisualBasic
Imports System.Xml.Linq
Public Class GoogleMapsAPIHelpers
Public Shared Function GetGeocodingSearchResults(ByVal address As String) As XElement
‘Use the Google Geocoding service to get information about the user-entered address
‘See http://code.google.com/apis/maps/documentation/geocoding/index.html for more info…
Dim url = String.Format(“http://maps.google.com/maps/api/geocode/xml?address={0}&sensor=false”, HttpContext.Current.Server.UrlEncode(address))
‘Load the XML into an XElement object (whee, LINQ to XML!)
Dim results = XElement.Load(url)
‘Check the status
Dim status = results.Element(“status”).Value
If status <> “OK” AndAlso status <> “ZERO_RESULTS” Then
‘Whoops, something else was wrong with the request…
Throw New ApplicationException(“There was an error with Google’s Geocoding Service: ” & status)
End If
Return results
End Function
End Class
bbyopen/App_Data/StoreLocations.mdf
bbyopen/App_Data/StoreLocations_log.LDF
bbyopen/Bin/Microsoft.Web.GeneratedImage.dll
bbyopen/Default.aspx
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
Welcome!
This demo shows how to use the Google Maps API to build a simple store locator
web application.
This demo site is powered by the StoreLocations.mdf
database in the App_Data
folder, which contains a single
table, Stores
. This table has one record for each store, specifying the StoreId, address, city, , zip code, phone, hours,
and latitude and longitude coordinates. From the Find a Store page you can search this
database by entering the ZIP code.
Give it a try!
Best Buy Headquarters
bbyopen/Default.aspx.vb
Partial Class _Default
Inherits System.Web.UI.Page
End Class
bbyopen/FindAStore.aspx
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="FindAStore.aspx.vb" Inherits="FindAStore" %>
Find a Store Near You!
Enter your address, city, or postal code to find stores near you!
Enter Zip Code:
Select Your Distance Radius:
<%# Eval("City")%>, <%# Eval("postalCode")%>
<%# Eval("phone")%> <%# Eval("hours")%>
bbyopen/ShowStoreLocations.aspx.vb
Imports System.Collections.Generic
Imports System.Data
Partial Class ShowStoreLocations
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim address = Request.QueryString(“Address”)
If String.IsNullOrEmpty(address) Then
Response.Redirect(“FindAStore.aspx”)
End If
‘Get the lat/long info about the address
Dim results = GoogleMapsAPIHelpers.GetGeocodingSearchResults(address)
lblAddress.Text = address
‘Set the latitude and longtitude parameters based on the address being searched on
Dim lat = results.Element(“result”).Element(“geometry”).Element(“location”).Element(“lat”).Value
Dim lng = results.Element(“result”).Element(“geometry”).Element(“location”).Element(“lng”).Value
dsSearchResults.SelectParameters(“lat”).DefaultValue = lat
dsSearchResults.SelectParameters(“lng”).DefaultValue = lng
lvSearchResults.DataBind()
‘Loop through each nearby location and build up the JavaScript to place the markers
Dim locations As New List(Of String)
Dim overlayContents As New List(Of String)
Dim nearbyLocations = CType(dsSearchResults.Select(DataSourceSelectArguments.Empty), DataView)
Dim count = 1
For Each location As DataRowView In nearbyLocations
locations.Add(String.Format(“{{ title: “”Store #{0}””, position: new google.maps.LatLng({1}, {2}), icon: “”Images/NumberToImageHandler.ashx?number={3}”” }}”, location(“StoreId”), location(“lat”), location(“lng”), count))
overlayContents.Add(String.Format(“{{ content: “”
{1}
{2}, {3} {4}
“” }}”, location(“StoreId”), location(“Address”), location(“City”), location(“postalCode”), location(“phone”)))
count += 1
Next
Dim locationsJson = “[” & String.Join(“,”, locations.ToArray()) & “]”
Dim overlayContentsJson = “[” & String.Join(“,”, overlayContents.ToArray()) & “]”
‘ Inject the Google Maps script
ClientScript.RegisterStartupScript(Me.GetType(), “Google Maps Initialization”, _
String.Format(“init_map(‘map_canvas’, {0}, {1}, 13, {2}, {3});”, lat, lng, locationsJson, overlayContentsJson), True)
End If
End Sub
End Class
bbyopen/Site.master
Unit 4 Assignment 1 Best Buy Store Locator
Alex Benavides
Home
Find a Store
ASP.NET application designed by Alex Benavides.
IT4795 Unit 4 Assignment 1
bbyopen/Site.master.vb
Partial Class Site
Inherits System.Web.UI.MasterPage
End Class
bbyopen/Styles/CustomStyles.css
.skm_BookReviewContainer
{
text-align: center;
}
.skm_BookReview
{
}
.skm_BookReviewByline
{
font-size: 85%;
}
.skm_EditRow
{
background-color: #DDD;
}
.skm_RowLabel
{
font-weight: bold;
text-align: right;
}
pre b
{
color: Red;
}
table.searchResults {
width: 95%;
border: 1px solid black;
}
table.searchResults th {
background-color: #fee;
}
#noResults {
padding-left: 25px;
color: Red;
}
.map-area {
width: 95%;
height: 400px;
margin-bottom: 15px;
border: solid 1px #333;
}
.infoWindow {
line-height: normal;
}
bbyopen/Styles/LICENCE.txt
**************************************************************************
* *
* The Sinorcaish Stylesheet *
* Copyright (C) 2004-07, John Zaitseff *
* *
**************************************************************************
You may freely redistribute and/or modify the Sinorcaish stylesheet files
“sinorcaish-screen.css” and “sinorcaish-print.css” on the condition that
the original copyright notice is preserved. The same condition applies to
the overview document “index.html”, to the sample document “sample.html”
and to the logo image instructions “logo.html”. You may redistribute and/
or modify the template file “template.html” without ANY such restriction.
You may freely redistribute unmodified versions of the complete Sinorcaish
stylesheet archives.
These conditions may be waived; write to John Zaitseff for details:
Postal: John Zaitseff,
The ZAP Group,
Unit 6, 116 Woodburn Road,
Berala, NSW, 2141,
Australia
E-mail: J.Zaitseff@zap.org.au
bbyopen/Styles/sinorcaish-screen.css
/************************************************************************
* *
* Sinorcaish Screen-based Style Sheet *
* Copyright (C) 2004-07, John Zaitseff *
* *
************************************************************************/
/* Author: John Zaitseff
Version: 1.3
$Id: sinorcaish-screen.css 189 2007-03-22 01:35:44Z john $
This file provides the Sinorcaish style sheet for screen-based user
agents (ie, for ordinary Web browsers). This file conforms to the
Cascading Style Sheets 2.1 specification.
The design of Sinorcaish is influenced by Sinorca (available from the
Open Source Web Design site, http://www.oswd.org/), which in turn was
based on the Acronis company web site (http://www.acronis.com/). You
can find more information about this design from its home page on the
ZAP Group web site, http://www.zap.org.au/documents/styles/sinorcaish/.
This file may be redistributed and/or modified on the condition that
the original copyright notice is retained.
*/
/********** Global Styles **********/
/* The global font size is set to 90% as */
/* most browsers’ normal font size is too */
/* large, at least when using Verdana */
body {
font-family: Verdana, “DejaVu Sans”, “Bitstream Vera Sans”, “Lucida Sans”, Arial, Helvetica, sans-serif;
font-size: 90%; /* Allow IE/Win to resize the document */
color: black;
background: White;
margin: 0;
padding: 0;
border: none;
}
.hidden { /* Used for content that should be displayed */
/* by non-stylesheet-aware browsers */
display: none !important;
}
.notprinted { /* Used for content that should not be */
} /* printed to paper */
/* Headings */
h1, /* Headings (H1-H6) should only be used in */
h2, /* the main content area */
h3 {
font-weight: bold;
text-align: left;
margin: 0.5em 0 0 0;
padding: 0;
}
h4,
h5,
h6 {
font-weight: bold;
text-align: left;
margin: 1.25em 0 0 0;
padding: 0;
}
h1 { font-size: 175% }
h2 { font-size: 145% }
h3 { font-size: 120% }
h4 { font-size: 105% }
h5 { font-size: 80% }
h6 { font-size: 65% }
/* Anchors */
a:link {
text-decoration: none;
color: #0066CC;
background: transparent;
}
a:visited {
text-decoration: none;
color: #003399;
background: transparent;
}
a:hover,
a:active {
text-decoration: underline;
}
/* Inline elements and classes */
/* This style sheet assumes B, BIG, EM, I, */
/* SMALL, STRONG, SUB and SUP are defined */
/* by the browser as per the HTML4 sample */
/* style sheet. */
code,
kbd,
samp,
tt {
font-family: “Courier New”, Courier, monospace;
font-size: 115%; /* Courier tends to be a little too small */
line-height: 1.0; /* Otherwise lines tend to spread out */
}
kbd,
code.markup, /* HTML/CSS markup */
span.markup, /* Alternative form for HTML/CSS markup */
.title { /* Title in floating boxes / left sidebar */
font-weight: bolder;
}
abbr,
acronym {
font: inherit; /* Don’t use small-caps, etc. */
}
.tooltip {
cursor: help;
border-bottom: 1px dotted #CCCCCC;
}
abbr[title],
acronym[title] {
cursor: help;
border-bottom: 1px dotted #CCCCCC;
}
cite,
dfn,
var,
.fn, /* Filename */
.url, /* Uniform Resource Locator */
.email { /* E-mail address */
font-style: italic;
}
.program, /* Command-line name of a computer program */
.window, /* Window or dialog box name */
.menu, /* Menu item in a computer program */
.gui, /* Generic GUI element in a computer program */
.key { /* Keypress in a computer program */
font-weight: bolder;
}
.clearboxes { /* Clear navboxes and floatboxes */
clear: right;
}
.unicode {
font-family: “Arial Unicode MS”, “Lucida Sans Unicode”, Verdana, “DejaVu Sans”, “Bitstream Vera Sans”, “Lucida Sans”, Arial, Helvetica, sans-serif;
}
/* Block-inline elements and classes */
img {
vertical-align: baseline;
margin: 0;
padding: 0;
border: none;
}
img.icon16 { /* For 16×16 file-type icons */
vertical-align: -2px;
}
del,
del * { /* Required for Mozilla */
text-decoration: line-through;
}
ins,
ins * { /* Required for Mozilla */
text-decoration: underline;
}
.floatleft { /* Left-floating images and spans */
margin: 0.5em 1.5em 0.5em 0;
float: left;
}
.floatright { /* Right-floating images and spans */
margin: 0.5em 0 0.5em 1.5em;
float: right;
}
.nowrap {
white-space: nowrap;
}
/* Block elements */
p {
margin: 1em 0;
padding: 0;
}
blockquote { /* Should only be used in main content area, */
/* floating boxes or left sidebar. */
margin: 1em 2.5em;
padding: 0;
}
pre { /* Should only be used in main content area */
/* and floating boxes. */
font-family: “Courier New”, Courier, monospace;
font-size: 95%; /* Courier tends to be a little too small */
line-height: 1.2;
margin: 1em 2.5em;
padding: 0;
}
pre code,
pre kbd,
pre samp,
pre tt {
font-size: 100%; /* PRE is already enlarged above */
line-height: 1.2; /* Use same value as for PRE above */
}
hr {
color: #999999;
background: transparent;
height: 1px; /* Required for IE/Win */
margin: 0;
padding: 0;
border-color: #999999;
border-width: 1px;
border-style: none none solid none;
}
hr.lighter { /* Warning: not printed out on paper */
color: #F0F0F0;
background: transparent;
border-color: #F0F0F0;
}
/* Lists */
ol {
list-style: decimal outside;
margin: 1em 0;
padding: 0 0 0 2.5em;
}
ol.alpha {
list-style-type: lower-alpha;
}
ol.number {
list-style-type: decimal;
}
ul {
list-style: square outside;
margin: 1em 0;
padding: 0 0 0 2.5em;
}
ol ol,
ol ul,
ul ol,
ul ul {
margin-top: 0;
margin-bottom: 0;
}
ol ul, /* Override possible browser styles */
ol ol ul,
ol ul ul,
ul ul,
ul ol ul,
ul ul ul {
list-style: square outside;
}
li {
margin: 0;
padding: 0;
}
dl {
margin: 1em 0;
padding: 0;
}
dt {
font: inherit; /* Don’t make the text bold by default */
margin: 1em 0 0.25em 0;
padding: 0;
}
dd {
margin: 0 0 1em 2.5em;
padding: 0;
}
/* Tables */
/* Tables should never be used for visual */
/* formatting: that is the role of CSS! */
table.simple {
color: inherit;
background: inherit; /* Don’t make tables transparent */
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
margin: 0.5em 2.5em;
padding: 0;
border: 1px solid #999999;
}
table.simple caption {
text-align: center;
caption-side: top;
margin: 0 2.5em 0.75em;
padding: 0;
border: none;
}
table.simple td,
table.simple th {
text-align: center;
vertical-align: middle;
margin: 0;
padding: 0.25em 0.5em;
border: 1px solid #999999;
}
table.simple th,
table.simple td.highlight,
table.simple th.highlight {
font-weight: bold;
color: inherit;
background: #F0F0F0;
}
table.simple td.lighter,
table.simple th.lighter {
color: inherit;
background: #F8F8F8;
}
table.simple td.left,
table.simple th.left {
text-align: left;
}
table.simple td.center,
table.simple th.center {
text-align: center;
}
table.simple td.right,
table.simple th.right {
text-align: right;
}
/* Forms */
form {
margin: 1em 0;
padding: 0;
border: none;
}
input,
button,
select,
fieldset,
legend {
font-family: Verdana, “DejaVu Sans”, “Bitstream Vera Sans”, “Lucida Sans”, Arial, Helvetica, sans-serif;
font-size: 95%;
color: black;
background: inherit;
vertical-align: middle;
}
textarea {
font-family: “Courier New”, Courier, monospace;
font-size: 100%;
color: black;
background: inherit;
vertical-align: middle;
}
fieldset {
font-size: 100%;
margin: 1em 0;
border: 1px solid #999999;
}
legend {
font-size: 100%;
margin: 0 0.5em;
padding: 0 0.25em;
border: none;
}
table.formtable {
color: inherit;
background: inherit;
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
margin: 0;
padding: 0;
border: none;
}
table.formtable td,
table.formtable th {
text-align: justify;
vertical-align: middle;
margin: 0;
padding: 0.25em 0.5em;
border: none;
}
table.formtable th {
text-align: center;
font-weight: bold;
}
table.formtable td.label,
table.formtable th.label {
text-align: right;
vertical-align: top;
}
table.formtable td.vertspace,
table.formtable th.vertspace {
empty-cells: show;
margin: 0;
padding: 0.5em 0;
height: 1em; /* Required for IE/Win */
}
table.formtable fieldset {
margin: 0;
}
table.formtable fieldset td,
table.formtable fieldset th {
margin: 0.25em 0.5em;
}
.reqfield {
color: red;
background: transparent;
font-weight: bolder;
}
.info {
color: gray;
background: transparent;
font-size: 90%;
}
/* The following HTML elements should NOT be used in documents using this
style sheet:
address – use the #footer style instead
q – use “ and ” instead
*/
/********** Styles for Main Content **********/
#main {
text-align: justify;
line-height: 1.5;
color: black;
background: white;
margin: 0 0 0 12.5em;
padding: 0.1em 1.5em 0.5em 1em;
border-left: 1px solid #999999;
}
#main h1 { /* Should be used once, following navhead */
color: #999999;
background: transparent;
margin: 0 0 0.5em 0;
}
#main .highlight { /* Highlight box (for warnings, etc) */
color: inherit;
background: #F0F0F0;
margin: 1em 0;
padding: 1em 2.5em;
border: 1px solid #999999;
}
#main .totop { /* For “Top ^” lines in FAQs, etc */
font-size: 90%;
text-align: right;
margin: -0.75em 0 1em 0;
padding: 0 0 0.25em 0;
border-bottom: 1px solid #F0F0F0;
}
#main table.simple td.highlight, /* Else “#main .highlight” will override */
#main table.simple th.highlight {
margin: 0;
padding: 0.25em 0.5em;
}
/* Other styles related to the main content */
#mainlink { /* “Skip to main content” link */
display: none !important;
}
#navhead { /* “Path to this page” information */
/* Warning: not printed out on paper */
font-size: 90%;
}
#navhead hr {
display: none;
}
#endmain {
visibility: hidden;
clear: both; /* Doesn’t always work under IE/Win */
}
/********** Styles for Floating Boxes **********/
/* “navbox” is used to provide intra/inter- */
/* page links; it is NOT printed out on */
/* paper. “floatbox” is used to provide */
/* floating boxes that may appear anywhere */
/* in the main content; they ARE printed. */
.floatbox,
.navbox {
overflow: visible;
font-size: 95%;
line-height: 1.25;
margin: 0 0 0.75em 1.5em;
padding: 0.5em 1em;
border: 1px solid #999999;
float: right;
clear: right;
}
.floatbox {
color: black;
background: #F0F0F0;
width: 35%;
}
.navbox {
text-align: left;
color: black;
background: white;
width: 12.5em;
}
.floatbox hr, /* Used for non-stylesheet-aware browsers */
.navbox hr {
display: none !important;
}
.floatbox p,
.navbox p {
margin: 0.75em 0;
padding: 0;
}
.floatbox ol,
.floatbox ul {
margin: 0.75em 0;
padding: 0 0 0 1.5em;
}
.navbox ol,
.navbox ul {
margin: 0.5em 0;
padding: 0 0 0 1.5em;
}
.floatbox blockquote {
margin: 0.75em 1.5em;
padding: 0;
}
.floatbox pre {
font-size: 95%;
margin: 0.75em 1.5em;
padding: 0;
}
.floatbox dt {
margin: 0.75em 0;
padding: 0;
}
.floatbox dt {
margin: 0.75em 0 0.25em 0;
padding: 0;
}
.floatbox dd {
margin: 0 0 0.75em 1.5em;
padding: 0;
}
#main .floatbox .highlight {
color: inherit;
background: white;
margin: 0.75em 0;
padding: 0.75em 1.5em;
}
#main .floatbox table.simple {
margin: 0.75em 0;
}
#main .floatbox table.simple th,
#main .floatbox table.simple td.highlight,
#main .floatbox table.simple th.highlight {
color: inherit;
background: white;
margin: 0;
padding: 0.25em 0.5em;
}
/********** Styles for Header **********/
/* In this style sheet, headers are composed */
/* of three parts: left, right and subheader */
/* Left part is ideally an image. */
#header { /* Warning: not printed out on paper */
color: #003399;
background: #8CA8E6;
}
#header a:link,
#header a:visited {
color: #003399;
background: transparent;
}
#header .highlight,
#header a.highlight:link,
#header a.highlight:visited {
color: white;
background: transparent;
}
/* Left part of header (ideally an image but may be a link) */
#header div.left {
float: left;
clear: left;
margin: 0;
padding: 0;
}
#header div.left img {
display: block; /* Otherwise IMG is an inline, causing gaps */
}
#header div.left,
#header div.left a:link,
#header div.left a:visited {
font-size: 200%;
font-weight: bold;
text-decoration: none;
color: white;
background: transparent;
}
#header div.left p {
margin: 0 0 0 0.25em;
padding: 0;
}
#header div.left .alt {
color: #FF9800;
background: transparent;
}
/* Right part of header is for external/global links, search, etc */
#header div.right {
font-size: 90%;
text-align: right;
margin: 0;
padding: 0.5em 1.17em 0 1em;
float: right;
clear: right;
}
#header div.right a:link,
#header div.right a:visited {
margin: 0;
padding: 0 0.5em;
}
#header div.right form {
margin: 0;
padding: 0.25em 0.5em 0 0;
}
#header div.right form input {
font-size: 95%;
vertical-align: middle;
}
/* Subheader for global links */
#header div.subheader {
color: white;
background: #003399;
margin: 0;
padding: 0;
border: 1px solid #003399; /* Required for IE/Win */
clear: both;
}
#header div.subheader p { /* To overcome an IE/Win unwanted padding */
/* bug, still present in IE7. */
margin: 0;
padding: 0.5em;
}
#header div.subheader a:link,
#header div.subheader a:visited {
font-weight: bolder;
color: white;
background: transparent;
margin: 0;
padding: 0 0.5em;
}
#header div.subheader .highlight,
#header div.subheader a.highlight:link,
#header div.subheader a.highlight:visited {
color: #FDA05E;
background: transparent;
}
/********** Styles for Left Sidebar **********/
#sidebar { /* Warning: not printed out on paper */
width: 12.5em;
border-right: 1px solid #999999;
float: left;
background-color:#F0F0F0;
clear: both;
}
#sidebar div {
font-size: 95%;
margin: 0;
padding: 0.25em 0.25em;
}
#sidebar div.lighter {
color: inherit;
background: white;
}
#sidebar p {
margin: 0.5em 0;
}
#sidebar .title a:link,
#sidebar .title a:visited {
color: black;
background: transparent;
}
#sidebar ul {
list-style: none outside;
margin: 0.5em 0;
padding: 0;
}
#sidebar ul li {
margin: 0;
padding: 0.125em 0;
}
#sidebar ul li.highlight {
color: inherit;
background: white;
margin-left: -1em;
margin-right: -1em;
padding-left: 1em;
border-top: 1px solid #999999;
border-bottom: 1px solid #999999;
}
#sidebar ul li.highlight a:link,
#sidebar ul li.highlight a:visited {
color: black;
background: transparent;
}
/********** Styles for Footer **********/
#footer {
font-size: 90%;
text-align: left;
color: white;
background: #6381DC;
margin: 0;
padding: 0.5em 1.67em 0.5em 15.25em;
clear: both;
}
#footer a:link,
#footer a:visited {
text-decoration: underline;
color: white;
background: transparent;
}
#footer hr {
display: none !important;
}
/* End of the Sinorcaish style sheet */
bbyopen/web.config