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