예제 #1
0
        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());
        }
예제 #2
0
        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
        }
예제 #3
0
        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);
            }
        }