From 0728c7f3260b79c9fa4a852ada886f7404b2bc3a Mon Sep 17 00:00:00 2001 From: Gregory Rudolph Date: Mon, 2 Aug 2021 18:57:47 -0400 Subject: [PATCH] Generate Cover Letter text using UserData and posting --- Pages/Index.cshtml | 22 +++++++++++++++------- Pages/Index.cshtml.cs | 16 ++++++++++------ Posting.cs | 13 ++++++++++++- UserData.cs | 2 ++ 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/Pages/Index.cshtml b/Pages/Index.cshtml index c0182be..7c10d38 100644 --- a/Pages/Index.cshtml +++ b/Pages/Index.cshtml @@ -4,6 +4,7 @@ ViewData["Title"] = "Vacancy Submitter"; } +
@@ -11,7 +12,6 @@
Start Here
-
@@ -32,7 +32,6 @@

-
@@ -43,8 +42,7 @@

Cover Letter

- +
\ No newline at end of file diff --git a/Pages/Index.cshtml.cs b/Pages/Index.cshtml.cs index b0c868c..9e1d354 100644 --- a/Pages/Index.cshtml.cs +++ b/Pages/Index.cshtml.cs @@ -12,6 +12,7 @@ namespace StateJobsNYSubmit.Pages private PrivateData p = new PrivateData(); public UserData userData; public string Posting_ID {get; set;} + public string CoverLetter {get; set;} public Posting posting = null; public IndexModel(ILogger logger) { @@ -30,9 +31,8 @@ namespace StateJobsNYSubmit.Pages string test = p.DecryptString(cookieValue); userData = JsonConvert.DeserializeObject(test); userData.visitCounter++; + this.CoverLetter = userData.coverLetter; } - Response.Cookies.Append("PrivateData", p.EncryptString(JsonConvert.SerializeObject(userData))); - Console.WriteLine($"Value of counter: {userData.visitCounter}"); } public void OnGet(string vacancyID) { @@ -40,22 +40,26 @@ namespace StateJobsNYSubmit.Pages if (vacancyID != null && !vacancyID.Trim().Equals("")) { posting = new Posting(vacancyID); this.Posting_ID = vacancyID; - } else { - Console.WriteLine($"Unable to get Posting ID from Get Request URL."); - } - + this.CoverLetter = userData.coverLetter; + } + Response.Cookies.Append("PrivateData", p.EncryptString(JsonConvert.SerializeObject(userData))); } public void OnPost() { GetUserData(); string vacancyID = Request.Form["posting_id"]; + string coverLetterFormat = Request.Form["CoverLetter"]; + userData.coverLetter = coverLetterFormat; if (vacancyID != null && !vacancyID.Trim().Equals("")) { posting = new Posting(vacancyID); + this.CoverLetter = posting.GenerateLetter(coverLetterFormat); + this.Posting_ID = vacancyID; } else { Console.WriteLine($"Unable to get Posting ID from form."); } + Response.Cookies.Append("PrivateData", p.EncryptString(JsonConvert.SerializeObject(userData))); } } } diff --git a/Posting.cs b/Posting.cs index 37581d5..4ac172c 100644 --- a/Posting.cs +++ b/Posting.cs @@ -38,7 +38,6 @@ public class Posting public Posting(string id) { string fullUrl = "https://statejobs.ny.gov/employees/vacancyDetailsPrint.cfm?id=" + id; - Console.WriteLine(fullUrl); HtmlWeb web = new HtmlWeb(); var htmlDoc = web.Load(fullUrl); // extracting all links @@ -84,7 +83,19 @@ public class Posting } i++; } + Regex boxRegex = new Regex(@"(Box \d+)"); + this.BoxNumber = boxRegex.Matches(this.NotesOnApplying)[0].Value.Replace("Box ", ""); this.BargainingUnit = this.BargainingUnit.Replace("&", "&"); this.VacancyID = id; } + + public string GenerateLetter(string s) { + string ret = "" + s; + ret = ret.Replace("$name", this.ContactName); + ret = ret.Replace("$vacancy", this.VacancyID); + ret = ret.Replace("$title", this.Title); + ret = ret.Replace("$box", this.BoxNumber); + + return ret; + } } diff --git a/UserData.cs b/UserData.cs index 26e7f37..99d7cd3 100644 --- a/UserData.cs +++ b/UserData.cs @@ -4,9 +4,11 @@ public class UserData { public string email { get; set; } + public string name {get; set;} public string smtpHost { get; set; } public List skillOptions { get; set; } public string identifier { get; set; } public int visitCounter { get; set;} + public string coverLetter { get; set; } }