/// <summary> /// This function gets the clients and contacts for the given filters /// </summary> /// <param name="filters"></param> /// <returns></returns> public IEnumerable<ClientAndContact> GetClientsAndContacts(ClientContactFilter filters) { var parser = new FullTextQueryParser(true); filters.Keyword = parser.ParseQuery(filters.Keyword); var clientsAndContacts = new List<ClientAndContact>(); // setup the parameters SqlParameter[] parameters = { new SqlParameter("@RecordsPerPage", filters.RecordsPerPage), new SqlParameter("@PageNo", filters.CurrentPage), new SqlParameter("@ConsultantId", filters.ConsultantId), new SqlParameter("@UserId", filters.UserId), new SqlParameter("@ClientId", filters.ClientId ), new SqlParameter("@ContactStatuses", filters.ContactStatusIds), new SqlParameter("@ClientStatuses", filters.ClientStatusIds), new SqlParameter("@Client", filters.Client), new SqlParameter("@Forename", filters.Forename), new SqlParameter("@Surname", filters.Surname), new SqlParameter("@Email", filters.Email), new SqlParameter("@JobTitle", filters.JobTitle), new SqlParameter("@Employer", filters.Employer), new SqlParameter("@Sectors", filters.Sectors), new SqlParameter("@LocationId", filters.Locations), new SqlParameter("@Qualifications", filters.Qualifications), new SqlParameter("@Skills", filters.Skills), new SqlParameter("@MinSalary", filters.MinSalary), new SqlParameter("@MaxSalary", filters.MaxSalary), new SqlParameter("@Keyword", filters.Keyword), new SqlParameter("@SortBy", filters.SortBy), new SqlParameter("@Deleted" ,filters.Deleted), new SqlParameter("@LastUpdatedDateFrom" ,filters.LastUpdatedDateFrom), new SqlParameter("@LastUpdatedDateTo", filters.LastUpdatedDateTo), new SqlParameter("@VacancyType" ,filters.VacancyType), new SqlParameter("@GeneralCandidatesFolderId" ,filters.GeneralCandidatesFolderId), new SqlParameter("@Hours" ,filters.Hours), new SqlParameter("@GroupId" ,filters.GroupId), new SqlParameter("@Miles" ,filters.LocationRadius), new SqlParameter("@RetrieveType",filters.RetrieveType) }; // setup the connection var conn = new Sql_DataAccess(_connString); var ds = conn.GetDataSetFromSP("RetrieveClientContacts", parameters); // iterate and return clients if (ds != null && ds.Tables.Count > 0) { clientsAndContacts = (from DataRow dr in ds.Tables[0].Rows select ExtractClientContact(dr)).ToList(); } return clientsAndContacts; }
/// <summary> /// This function gets the candidates for the given filters /// </summary> /// <param name="filters"></param> /// <returns></returns> public IEnumerable<CandidateBasic> GetCandidatesBasic(CandidateFilter filters) { // cv keyword parser var parser = new FullTextQueryParser(true); filters.Keyword = parser.ParseQuery(filters.Keyword); var candidates = new List<CandidateBasic>(); // setup the parameters SqlParameter[] parameters = { new SqlParameter("@RecordsPerPage", filters.RecordsPerPage), new SqlParameter("@PageNo", filters.CurrentPage), new SqlParameter("@ClientId", filters.ClientId ), new SqlParameter("@Forename", filters.Forename), new SqlParameter("@Surname", filters.Surname), new SqlParameter("@Email", filters.Email), new SqlParameter("@JobTitle", filters.JobTitle), new SqlParameter("@Employer", filters.Employer), new SqlParameter("@Sectors", filters.Sectors), new SqlParameter("@LocationId", filters.Locations), new SqlParameter("@MinSalary", filters.MinSalary), new SqlParameter("@MaxSalary", filters.MaxSalary), new SqlParameter("@Keyword", filters.Keyword), new SqlParameter("@SortBy", filters.SortBy), new SqlParameter("@Deleted" ,filters.Deleted), new SqlParameter("@LastUpdatedDateFrom" ,filters.LastUpdatedDateFrom), new SqlParameter("@LastUpdatedDateTo", filters.LastUpdatedDateTo), new SqlParameter("@VacancyType" ,filters.VacancyType), new SqlParameter("@Hours" ,filters.Hours), new SqlParameter("@GroupId" ,filters.GroupId), new SqlParameter("@Miles" ,filters.LocationRadius) }; // setup the connection var conn = new Sql_DataAccess(_connString); var ds = conn.GetDataSetFromSP("RetrieveCandidates", parameters); // iterate and return candidate if (ds != null && ds.Tables.Count > 0) { candidates = (from DataRow dr in ds.Tables[0].Rows select ExtractCandidate(dr)).ToList(); } return candidates; }
/// <summary> /// This function get the selected contact/client objects for popup /// </summary> /// <param name="selectedClientIds"></param> /// <param name="filters"></param> /// <param name="selectedContactIds"></param> /// <returns></returns> public IEnumerable<ContactClient> GetSelectedClientContactsForPoup(string selectedContactIds, string selectedClientIds, ClientContactFilter filters) { // init the response var result = new List<ContactClient>(); // setup the parameters SqlParameter[] parameters; if (string.IsNullOrEmpty(selectedContactIds) && string.IsNullOrEmpty(selectedClientIds)) { var parser = new FullTextQueryParser(true); filters.Keyword = parser.ParseQuery(filters.Keyword); parameters = new[] { new SqlParameter("@RecordsPerPage", filters.RecordsPerPage), new SqlParameter("@PageNo", filters.CurrentPage), new SqlParameter("@ConsultantId", filters.ConsultantId), new SqlParameter("@UserId", filters.UserId), new SqlParameter("@ClientId", filters.ClientId ), new SqlParameter("@ContactStatuses", filters.ContactStatusIds), new SqlParameter("@ClientStatuses", filters.ClientStatusIds), new SqlParameter("@Client", filters.Client), new SqlParameter("@Forename", filters.Forename), new SqlParameter("@Surname", filters.Surname), new SqlParameter("@Email", filters.Email), new SqlParameter("@JobTitle", filters.JobTitle), new SqlParameter("@Employer", filters.Employer), new SqlParameter("@Sectors", filters.Sectors), new SqlParameter("@LocationId", filters.Locations), new SqlParameter("@Qualifications", filters.Qualifications), new SqlParameter("@Skills", filters.Skills), new SqlParameter("@MinSalary", filters.MinSalary), new SqlParameter("@MaxSalary", filters.MaxSalary), new SqlParameter("@Keyword", filters.Keyword), new SqlParameter("@SortBy", filters.SortBy), new SqlParameter("@Deleted" ,filters.Deleted), new SqlParameter("@LastUpdatedDateFrom" ,filters.LastUpdatedDateFrom), new SqlParameter("@LastUpdatedDateTo", filters.LastUpdatedDateTo), new SqlParameter("@VacancyType" ,filters.VacancyType), new SqlParameter("@Hours" ,filters.Hours), new SqlParameter("@GroupId" ,filters.GroupId), new SqlParameter("@Miles" ,filters.LocationRadius), new SqlParameter("@RetrieveType",filters.RetrieveType) }; } else { //assume that you dont use the filters, if you send the client ids or contacts ids parameters = new[] { new SqlParameter("@RetrieveType",filters.RetrieveType), new SqlParameter("@CandidateIdsIn", string.IsNullOrEmpty(selectedContactIds) ? "" : selectedContactIds ), new SqlParameter("@ClientIdsIn", string.IsNullOrEmpty(selectedClientIds) ? "" : selectedClientIds ) }; } // setup the connection var conn = new Sql_DataAccess(_connString); var ds = conn.GetDataSetFromSP("RetrieveClientContactsForPopup", parameters); // iterate and return clients if (ds != null && ds.Tables.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { var obj = ExtractClientOrContact(dr); var contact = obj as Candidate; if (contact != null) result.Add(new ContactClient { ClientOrContact = contact, IsContact = true }); else { //client found var client = obj as Client; if (client != null) result.Add(new ContactClient { ClientOrContact = client, IsContact = false }); } } } return result; }