Work on DbDriver

This commit is contained in:
derek.holloway
2025-07-14 08:59:58 -07:00
parent c0a9142d10
commit 5f6fcf5b96
+151 -85
View File
@@ -58,113 +58,179 @@ namespace BoredCareers.Services.DatabaseService {
public async Task<Resume?> GetResume(int ResumeID) { public async Task<Resume?> GetResume(int ResumeID) {
Resume? resume = null; Resume? resume = null;
using (MySqlConnection connection = GetConnection()) {
connection.Open(); MySqlConnection resumeConnection = GetConnection();
MySqlCommand resumeCommand = new MySqlCommand("SELECT * FROM Resume WHERE ID = @ResumeID;", connection); MySqlConnection ResumeExperienceConnection = GetConnection();
MySqlCommand ResumeExperienceCommand = new MySqlCommand("SELECT * FROM ResumeExperience WHERE ResumeID = @ResumeID;", connection); MySqlConnection ResumeExperienceBulletConnection = GetConnection();
MySqlCommand ResumeExperienceBulletCommand = new MySqlCommand("SELECT * FROM ResumeExperienceBullet WHERE ResumeID = @ResumeID;"); MySqlConnection ResumeMilitaryConnection = GetConnection();
MySqlCommand ResumeMilitaryCommand = new MySqlCommand("SELECT * FROM ResumeMilitary WHERE ResumeID = @ResumeID;", connection); MySqlConnection ResumeMilitaryBulletConnection = GetConnection();
MySqlCommand ResumeMilitaryBulletCommand = new MySqlCommand("SELECT * FROM ResumeMilitaryBullet WHERE ResumeID = @ResumeID", connection); MySqlConnection ResumeEducationConnection = GetConnection();
MySqlCommand ResumeEducationCommand = new MySqlCommand("SELECT * FROM ResumeEducation WHERE ResumeID = @ResumeID;", connection); MySqlConnection ResumeSkillConnection = GetConnection();
MySqlCommand ResumeSkillCommand = new MySqlCommand("SELECT * FROM ResumeSkill WHERE ResumeID = @ResumeID;", connection); MySqlConnection ResumeLanguageConnection = GetConnection();
MySqlCommand ResumeLanguageCommand = new MySqlCommand("SELECT * FROM ResumeLanguage WHERE ResumeID = @ResumeID;", connection); MySqlConnection ResumeCertificationConnection = GetConnection();
MySqlCommand ResumeCertificationCommand = new MySqlCommand("SELECT * FROM ResumeCertification WHERE ResumeID = @ResumeID;", connection); MySqlConnection ResumeProjectConnection = GetConnection();
MySqlCommand ResumeProjectCommand = new MySqlCommand("SELECT * FROM ResumeProject WHERE ResumeID = @ResumeID;", connection);
resumeCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumeopen = resumeConnection.OpenAsync();
ResumeExperienceCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumeexperienceopen = ResumeExperienceConnection.OpenAsync();
ResumeExperienceBulletCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumeexperiencebulletopen = ResumeExperienceBulletConnection.OpenAsync();
ResumeMilitaryCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumemilitaryopen = ResumeMilitaryConnection.OpenAsync();
ResumeMilitaryBulletCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumemilitarybulletopen = ResumeMilitaryBulletConnection.OpenAsync();
ResumeEducationCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumeeducationopen = ResumeEducationConnection.OpenAsync();
ResumeSkillCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumeskillopen = ResumeSkillConnection.OpenAsync();
ResumeLanguageCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumelanguageopen = ResumeLanguageConnection.OpenAsync();
ResumeCertificationCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumecertifcationopen = ResumeCertificationConnection.OpenAsync();
ResumeProjectCommand.Parameters.AddWithValue("@ResumeID", ResumeID); Task resumeprojectopen = ResumeProjectConnection.OpenAsync();
Task<DbDataReader> resumeReader = resumeCommand.ExecuteReaderAsync(); await Task.WhenAll(resumeopen, resumeexperienceopen, resumeexperiencebulletopen, resumemilitaryopen, resumemilitarybulletopen,
Task<DbDataReader> ResumeExperienceReader = ResumeExperienceCommand.ExecuteReaderAsync(); resumeeducationopen, resumeskillopen, resumelanguageopen, resumecertifcationopen, resumeprojectopen);
Task<DbDataReader> ResumeExperienceBulletReader = ResumeExperienceBulletCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeMilitaryReader = ResumeMilitaryCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeMilitaryBulletReader = ResumeMilitaryBulletCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeEducationReader = ResumeEducationCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeSkillReader = ResumeSkillCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeLanguageReader = ResumeLanguageCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeCertificationReader = ResumeCertificationCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeProjectnReader = ResumeProjectCommand.ExecuteReaderAsync();
await Task.WhenAll(resumeReader, ResumeExperienceReader, ResumeExperienceBulletReader, ResumeMilitaryReader, ResumeMilitaryBulletReader, ResumeEducationReader, ResumeSkillReader, ResumeLanguageReader, ResumeCertificationReader, ResumeProjectnReader); MySqlCommand resumeCommand = new MySqlCommand("SELECT * FROM Resume WHERE ID = @ResumeID;", resumeConnection);
MySqlCommand ResumeExperienceCommand = new MySqlCommand("SELECT * FROM ResumeExperience WHERE ResumeID = @ResumeID;", ResumeExperienceConnection);
MySqlCommand ResumeExperienceBulletCommand = new MySqlCommand("SELECT * FROM ResumeExperienceBullet WHERE ResumeID = @ResumeID;", ResumeExperienceBulletConnection);
MySqlCommand ResumeMilitaryCommand = new MySqlCommand("SELECT * FROM ResumeMilitary WHERE ResumeID = @ResumeID;", ResumeMilitaryConnection);
MySqlCommand ResumeMilitaryBulletCommand = new MySqlCommand("SELECT * FROM ResumeMilitaryBullet WHERE ResumeID = @ResumeID", ResumeMilitaryBulletConnection);
MySqlCommand ResumeEducationCommand = new MySqlCommand("SELECT * FROM ResumeEducation WHERE ResumeID = @ResumeID;", ResumeEducationConnection);
MySqlCommand ResumeSkillCommand = new MySqlCommand("SELECT * FROM ResumeSkill WHERE ResumeID = @ResumeID;", ResumeSkillConnection);
MySqlCommand ResumeLanguageCommand = new MySqlCommand("SELECT * FROM ResumeLanguage WHERE ResumeID = @ResumeID;", ResumeLanguageConnection);
MySqlCommand ResumeCertificationCommand = new MySqlCommand("SELECT * FROM ResumeCertification WHERE ResumeID = @ResumeID;", ResumeCertificationConnection);
MySqlCommand ResumeProjectCommand = new MySqlCommand("SELECT * FROM ResumeProject WHERE ResumeID = @ResumeID;", ResumeProjectConnection);
using (DbDataReader reader = await resumeReader) { resumeCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
while (await reader.ReadAsync()) { ResumeExperienceCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
if (reader == null) { ResumeExperienceBulletCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
break; ResumeMilitaryCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
} ResumeMilitaryBulletCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeEducationCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeSkillCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeLanguageCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeCertificationCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeProjectCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
int _id = reader.GetInt32("ID"); Task<DbDataReader> resumeReader = resumeCommand.ExecuteReaderAsync();
int _accountid = reader.GetInt32("AccountID"); Task<DbDataReader> ResumeExperienceReader = ResumeExperienceCommand.ExecuteReaderAsync();
string _name = reader.GetString("Name"); Task<DbDataReader> ResumeExperienceBulletReader = ResumeExperienceBulletCommand.ExecuteReaderAsync();
string _field = reader.GetString("Field"); Task<DbDataReader> ResumeMilitaryReader = ResumeMilitaryCommand.ExecuteReaderAsync();
string _email = reader.GetString("Email"); Task<DbDataReader> ResumeMilitaryBulletReader = ResumeMilitaryBulletCommand.ExecuteReaderAsync();
string _phonenumber = reader.GetString("PhoneNumber"); Task<DbDataReader> ResumeEducationReader = ResumeEducationCommand.ExecuteReaderAsync();
string _postalcode = reader.GetString("PostalCode"); Task<DbDataReader> ResumeSkillReader = ResumeSkillCommand.ExecuteReaderAsync();
string _country = reader.GetString("Country"); Task<DbDataReader> ResumeLanguageReader = ResumeLanguageCommand.ExecuteReaderAsync();
string _state = reader.GetString("StateOrRegion"); Task<DbDataReader> ResumeCertificationReader = ResumeCertificationCommand.ExecuteReaderAsync();
string _city = reader.GetString("City"); Task<DbDataReader> ResumeProjectnReader = ResumeProjectCommand.ExecuteReaderAsync();
bool _isactive = reader.GetBoolean("IsActive");
resume = new Resume() { await Task.WhenAll(resumeReader, ResumeExperienceReader, ResumeExperienceBulletReader, ResumeMilitaryReader, ResumeMilitaryBulletReader,
ID = _id, ResumeEducationReader, ResumeSkillReader, ResumeLanguageReader, ResumeCertificationReader, ResumeProjectnReader);
AccountID = _accountid,
Name = _name, using (DbDataReader reader = await resumeReader) {
Field = _field, while (await reader.ReadAsync()) {
Email = _email, if (reader == null) { break; }
PhoneNumber = _phonenumber, int _id = reader.GetInt32("ID");
PostalCode = _postalcode, int _accountid = reader.GetInt32("AccountID");
Country = _country, string _name = reader.GetString("Name");
StateOrRegion = _state, string _field = reader.GetString("Field");
City = _city, string _email = reader.GetString("Email");
IsActive = _isactive string _phonenumber = reader.GetString("PhoneNumber");
}; string _postalcode = reader.GetString("PostalCode");
string _country = reader.GetString("Country");
string _state = reader.GetString("StateOrRegion");
string _city = reader.GetString("City");
bool _isactive = reader.GetBoolean("IsActive");
resume = new Resume() {
ID = _id,
AccountID = _accountid,
Name = _name,
Field = _field,
Email = _email,
PhoneNumber = _phonenumber,
PostalCode = _postalcode,
Country = _country,
StateOrRegion = _state,
City = _city,
IsActive = _isactive
};
}
}
List<ResumeExperienceBullet> experienceBullets = new List<ResumeExperienceBullet>();
using (DbDataReader reader = await ResumeExperienceBulletReader) {
while (await reader.ReadAsync()) {
if (reader == null) { break; }
int _id = reader.GetInt32("ID");
int _resumeid = reader.GetInt32("ResumeID");
int _experienceid = reader.GetInt32("ResumeExperienceID");
string _jobfunction = reader.GetString("JobFunction");
experienceBullets.Add( new ResumeExperienceBullet() {
ID = _id,
ResumeID = _resumeid,
ResumeExperienceID = _experienceid,
JobFunction = _jobfunction
});
}
}
Dictionary<int, List<ResumeExperienceBullet>> groupedExperienceBullets = experienceBullets
.GroupBy(b => b.ResumeExperienceID)
.ToDictionary(g => g.Key, g => g.ToList());
using (DbDataReader reader = await ResumeExperienceReader) {
List<ResumeExperience> experience = new List<ResumeExperience>();
while (await reader.ReadAsync()) {
if (reader == null) {
break;
} }
int _id = reader.GetInt32("ID");
int _resumeid = reader.GetInt32("ResumeID");
string _jobtitle = reader.GetString("JobTitle");
string _company = reader.GetString("Company");
string _postalcode = reader.GetString("PostalCode");
string _country = reader.GetString("Country");
string _state = reader.GetString("StateOrRegion");
string _city = reader.GetString("City");
DateTime _datestarted = reader.GetDateTime("DateStarted");
bool _stillempoyed = reader.GetBoolean("StillEmployed");
DateTime _dateended = reader.GetDateTime("DateEnded");
experience.Add( new ResumeExperience() {
ID = _id,
ResumeID = _resumeid,
JobTitle = _jobtitle,
Company = _company,
PostalCode = _postalcode,
Country = _country,
StateOrRegion = _state,
City = _city,
DateStarted = _datestarted,
StillEmployed = _stillempoyed,
DateEnded = _dateended,
ExperienceBullets = groupedExperienceBullets[_id].ToArray()
} );
} }
}
using (DbDataReader reader = await ResumeExperienceReader) { using (DbDataReader reader = await ResumeMilitaryBulletReader) {
}
using (DbDataReader reader = await ResumeExperienceBulletReader) { }
} using (DbDataReader reader = await ResumeMilitaryReader) {
using (DbDataReader reader = await ResumeMilitaryReader) { }
}
using (DbDataReader reader = await ResumeMilitaryBulletReader) { using (DbDataReader reader = await ResumeEducationReader) {
} }
using (DbDataReader reader = await ResumeEducationReader) { using (DbDataReader reader = await ResumeSkillReader) {
} }
using (DbDataReader reader = await ResumeSkillReader) { using (DbDataReader reader = await ResumeLanguageReader) {
} }
using (DbDataReader reader = await ResumeLanguageReader) { using (DbDataReader reader = await ResumeCertificationReader) {
} }
using (DbDataReader reader = await ResumeCertificationReader) { using (DbDataReader reader = await ResumeProjectnReader) {
}
using (DbDataReader reader = await ResumeProjectnReader) {
}
} }
return resume; return resume;
} }