Added browse page and state-filtering functionality
This commit is contained in:
parent
b0739e019a
commit
3d5c720a5d
|
@ -51,6 +51,43 @@ namespace TSC2.Components.CSharp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static List<Tuple<string, string, string, float>> FilterByState(string state)
|
||||||
|
{
|
||||||
|
List<Tuple<string, string, string, float>> results = new();
|
||||||
|
MySqlConnection conn = new MySqlConnection(_connectionString);
|
||||||
|
conn.Open();
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand("SELECT * FROM shopinformation WHERE address LIKE CONCAT('%', @state, ',%');", conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@state", state);
|
||||||
|
using (MySqlDataReader reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
Console.WriteLine("Executed filter");
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
Console.WriteLine("Result found");
|
||||||
|
var uniqueID = reader.GetString(0);
|
||||||
|
var shopName = reader.GetString(1);
|
||||||
|
var address = reader.GetString(2);
|
||||||
|
var score = 5.0f; // TODO: replace with average lookup. Will require a query or new field on each shop in the db
|
||||||
|
//var phone = reader.GetString(3);
|
||||||
|
//var website = reader.GetString(4);
|
||||||
|
//var hours = reader.GetString(5);
|
||||||
|
//var about = reader.GetString(6);
|
||||||
|
//double latitude = reader.GetDouble(7);
|
||||||
|
//double longitude = reader.GetDouble(8);
|
||||||
|
|
||||||
|
Tuple<string, string, string, float> tuple = new Tuple<string, string, string, float>(uniqueID, shopName, address, score);
|
||||||
|
|
||||||
|
results.Add(tuple);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************/
|
/**********************************************/
|
||||||
// LOGIN FLOW
|
// LOGIN FLOW
|
||||||
/**********************************************/
|
/**********************************************/
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<ul class="menu-container">
|
<ul class="menu-container">
|
||||||
<li class="menu-item current"><a class="menu-link" href=""><div>Home</div></a></li>
|
<li class="menu-item current"><a class="menu-link" href=""><div>Home</div></a></li>
|
||||||
<!-- Mega Menu -->
|
<!-- Mega Menu -->
|
||||||
<li class="menu-item"><a class="menu-link" href="/info"><div>Browse By State</div></a></li>
|
<li class="menu-item"><a class="menu-link" href="/browse"><div>Browse By State</div></a></li>
|
||||||
<li class="menu-item"><a class="menu-link" href="demo-car-dealers.html"><div>Dealers</div></a></li>
|
<li class="menu-item"><a class="menu-link" href="demo-car-dealers.html"><div>Dealers</div></a></li>
|
||||||
<li class="menu-item"><a class="menu-link" href="demo-car-accessories.html"><div>Accessories</div></a></li>
|
<li class="menu-item"><a class="menu-link" href="demo-car-accessories.html"><div>Accessories</div></a></li>
|
||||||
<li class="menu-item"><a class="menu-link" href="demo-car-interiors.html"><div>Interiors</div></a></li>
|
<li class="menu-item"><a class="menu-link" href="demo-car-interiors.html"><div>Interiors</div></a></li>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,38 @@
|
||||||
|
@page "/browse/{State}"
|
||||||
|
|
||||||
|
@using TSC2.Components.CSharp;
|
||||||
|
|
||||||
|
|
||||||
|
<h1>@State</h1>
|
||||||
|
<h2>@results</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
@foreach(Tuple<string, string, string, float> current in filterResults)
|
||||||
|
{
|
||||||
|
<li><a href="/info/@current.Item2&@current.Item1">@current.Item4 * | @current.Item2 | @current.Item3</a></li>
|
||||||
|
}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
@code {
|
||||||
|
[Parameter]
|
||||||
|
public string State { get; set; } = "MI";
|
||||||
|
private string results = "No results found.";
|
||||||
|
private List<Tuple<string,string,string,float>> filterResults = new();
|
||||||
|
|
||||||
|
|
||||||
|
protected override Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
filterResults = DatabaseManager.FilterByState(State);
|
||||||
|
if (filterResults.Count == 0)
|
||||||
|
return Task.FromResult(0);
|
||||||
|
|
||||||
|
this.results = "Results:\n";
|
||||||
|
return Task.FromResult(0);
|
||||||
|
|
||||||
|
/*foreach (Tuple<string, string, string, float> current in results)
|
||||||
|
{
|
||||||
|
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,7 +14,7 @@
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.0" />
|
||||||
<PackageReference Include="MySql.Data" Version="9.0.0" />
|
<PackageReference Include="MySql.Data" Version="9.0.0" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="Telerik.UI.for.Blazor" Version="6.0.2" />
|
<PackageReference Include="Telerik.UI.for.Blazor" Version="6.2.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ProjectExtensions><VisualStudio><UserProperties UseCdnSupport="False" UseFontIcons="True" /></VisualStudio></ProjectExtensions>
|
<ProjectExtensions><VisualStudio><UserProperties UseCdnSupport="False" UseFontIcons="True" /></VisualStudio></ProjectExtensions>
|
||||||
</Project>
|
</Project>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue