working #38
@@ -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
@@ -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` (
|
||||
|
||||
@@ -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("/");
|
||||
}
|
||||
|
||||
@@ -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,23 +20,27 @@ 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 );
|
||||
public async Task<string> Send(string Destination, string Subject, string Body) {
|
||||
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 ) {
|
||||
return "An Error Has Occurred Sending Email : " + e.ToString();
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user