Finalize the DbDriver

This commit is contained in:
Derek Holloway
2025-08-13 13:10:40 -07:00
parent d3182a1f7c
commit 88847f0ddc
2 changed files with 90 additions and 73 deletions
@@ -49,69 +49,63 @@ namespace BoredCareers.Services.DatabaseService {
}
}
public async Task SetResumeExperienceBullets(MySqlConnection connection, ResumeExperienceBullet[] bullets) {
foreach (ResumeExperienceBullet cur in bullets) {
string command = @"
INSERT INTO Resume
(ID,ResumeID,ResumeExperienceID,JobFunction)
VALUES
(@ID,@ResumeID,@ResumeExperienceID,@JobFunction)
ON DUPLICATE KEY UPDATE
ResumeID = @ResumeID,
ResumeExperienceID = @ResumeExperienceID,
JobFunction = @JobFunction;
";
public async Task SetResumeExperienceBullets(MySqlConnection connection, ResumeExperienceBullet bullet) {
string command = @"
INSERT INTO Resume
(ID,ResumeID,ResumeExperienceID,JobFunction)
VALUES
(@ID,@ResumeID,@ResumeExperienceID,@JobFunction)
ON DUPLICATE KEY UPDATE
ResumeID = @ResumeID,
ResumeExperienceID = @ResumeExperienceID,
JobFunction = @JobFunction;
";
MySqlCommand cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@ID", cur.ID);
cmd.Parameters.AddWithValue("@ResumeID", cur.ResumeID);
cmd.Parameters.AddWithValue("@ResumeExperienceID", cur.ResumeExperienceID);
cmd.Parameters.AddWithValue("@JobFunction", cur.JobFunction);
MySqlCommand cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@ID", bullet.ID);
cmd.Parameters.AddWithValue("@ResumeID", bullet.ResumeID);
cmd.Parameters.AddWithValue("@ResumeExperienceID", bullet.ResumeExperienceID);
cmd.Parameters.AddWithValue("@JobFunction", bullet.JobFunction);
await cmd.ExecuteNonQueryAsync();
}
await cmd.ExecuteNonQueryAsync();
}
public async Task<int> SetResumeExperience(MySqlConnection connection, ResumeExperience[] experiences) {
foreach (ResumeExperience cur in experiences) {
string command = @"
INSERT INTO Resume
(ID,ResumeID,JobTitle,Company,PostalCode,Country,StateOrRegion,City,DateStarted,StillEmployed,DateEnded)
VALUES
(@ID,@ResumeID,@JobTitle,@Company,@PostalCode,@Country,@StateOrRegion,@City,@DateStarted,@StillEmployed,@DateEnded)
ON DUPLICATE KEY UPDATE
ResumeID = @ResumeID,
JobTitle = @JobTitle,
Company = @Company,
PostalCode = @PostalCode,
Country = @Country,
StateOrRegion = @StateOrRegion,
City = @City,
DateStarted = @DateStarted,
StillEmployed = @StillEmployed,
DateEnded = @DateEnded;
public async Task<ResumeExperience> SetResumeExperience(MySqlConnection connection, ResumeExperience experiences) {
string command = @"
INSERT INTO Resume
(ID,ResumeID,JobTitle,Company,PostalCode,Country,StateOrRegion,City,DateStarted,StillEmployed,DateEnded)
VALUES
(@ID,@ResumeID,@JobTitle,@Company,@PostalCode,@Country,@StateOrRegion,@City,@DateStarted,@StillEmployed,@DateEnded)
ON DUPLICATE KEY UPDATE
ResumeID = @ResumeID,
JobTitle = @JobTitle,
Company = @Company,
PostalCode = @PostalCode,
Country = @Country,
StateOrRegion = @StateOrRegion,
City = @City,
DateStarted = @DateStarted,
StillEmployed = @StillEmployed,
DateEnded = @DateEnded;
SELECT LAST_INSERT_ID();
";
SELECT LAST_INSERT_ID();
";
MySqlCommand cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@ID", cur.ID);
cmd.Parameters.AddWithValue("@ResumeID", cur.ResumeID);
cmd.Parameters.AddWithValue("@JobTitle", cur.JobTitle);
cmd.Parameters.AddWithValue("@Company", cur.Company);
cmd.Parameters.AddWithValue("@PostalCode", cur.PostalCode);
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();
MySqlCommand cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@ID", experiences.ID);
cmd.Parameters.AddWithValue("@ResumeID", experiences.ResumeID);
cmd.Parameters.AddWithValue("@JobTitle", experiences.JobTitle);
cmd.Parameters.AddWithValue("@Company", experiences.Company);
cmd.Parameters.AddWithValue("@PostalCode", experiences.PostalCode);
cmd.Parameters.AddWithValue("@DateStarted", experiences.DateStarted.ToUniversalTime());
cmd.Parameters.AddWithValue("@StillEmployed", experiences.StillEmployed);
cmd.Parameters.AddWithValue("@DateEnded", experiences.DateEnded.ToUniversalTime());
object? result = await cmd.ExecuteScalarAsync();
if (cur.ID != null && cur.ID != 0) {
return Convert.ToInt32(cur.ID);
} else {
cmd.CommandText = "";
return Convert.ToInt32(result);
}
if (experiences.ID == null) {
experiences.ID = Convert.ToInt32(result);
}
return experiences;
}
public async Task SetResumeMilitaryBullets(MySqlConnection connection, ResumeMilitaryBullet[] bullets) {
@@ -139,7 +133,7 @@ namespace BoredCareers.Services.DatabaseService {
}
}
public async Task<int> SetResumeMilitary(MySqlConnection connection, ResumeMilitary? military) {
public async Task<ResumeMilitary> SetResumeMilitary(MySqlConnection connection, ResumeMilitary? military) {
if (military != null) {
string command = @"
INSERT INTO Resume
@@ -167,13 +161,12 @@ namespace BoredCareers.Services.DatabaseService {
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);
if (military.ID == null) {
military.ID = Convert.ToInt32(result);
}
return military;
}
return new ResumeMilitary();
}
public async Task SetResumeEducation(MySqlConnection connection, ResumeEducation[] educations) {