diff --git a/ToDo.yaml b/ToDo.yaml
index 75ac676..011281a 100755
--- a/ToDo.yaml
+++ b/ToDo.yaml
@@ -19,6 +19,7 @@ Server:
CompanyEmailVerify:
Need to update notification email
+ Create page to notify cx that their work email has been verified
Client:
jobs/editor:
diff --git a/database/mistox.sql b/database/mistox.sql
index bcf7be0..dee3b06 100755
--- a/database/mistox.sql
+++ b/database/mistox.sql
@@ -146,6 +146,8 @@ CREATE TABLE IF NOT EXISTS `Company` (
CREATE TABLE IF NOT EXISTS `Employee` (
`ID` int NOT NULL AUTO_INCREMENT,
`AccountID` int NOT NULL,
+ `AccountName` varchar(60) NOT NULL,
+ `AccountEmail` varchar(255) NOT NULL,
`CompanyID` int NOT NULL,
PRIMARY KEY (`ID`),
FOREIGN KEY (`CompanyID`) REFERENCES `Company`(`ID`) ON DELETE CASCADE
diff --git a/src/Client/src/app/models/Company.ts b/src/Client/src/app/models/Company.ts
index ae79789..a2e4a6a 100644
--- a/src/Client/src/app/models/Company.ts
+++ b/src/Client/src/app/models/Company.ts
@@ -13,10 +13,4 @@ export class Company {
public stateOrRegion: string = "";
public city: string = "";
public description: string = "";
-}
-
-export class Employee {
- public id: number | null = null;
- public accountID: number = 0;
- public company: Company = new Company;
}
\ No newline at end of file
diff --git a/src/Client/src/app/models/Employee.ts b/src/Client/src/app/models/Employee.ts
new file mode 100644
index 0000000..b62a5ff
--- /dev/null
+++ b/src/Client/src/app/models/Employee.ts
@@ -0,0 +1,9 @@
+import { Company } from "./Company";
+
+export class Employee {
+ public id: number | null = null;
+ public accountID: number = 0;
+ public accountName: string = "";
+ public accountEmail: string = "";
+ public company: Company = new Company;
+}
\ No newline at end of file
diff --git a/src/Client/src/app/pages/main/company/company.component.html b/src/Client/src/app/pages/main/company/company.component.html
index 4ced237..086f32e 100644
--- a/src/Client/src/app/pages/main/company/company.component.html
+++ b/src/Client/src/app/pages/main/company/company.component.html
@@ -43,7 +43,15 @@
Employees
-
+ @for (listing of CompEmployees; track listing.id) {
+
+
+
{{ listing.accountName }}
+
+
+
+
+ }
diff --git a/src/Client/src/app/pages/main/company/company.component.ts b/src/Client/src/app/pages/main/company/company.component.ts
index 015c90d..d2955c9 100644
--- a/src/Client/src/app/pages/main/company/company.component.ts
+++ b/src/Client/src/app/pages/main/company/company.component.ts
@@ -5,8 +5,9 @@ import { Router, ActivatedRoute, RouterModule } from '@angular/router';
import { Title } from '@angular/platform-browser';
import { CommonModule } from '@angular/common';
import { Authentication } from 'app/services/Authentication';
-import { Company, Employee } from 'app/models/Company';
+import { Company } from 'app/models/Company';
import { JobListing } from 'app/models/JobListing';
+import { Employee } from 'app/models/Employee';
@Component({
selector: 'main-company',
@@ -20,6 +21,7 @@ export class CompanyComponent {
public Employers: Employee[] = [];
public Comp: Company | null = null;
+ public CompEmployees: Employee[] = [];
public Desc: string[] = [];
public List: JobListing[] = [];
@@ -39,7 +41,6 @@ export class CompanyComponent {
this.ErrorMsg = err.error;
}
});
-
};
changeSelectedCompany(companyID: number){
@@ -61,6 +62,15 @@ export class CompanyComponent {
this.ErrorMsg = err.error;
}
});
+
+ this.http.get("api/employee/" + companyID).subscribe({
+ next: data => {
+ this.CompEmployees = data;
+ },
+ error: err => {
+ this.ErrorMsg = err.error;
+ }
+ });
}
RemoveJobListing( JobListingID: number ){
diff --git a/src/Client/src/app/pages/main/jobs/editor/jobeditor.component.ts b/src/Client/src/app/pages/main/jobs/editor/jobeditor.component.ts
index b5522dc..6033f17 100644
--- a/src/Client/src/app/pages/main/jobs/editor/jobeditor.component.ts
+++ b/src/Client/src/app/pages/main/jobs/editor/jobeditor.component.ts
@@ -6,7 +6,6 @@ import { Title } from '@angular/platform-browser';
import { CommonModule } from '@angular/common';
import { JobListing } from 'app/models/JobListing';
import { Authentication } from 'app/services/Authentication';
-import { Company, Employee } from 'app/models/Company';
@Component({
selector: 'main-jobs-editor',
@@ -85,35 +84,20 @@ export class JobEditorComponent {
this.updateUI();
}
- PostNewJob(jobListing: JobListing){
- jobListing.companyID = this.modeID;
- this.http.post("api/joblisting", jobListing).subscribe({
- next: data => {
- this.router.navigate([""]);
- },
- error: err => {
- this.ErrorMsg = err.error;
- }
- });
- }
-
- PostEditJob(jobListing: JobListing){
- this.http.post("api/joblisting", jobListing).subscribe({
- next: data => {
- this.router.navigate([""]);
- },
- error: err => {
- this.ErrorMsg = err.error;
- }
- });
- }
-
- SubmitForm(job: JobListing){
+ SubmitForm(jobListing: JobListing){
if (this.mode === "new"){
- this.PostNewJob(job);
- }else if (this.mode === "edit"){
- this.PostEditJob(job);
+ jobListing.companyID = this.modeID;
+ } else if (this.mode === "edit"){
+ jobListing.id = this.modeID;
}
+ this.http.post("api/joblisting", jobListing).subscribe({
+ next: data => {
+ this.router.navigate([""]);
+ },
+ error: err => {
+ this.ErrorMsg = err.error;
+ }
+ });
}
}
\ No newline at end of file
diff --git a/src/Client/src/app/pages/main/jobs/jobs.component.ts b/src/Client/src/app/pages/main/jobs/jobs.component.ts
index 6f1d451..ac6d208 100644
--- a/src/Client/src/app/pages/main/jobs/jobs.component.ts
+++ b/src/Client/src/app/pages/main/jobs/jobs.component.ts
@@ -39,15 +39,4 @@ export class JobsComponent {
};
- RemoveJobListing( JobListingID: number ){
- this.http.delete("api/joblisting?JobListingID=" + JobListingID).subscribe({
- next: data => {
- window.location.reload();
- },
- error: err => {
- this.ErrorMsg = err.error;
- }
- });
- }
-
}
\ No newline at end of file
diff --git a/src/Server/Controllers/AuthenticationController.cs b/src/Server/Controllers/AuthenticationController.cs
index 96180d4..7fe6825 100755
--- a/src/Server/Controllers/AuthenticationController.cs
+++ b/src/Server/Controllers/AuthenticationController.cs
@@ -12,7 +12,7 @@ namespace BoredCareers.Controllers {
public AuthenticationController(DatabaseService db) : base(db) { }
- [HttpPost("loginState")]
+ [HttpPost("loginstate")]
public ActionResult LoginState() {
if (isLoggedIn()) {
return Ok(getLoggedInUser());
diff --git a/src/Server/Controllers/CompanyController.cs b/src/Server/Controllers/CompanyController.cs
index c37edba..7838f2c 100644
--- a/src/Server/Controllers/CompanyController.cs
+++ b/src/Server/Controllers/CompanyController.cs
@@ -35,8 +35,12 @@ namespace BoredCareers.Controllers {
Company? test = await _databaseService.GetCompany(Convert.ToInt32(company.ID));
if (test == null) {
company.ID = await _databaseService.SetCompany(company);
+
+
await _databaseService.SetEmployee(new Employee() {
AccountID = getLoggedInUserID(),
+ AccountName = getLoggedInUser().UserName,
+ AccountEmail = getLoggedInUser().Email,
Company = company
});
return Ok();
@@ -66,7 +70,7 @@ namespace BoredCareers.Controllers {
}
[HttpGet("sendverifyemail")]
- public async Task> SendVerify([FromQuery] int CompanyID) {
+ public async Task SendVerify([FromQuery] int CompanyID) {
try {
string key = "v" + CompanyID;
// Stop from sending multiple emails quickly
@@ -99,7 +103,7 @@ namespace BoredCareers.Controllers {
}
[HttpGet("verifyemail")]
- public async Task> VerifyEmail([FromQuery] int CompanyID, [FromQuery] string EmailToken) {
+ public async Task VerifyEmail([FromQuery] int CompanyID, [FromQuery] string EmailToken) {
try {
Company? test = await _databaseService.GetCompany(CompanyID);
if (test != null) {
diff --git a/src/Server/Entities/Company.cs b/src/Server/Entities/Company.cs
index f30d2e1..eb942b7 100644
--- a/src/Server/Entities/Company.cs
+++ b/src/Server/Entities/Company.cs
@@ -1,5 +1,4 @@
namespace BoredCareers.Entities {
-
public class Company {
public int? ID { get; set; } // PK
public string Name { get; set; } = "";
@@ -17,11 +16,4 @@ namespace BoredCareers.Entities {
public string City { get; set; } = "";
public string Description { get; set; } = "";
}
-
- public class Employee {
- public int? ID { get; set; } // PK
- public int AccountID { get; set; } // FK
- public Company Company { get; set; } = new Company(); // FK
- }
-
}
\ No newline at end of file
diff --git a/src/Server/Entities/Employee.cs b/src/Server/Entities/Employee.cs
new file mode 100644
index 0000000..3a8c62d
--- /dev/null
+++ b/src/Server/Entities/Employee.cs
@@ -0,0 +1,9 @@
+namespace BoredCareers.Entities {
+ public class Employee {
+ public int? ID { get; set; } // PK
+ public int AccountID { get; set; }
+ public string AccountName { get; set; } = "";
+ public string AccountEmail { get; set; } = "";
+ public Company Company { get; set; } = new Company(); // FK
+ }
+}
\ No newline at end of file
diff --git a/src/Server/Entities/JobListing.cs b/src/Server/Entities/JobListing.cs
index 92089e0..f70a734 100644
--- a/src/Server/Entities/JobListing.cs
+++ b/src/Server/Entities/JobListing.cs
@@ -1,5 +1,4 @@
namespace BoredCareers.Entities {
-
public class JobListing {
public int? ID { get; set; } // PK
public int CompanyID { get; set; } // FK
@@ -25,5 +24,4 @@ namespace BoredCareers.Entities {
public string Name { get; set; } = "";
public string Description { get; set; } = "";
}
-
}
\ No newline at end of file
diff --git a/src/Server/Entities/Resume.cs b/src/Server/Entities/Resume.cs
index bef81bf..b093c3d 100644
--- a/src/Server/Entities/Resume.cs
+++ b/src/Server/Entities/Resume.cs
@@ -1,5 +1,4 @@
namespace BoredCareers.Entities {
-
public class Resume {
public int? ID { get; set; } // PK
public int AccountID { get; set; } // FK
@@ -106,5 +105,4 @@ namespace BoredCareers.Entities {
public string URL { get; set; } = "";
public string Description { get; set; } = "";
}
-
}
\ No newline at end of file
diff --git a/src/Server/Services/DatabaseService/Employee.cs b/src/Server/Services/DatabaseService/Employee.cs
index 8c35c9c..0e96563 100644
--- a/src/Server/Services/DatabaseService/Employee.cs
+++ b/src/Server/Services/DatabaseService/Employee.cs
@@ -25,6 +25,8 @@ namespace BoredCareers.Services.DatabaseService {
while( await reader.ReadAsync() ) {
int _id = reader.GetInt32("ID");
int _accountid = reader.GetInt32("AccountID");
+ string _accountname = reader.GetString("AccountName");
+ string _accountemail = reader.GetString("AccountEmail");
int _companyid = reader.GetInt32("CompanyID");
string _name = reader.GetString("Name");
string _email = reader.GetString("Email");
@@ -42,6 +44,8 @@ namespace BoredCareers.Services.DatabaseService {
employee = new Employee() {
ID = _id,
AccountID = _accountid,
+ AccountName = _accountname,
+ AccountEmail = _accountemail,
Company = new Company {
ID = _companyid,
Name = _name,
@@ -82,6 +86,8 @@ namespace BoredCareers.Services.DatabaseService {
while (await reader.ReadAsync()) {
int _id = reader.GetInt32("ID");
int _accountid = reader.GetInt32("AccountID");
+ string _accountname = reader.GetString("AccountName");
+ string _accountemail = reader.GetString("AccountEmail");
int _companyid = reader.GetInt32("CompanyID");
string _name = reader.GetString("Name");
string _email = reader.GetString("Email");
@@ -99,6 +105,8 @@ namespace BoredCareers.Services.DatabaseService {
employees.Add(new Employee() {
ID = _id,
AccountID = _accountid,
+ AccountName = _accountname,
+ AccountEmail = _accountemail,
Company = new Company {
ID = _companyid,
Name = _name,
@@ -139,6 +147,8 @@ namespace BoredCareers.Services.DatabaseService {
while (await reader.ReadAsync()) {
int _id = reader.GetInt32("ID");
int _accountid = reader.GetInt32("AccountID");
+ string _accountname = reader.GetString("AccountName");
+ string _accountemail = reader.GetString("AccountEmail");
int _companyid = reader.GetInt32("CompanyID");
string _name = reader.GetString("Name");
string _email = reader.GetString("Email");
@@ -156,6 +166,8 @@ namespace BoredCareers.Services.DatabaseService {
employees.Add(new Employee() {
ID = _id,
AccountID = _accountid,
+ AccountName = _accountname,
+ AccountEmail = _accountemail,
Company = new Company {
ID = _companyid,
Name = _name,
@@ -184,9 +196,9 @@ namespace BoredCareers.Services.DatabaseService {
string command = @"
INSERT INTO Employee
- (ID,AccountID,CompanyID)
+ (ID,AccountID,AccountName,AccountEmail,CompanyID)
VALUES
- (@ID,@AccountID,@CompanyID)
+ (@ID,@AccountID,@AccountName,@AccountEmail,@CompanyID)
ON DUPLICATE KEY UPDATE
AccountID = @AccountID,
CompanyID = @CompanyID;
@@ -195,6 +207,8 @@ namespace BoredCareers.Services.DatabaseService {
MySqlCommand cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@ID", employee.ID);
cmd.Parameters.AddWithValue("@AccountID", employee.AccountID);
+ cmd.Parameters.AddWithValue("@AccountName", employee.AccountName);
+ cmd.Parameters.AddWithValue("@AccountEmail", employee.AccountEmail);
cmd.Parameters.AddWithValue("@CompanyID", employee.Company.ID);
await cmd.ExecuteNonQueryAsync();