public IHttpActionResult deleteApplication(string key, int id)
        {
            if (key != AUTHKEY)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }


            JobApplicationsModel targetJobApplicationModel = db.JobApplications.Find(id);

            // Check that the type exists in the database
            if (targetJobApplicationModel == null)
            {
                return(NotFound());
            }


            try
            {
                // Delete the cover letter and resume attached to the job application if it exists
                if (File.Exists(targetJobApplicationModel.CvPath))
                {
                    File.Delete(targetJobApplicationModel.CvPath);
                }

                db.JobApplications.Remove(targetJobApplicationModel);
                db.SaveChanges();
                return(StatusCode(HttpStatusCode.NoContent));
            }
            catch (DbUpdateConcurrencyException)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }
        }
        public IHttpActionResult ApplicationDetails(string key, int id)
        {
            if (key != AUTHKEY)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }


            JobApplicationsModel applicationModel = new JobApplicationsModel();

            applicationModel = db.JobApplications.Find(id);

            JobApplicationViewModel applicationViewModel = new JobApplicationViewModel();

            applicationViewModel.ApplicationId      = applicationModel.ApplicationId;
            applicationViewModel.PostingId          = applicationModel.PostingId;
            applicationViewModel.ApplicationDate    = applicationModel.ApplicationDate;
            applicationViewModel.ApplicantFirstName = applicationModel.ApplicantFirstName;
            applicationViewModel.ApplicantLastName  = applicationModel.ApplicantLastName;
            applicationViewModel.ApplicantEmail     = applicationModel.ApplicantEmail;
            applicationViewModel.ApplicantPhone     = applicationModel.ApplicantPhone;
            applicationViewModel.CvPath             = applicationModel.CvPath;


            return(Ok(applicationViewModel));
        }
        public IHttpActionResult createJobApplication([FromBody] JobApplicationViewModel newApplicationViewModel, string key)
        {
            if (key != AUTHKEY)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }


            //Debug.WriteLine(NewAd.Title);
            //Will Validate according to data annotations specified on model
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            JobApplicationsModel newJobApplication = new JobApplicationsModel
            {
                ApplicantFirstName = newApplicationViewModel.ApplicantFirstName,
                ApplicantLastName  = newApplicationViewModel.ApplicantLastName,
                ApplicantEmail     = newApplicationViewModel.ApplicantEmail,
                ApplicantPhone     = newApplicationViewModel.ApplicantPhone,
                ApplicationDate    = newApplicationViewModel.ApplicationDate,
                PostingId          = newApplicationViewModel.PostingId,
                CvPath             = newApplicationViewModel.CvPath
            };


            try
            {
                db.JobApplications.Add(newJobApplication);
                db.SaveChanges();

                return(Ok());
            }
            catch
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }
        }
        public IHttpActionResult editApplication([FromBody] JobApplicationViewModel editedApplicationViewModel, string key)
        {
            if (key != AUTHKEY)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }


            //Will Validate according to data annotations specified on model
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            JobApplicationsModel targetJobApplicationModel = db.JobApplications.Find(editedApplicationViewModel.ApplicationId);


            targetJobApplicationModel.ApplicantFirstName = editedApplicationViewModel.ApplicantFirstName;
            targetJobApplicationModel.ApplicantLastName  = editedApplicationViewModel.ApplicantLastName;
            targetJobApplicationModel.ApplicantEmail     = editedApplicationViewModel.ApplicantEmail;
            targetJobApplicationModel.ApplicantPhone     = editedApplicationViewModel.ApplicantPhone;
            targetJobApplicationModel.ApplicationDate    = editedApplicationViewModel.ApplicationDate;
            targetJobApplicationModel.PostingId          = editedApplicationViewModel.PostingId;
            targetJobApplicationModel.CvPath             = editedApplicationViewModel.CvPath;


            try
            {
                db.SaveChanges();
                return(StatusCode(HttpStatusCode.NoContent));
            }
            catch (DbUpdateConcurrencyException)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }
        }