Start work on fixing DbDriver

This commit is contained in:
2025-08-13 06:28:59 -07:00
parent 369d71d446
commit d3182a1f7c
3 changed files with 124 additions and 164 deletions
@@ -4,7 +4,7 @@ using MySql.Data.MySqlClient;
namespace BoredCareers.Services.DatabaseService {
public partial class DatabaseService {
public async Task SetResume(MySqlConnection connection, Resume resume) {
public async Task<int> SetResume(MySqlConnection connection, Resume resume) {
string command = @"
INSERT INTO Resume
(ID,AccountID,Title,Name,Field,Email,PhoneNumber,PostalCode,Country,StateOrRegion,City,IsActive)
@@ -22,6 +22,8 @@ namespace BoredCareers.Services.DatabaseService {
StateOrRegion = @StateOrRegion,
City = @City,
IsActive = @IsActive;
SELECT LAST_INSERT_ID();
";
MySqlCommand cmd = new MySqlCommand(command, connection);
@@ -37,8 +39,14 @@ namespace BoredCareers.Services.DatabaseService {
cmd.Parameters.AddWithValue("@StateOrRegion", resume.StateOrRegion);
cmd.Parameters.AddWithValue("@City", resume.City);
cmd.Parameters.AddWithValue("@IsActive", resume.IsActive);
object? result = await cmd.ExecuteScalarAsync();
await cmd.ExecuteNonQueryAsync();
if (resume.ID != null && resume.ID != 0) {
return Convert.ToInt32(resume.ID);
} else {
cmd.CommandText = "";
return Convert.ToInt32(result);
}
}
public async Task SetResumeExperienceBullets(MySqlConnection connection, ResumeExperienceBullet[] bullets) {
@@ -64,7 +72,7 @@ namespace BoredCareers.Services.DatabaseService {
}
}
public async Task SetResumeExperience(MySqlConnection connection, ResumeExperience[] experiences) {
public async Task<int> SetResumeExperience(MySqlConnection connection, ResumeExperience[] experiences) {
foreach (ResumeExperience cur in experiences) {
string command = @"
INSERT INTO Resume
@@ -82,6 +90,8 @@ namespace BoredCareers.Services.DatabaseService {
DateStarted = @DateStarted,
StillEmployed = @StillEmployed,
DateEnded = @DateEnded;
SELECT LAST_INSERT_ID();
";
MySqlCommand cmd = new MySqlCommand(command, connection);
@@ -93,8 +103,14 @@ namespace BoredCareers.Services.DatabaseService {
cmd.Parameters.AddWithValue("@DateStarted", cur.DateStarted.ToUniversalTime());
cmd.Parameters.AddWithValue("@StillEmployed", cur.StillEmployed);
cmd.Parameters.AddWithValue("@DateEnded", cur.DateEnded.ToUniversalTime());
object? result = await cmd.ExecuteScalarAsync();
await cmd.ExecuteNonQueryAsync();
if (cur.ID != null && cur.ID != 0) {
return Convert.ToInt32(cur.ID);
} else {
cmd.CommandText = "";
return Convert.ToInt32(result);
}
}
}
@@ -123,33 +139,41 @@ namespace BoredCareers.Services.DatabaseService {
}
}
public async Task SetResumeMilitary(MySqlConnection connection, ResumeMilitary military) {
string command = @"
INSERT INTO Resume
(ID,ResumeID,Veteran,Country,Rank,DateStarted,StillServing,DateEnded)
VALUES
(@ID,@ResumeID,@Veteran,@Country,@Rank,@DateStarted,@StillServing,@DateEnded)
ON DUPLICATE KEY UPDATE
ResumeID = @ResumeID,
Veteran = @Veteran,
Country = @Country,
Rank = @Rank,
DateStarted = @DateStarted,
StillServing = @StillServing,
DateEnded = @DateEnded;
";
public async Task<int> SetResumeMilitary(MySqlConnection connection, ResumeMilitary? military) {
if (military != null) {
string command = @"
INSERT INTO Resume
(ID,ResumeID,Country,Rank,DateStarted,StillServing,DateEnded)
VALUES
(@ID,@ResumeID,@Country,@Rank,@DateStarted,@StillServing,@DateEnded)
ON DUPLICATE KEY UPDATE
ResumeID = @ResumeID,
Country = @Country,
Rank = @Rank,
DateStarted = @DateStarted,
StillServing = @StillServing,
DateEnded = @DateEnded;
MySqlCommand cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@ID", military.ID);
cmd.Parameters.AddWithValue("@ResumeID", military.ResumeID);
cmd.Parameters.AddWithValue("@Veteran", military.Veteran);
cmd.Parameters.AddWithValue("@Country", military.Country);
cmd.Parameters.AddWithValue("@Rank", military.Rank);
cmd.Parameters.AddWithValue("@DateStarted", military.DateStarted.ToUniversalTime());
cmd.Parameters.AddWithValue("@StillServing", military.StillServing);
cmd.Parameters.AddWithValue("@DateEnded", military.DateEnded.ToUniversalTime());
SELECT LAST_INSERT_ID();
";
await cmd.ExecuteNonQueryAsync();
MySqlCommand cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@ID", military.ID);
cmd.Parameters.AddWithValue("@ResumeID", military.ResumeID);
cmd.Parameters.AddWithValue("@Country", military.Country);
cmd.Parameters.AddWithValue("@Rank", military.Rank);
cmd.Parameters.AddWithValue("@DateStarted", military.DateStarted.ToUniversalTime());
cmd.Parameters.AddWithValue("@StillServing", military.StillServing);
cmd.Parameters.AddWithValue("@DateEnded", military.DateEnded.ToUniversalTime());
object? result = await cmd.ExecuteScalarAsync();
if (military.ID != null && military.ID != 0) {
return Convert.ToInt32(military.ID);
} else {
cmd.CommandText = "";
return Convert.ToInt32(result);
}
}
}
public async Task SetResumeEducation(MySqlConnection connection, ResumeEducation[] educations) {