Fix bad filtering

This commit is contained in:
2025-09-04 20:14:05 -07:00
parent d9bd4355c7
commit eb439e58db
2 changed files with 12 additions and 13 deletions
@@ -1,7 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using BoredCareers.Services.DatabaseService;
using BoredCareers.Entities;
using Org.BouncyCastle.Tls;
namespace BoredCareers.Controllers {
[ApiController]
@@ -17,45 +17,45 @@ namespace BoredCareers.Services.DatabaseService {
string limit = " LIMIT @PageSize OFFSET @PageNumber;";
List<string> Filters = new List<string>();
List<string> Parameters = new List<string>();
List<object> Parameters = new List<object>();
List<string> ParameterName = new List<string>();
if (PostalCodes != null) {
for (int i = 0; i < PostalCodes.Length; i++) {
Filters.Add("PostalCode");
Parameters.Add(PostalCodes[i]);
ParameterName.Add("@PostalCode" + i);
ParameterName.Add(" = @PostalCode" + i);
}
}
if (CountryCode != null) {
Filters.Add("Country");
Parameters.Add(CountryCode);
ParameterName.Add("@CountryCode");
ParameterName.Add(" = @CountryCode");
}
if (JobType != null) {
Filters.Add("JobType");
Parameters.Add(JobType);
ParameterName.Add("@JobType");
ParameterName.Add(" = @JobType");
}
if (Remote != null) {
Filters.Add("Remote");
Parameters.Add(Remote.Value.ToString());
ParameterName.Add("@Remote");
Parameters.Add(Remote.Value);
ParameterName.Add(" = @Remote");
}
if (SalaryMin != null) {
Filters.Add("SalaryMin");
Parameters.Add(SalaryMin.Value.ToString());
ParameterName.Add("@SalaryMin");
Parameters.Add(SalaryMin.Value);
ParameterName.Add(" >= @SalaryMin");
}
if (SalaryMax != null) {
Filters.Add("SalaryMax");
Parameters.Add(SalaryMax.Value.ToString());
ParameterName.Add("@SalaryMax");
Parameters.Add(SalaryMax.Value);
ParameterName.Add(" <= @SalaryMax");
}
string filter = " WHERE IsDeleted = False";
@@ -65,14 +65,14 @@ namespace BoredCareers.Services.DatabaseService {
} else {
filter += " AND ";
}
filter += Filters[i] + " = " + ParameterName[i];
filter += Filters[i] + ParameterName[i];
}
MySqlCommand cmd = new MySqlCommand(select + filter + order + limit, connection);
cmd.Parameters.AddWithValue("@PageSize", CountPerPage);
cmd.Parameters.AddWithValue("@PageNumber", (PageNumber - 1) * CountPerPage);
for (int i = 0; i < Filters.Count; i++) {
cmd.Parameters.AddWithValue( ParameterName[i], Parameters[i] );
cmd.Parameters.AddWithValue( ParameterName[i].Split(' ').Last(), Parameters[i] );
}
using (DbDataReader reader = await cmd.ExecuteReaderAsync()) {