working #38

Merged
derek merged 4 commits from working into main 2025-09-01 10:51:39 -07:00
6 changed files with 49 additions and 32 deletions
+5 -1
View File
@@ -12,7 +12,8 @@ Server:
Need to update notification email
Create page to notify cx that their work email has been verified
Verify that each resume section belongs to the resume it was created for:
Emails:
Make emails follow theme of website better
Client:
jobs/editor:
@@ -50,6 +51,9 @@ Client:
Company:
Need to impliment Add employee
Need to impliment Remove employee
Add comment fields to companies for company conversions
This should solve invisible overtime
Goes along with the ratings
AI Resume Rating:
Allow companies to determine if the resume looks AI -> add rating
+17 -12
View File
@@ -186,18 +186,18 @@ CREATE TABLE IF NOT EXISTS `JobListingSkill` (
-- Postal Codes Section
CREATE TABLE IF NOT EXISTS `PostalCodes` (
`country code` char(2),
`postal code` varchar(20),
`place name` varchar(180),
`state` varchar(100),
`state code` varchar(20),
`city` varchar(100),
`admin code2` varchar(20),
`admin name3` varchar(100),
`admin code3` varchar(20),
`latitude` float,
`longitude` float,
`accuracy` varchar(2)
`CountryCode` char(2),
`PostalCode` varchar(20),
`City` varchar(180),
`State` varchar(100),
`StateCode` varchar(20),
`County` varchar(100),
`CountyCode` varchar(20),
`Admin` varchar(100),
`AdminCode` varchar(20),
`Latitude` float,
`Longitude` float,
`Accuracy` varchar(2)
);
LOAD DATA INFILE '/var/lib/mysql-files/postalcodes.csv'
@@ -206,6 +206,11 @@ FIELDS TERMINATED BY '\t'
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
CREATE INDEX idx_country_code ON PostalCodes(CountryCode);
CREATE INDEX idx_postal_code ON PostalCodes(PostalCode);
CREATE INDEX idx_latitude ON PostalCodes(Latitude);
CREATE INDEX idx_longitude ON PostalCodes(Longitude);
-- Application Section
CREATE TABLE IF NOT EXISTS `JobApplication` (
+1 -1
View File
@@ -91,7 +91,7 @@ namespace BoredCareers.Controllers {
EmailContents = Substitue(EmailContents, "@ID", CompanyID.ToString());
EmailContents = Substitue(EmailContents, "@VerifyPassword", test.EmailToken);
string result = _emailContext.Send(test.Email, EmailService.CompanyVerifyEmailSubject, EmailContents);
string result = await _emailContext.Send(test.Email, EmailService.CompanyVerifyEmailSubject, EmailContents);
_emailContext._SentEmails.Add(key, DateTime.Now);
return Redirect("/");
}
+1
View File
@@ -9,6 +9,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.8" />
<PackageReference Include="MailKit" Version="4.13.0" />
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
<PackageReference Include="MySql.Data" Version="9.4.0" />
<PackageReference Include="Stripe.net" Version="48.2.0" />
@@ -51,7 +51,7 @@ namespace BoredCareers.Services.TimerService {
string emailbody = EmailService.JobAutoClosedBody;
//Substitue(emailbody, "@job", listing.JobListingID);
_em.Send(email, EmailService.JobAutoClosedSubject, emailbody);
await _em.Send(email, EmailService.JobAutoClosedSubject, emailbody);
}
}
@@ -1,4 +1,7 @@
using System.Net.Mail;
using System.Threading.Tasks;
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
namespace BoredCareers.Services {
public partial class EmailService {
@@ -17,24 +20,28 @@ namespace BoredCareers.Services {
EmailPassword = _EmailPassword;
}
public string Send( string Destination, string Subject, string Body ) {
using (SmtpClient client = new SmtpClient( EmailServer, EmailPort )){
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential( EmailAddress, EmailPassword );
try {
MailMessage msg = new MailMessage(){
IsBodyHtml = true,
Subject = Subject,
Body = Body
};
msg.From = new MailAddress( EmailAddress, "no-reply" );
msg.To.Add( new MailAddress( Destination ) );
client.Send( msg );
return "Success";
} catch( Exception e ) {
public async Task<string> Send(string Destination, string Subject, string Body) {
try {
MimeMessage message = new MimeMessage();
message.From.Add(new MailboxAddress(EmailAddress.Split('@')[0], EmailAddress));
message.To.Add(new MailboxAddress(Destination.Split('@')[0], Destination));
message.Subject = Subject;
BodyBuilder messageBody = new BodyBuilder();
messageBody.HtmlBody = Body;
message.Body = messageBody.ToMessageBody();
using (SmtpClient client = new SmtpClient()) {
await client.ConnectAsync(EmailServer, EmailPort);
client.Authenticate(new SaslMechanismLogin(EmailAddress, EmailPassword));
string serverResponse = await client.SendAsync(message);
await client.DisconnectAsync(true);
return serverResponse;
}
} catch (Exception e) {
return "An Error Has Occurred Sending Email : " + e.ToString();
}
}
}
}