From 3d5c720a5d76ce9420c8039142c3ff79bf73e086 Mon Sep 17 00:00:00 2001 From: Joshua Deck Date: Mon, 26 Aug 2024 09:21:40 -0400 Subject: [PATCH] Added browse page and state-filtering functionality --- TSC2/Components/CSharp/DatabaseManager.cs | 37 + TSC2/Components/Layout/MainLayout.razor | 2 +- TSC2/Components/Pages/Browse.razor | 129 ++ TSC2/Components/Pages/BrowseState.razor | 38 + TSC2/TSC2.csproj | 2 +- TSC2/wwwroot/js/clickableMap.js | 1299 +++++++++++++++++++++ 6 files changed, 1505 insertions(+), 2 deletions(-) create mode 100644 TSC2/Components/Pages/Browse.razor create mode 100644 TSC2/Components/Pages/BrowseState.razor create mode 100644 TSC2/wwwroot/js/clickableMap.js diff --git a/TSC2/Components/CSharp/DatabaseManager.cs b/TSC2/Components/CSharp/DatabaseManager.cs index 7282e7b..0e98694 100644 --- a/TSC2/Components/CSharp/DatabaseManager.cs +++ b/TSC2/Components/CSharp/DatabaseManager.cs @@ -51,6 +51,43 @@ namespace TSC2.Components.CSharp + public static List> FilterByState(string state) + { + List> 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 tuple = new Tuple(uniqueID, shopName, address, score); + + results.Add(tuple); + } + } + } + return results; + } + + + /**********************************************/ // LOGIN FLOW /**********************************************/ diff --git a/TSC2/Components/Layout/MainLayout.razor b/TSC2/Components/Layout/MainLayout.razor index a8eef1b..72765bc 100644 --- a/TSC2/Components/Layout/MainLayout.razor +++ b/TSC2/Components/Layout/MainLayout.razor @@ -44,7 +44,7 @@