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