public ActionResult ApplyMultiple(int[] ids, [System.Web.Http.FromBody] ApplyJobPost model) { var header = new JobApplicationHeader(); header.ApplicationDate = DateTime.Now; header.FirstName = model.FirstName; header.LastName = model.LastName; header.EmailAddress = model.EmailAddress; header.Details = new List <JobApplicationDetail>(); for (int i = 0; i < ids.Length; i++) { header.Details.Add(new JobApplicationDetail { JobPostId = ids[i] }); } SaveApplicationFiles(model, header); db.JobApplicationHeaders.Add(header); db.SaveChanges(); foreach (var jobPostId in ids) { var jobPost = db.JobPosts.Include(x => x.Employer.ApplicationUser).Single(x => x.Id == jobPostId); var client = new RestClient(); client.BaseUrl = new Uri("https://api.mailgun.net/v3"); client.Authenticator = new HttpBasicAuthenticator("api", ConfigurationManager.AppSettings["mailgunApiKey"]); RestRequest request = new RestRequest(); request.AddParameter("domain", "jp.irdocs.net", ParameterType.UrlSegment); request.Resource = "{domain}/messages"; request.AddParameter("from", "*****@*****.**"); if (jobPost.Employer.ApplicationUser == null) //system generated employer { request.AddParameter("to", "*****@*****.**"); } else { request.AddParameter("to", jobPost.Employer.ApplicationUser.Email); } request.AddParameter("subject", "Application for \"" + jobPost.Name + "\""); request.AddParameter("html", "<div>Someone has recently applied on this job:<p><strong>Programmer </strong><a href=" + Request.Url.Authority + "/jobposts" + ">View My Job Posts</a></p></div>"); request.Method = Method.POST; client.Execute(request); } return(new EmptyResult()); }
public ActionResult Apply(int id, [System.Web.Http.FromBody] ApplyJobPost model) { var header = new JobApplicationHeader(); header.ApplicationDate = DateTime.Now; header.EmailAddress = model.EmailAddress; header.Details = new List <JobApplicationDetail>(); header.Details.Add(new JobApplicationDetail { JobPostId = id }); SaveApplicationFiles(model, header); db.JobApplicationHeaders.Add(header); db.SaveChanges(); return(new EmptyResult()); //todo: mailgun }
private void SaveApplicationFiles(ApplyJobPost model, JobApplicationHeader header) { var appDataPath = Server.MapPath("~/App_Data/application_files"); if (model.CV != null) { var cvSystemName = Guid.NewGuid().ToString() + ".dat"; model.CV.SaveAs(appDataPath + "/" + cvSystemName); header.CvSystemFileName = cvSystemName; header.CvFileName = Path.GetFileName(model.CV.FileName); } if (model.CoverLetter != null) { var coverLetterSystemFileName = Guid.NewGuid().ToString() + ".dat"; model.CoverLetter.SaveAs(appDataPath + "/" + coverLetterSystemFileName); header.CoverLetterSystemFileName = coverLetterSystemFileName; header.CoverLetterFileName = Path.GetFileName(model.CoverLetter.FileName); } }