/// <summary> /// This function returns the job applcations for the given filters /// </summary> /// <param name="filters"></param> /// <returns></returns> public IEnumerable<JobApplication> GetJobApplications(JobApplicationFilter filters) { var jobApplications = new List<JobApplication>(); // setup the parameters SqlParameter[] parameters = { new SqlParameter("@RecordsPerPage", filters.RecordsPerPage), new SqlParameter("@PageNo", filters.CurrentPage), new SqlParameter("@JobId", filters.JobId), new SqlParameter("@ApplicationStatusId", filters.ApplicationStatusId), new SqlParameter("@CandidateId", filters.CandidateId), new SqlParameter("@JobApplicationIdsIn", filters.JobApplicationIdsIn), new SqlParameter("@SortBy", filters.SortBy), new SqlParameter("@NeedCandidateDetails", filters.NeedCandidateDetails), new SqlParameter("@NeedApplicationStatus", filters.NeedApplicationStatus), new SqlParameter("@NeedJobTitle", filters.NeedJobTitle) }; // setup the connection var conn = new Sql_DataAccess(_connString); var ds = conn.GetDataSetFromSP("RetrieveJobApplications", parameters); // iterate and return job applications if (ds != null && ds.Tables.Count > 0) { jobApplications = (from DataRow dr in ds.Tables[0].Rows select ExtractJobApplication(filters, dr)).ToList(); } return jobApplications; }
/// <summary> /// This function extracts the job applications /// </summary> /// <param name="filters"></param> /// <param name="dr"></param> /// <returns></returns> // ReSharper disable once FunctionComplexityOverflow private static JobApplication ExtractJobApplication(JobApplicationFilter filters, DataRow dr) { var application = new JobApplication { TotalCount = (int)dr["RECORDCOUNT"], JobApplicationId = (int)dr["JobApplicationId"], JobId = (int)dr["JobId"], ContactId = (int)dr["CandidateId"], ApplicationDate = (DateTime)dr["CreatedDate"], ApplicationStatusId = (int)dr["ApplicationStatusId"], InternalCandidate = (bool)dr["InternalCandidate"], AgentId = (int)dr["AgentId"], KqScore = (double)dr["KqScore"], LastUpdatedDate = (DateTime?)dr["LastUpdatedDate"], ReferrerId = (int)dr["ReferrerId"], ReferredBy = (dr["ReferredBy"] ?? "").ToString(), ReferringEmpNo = (dr["ReferringEmpNo"] ?? "").ToString(), UrlReferrer = (dr["UrlReferrer"] ?? "").ToString(), JobTitle = (filters.NeedJobTitle != null && filters.NeedJobTitle.Value) ? (dr["ApplicationJobTitle"] ?? "").ToString() : "", ApplicationStatus = (filters.NeedApplicationStatus != null && filters.NeedApplicationStatus.Value) ? (dr["StatusName"] ?? "").ToString() : "", Candidate = (filters.NeedCandidateDetails == null || filters.NeedCandidateDetails.Value) ? new Candidate { CandidateId = (int)dr["CandidateId"], Forename = (dr["ForeName"] ?? "").ToString(), Surname = (dr["SurName"] ?? "").ToString(), Title = (dr["Title"] ?? "").ToString(), JobTitle = (dr["JobTitle"] ?? "").ToString(), Employer = (dr["Employer"] ?? "").ToString(), Email = (dr["Email"] ?? "").ToString(), Mobile = (dr["Mobile"] ?? "").ToString(), RefId = dr["RefId"].ToString(), MinSalary = (int)dr["MinSalary"], MaxSalary = (int)dr["MaxSalary"], Rating = (int)dr["Rating"], Location = new Location { LocationId = (int)dr["LocationId"], LocationText = (dr["Location"] ?? "").ToString() }, Documents = new List<Document>() } : null, Documents = new List<Document>() }; //applicaion documents // other job related docs var otherJobRelatedDoc = Documents.GetDocumentByDocType(new[] { 4, 5 }, application.ContactId, application.JobId); if (application.Candidate != null) { //profile image var profilePic = Documents.GetDocumentByDocType(new[] { 3 }, application.ContactId); application.Candidate.Documents.AddRange(profilePic); application.Candidate.Documents.AddRange(otherJobRelatedDoc); } else { application.Documents.AddRange(otherJobRelatedDoc); } return application; }
public IEnumerable<JobApplication> GetJobApplicationsPost(JobApplicationFilter filters) { // http://client.genie.netsark.local/api/JobApplication/GetJobApplicationsPost return new JobApplications().GetJobApplications(filters); }