public JsonResult GetCandidateList(CandidateFilterData filterData, int page = 0, int rows = 10) { List <CandidateDetail> lstCandidates = CandidateService.GetCandidateSearchList(filterData); //Get candidates list here int pageIndex = Convert.ToInt32(page) - 1; int pageSize = rows; int totalRecords = lstCandidates.Count(); int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize); var data = lstCandidates.OrderBy(c => c.CreatedOn) .Skip(pageSize * (page - 1)) .Take(pageSize).ToList(); var jsonData = new { total = totalPages, page = page, records = totalRecords, rows = data }; return(Json(jsonData, JsonRequestBehavior.AllowGet)); }
public List <CandidateDetail> GetCandidateSearchList(CandidateFilterData filterData) { using (var conn = SqlConnectionFactory.CreateConnection()) { var sql = "SELECT CASE WHEN C.CandidateId IS NULL THEN NULL ELSE C.CandidateId END AS CandidateId" + ",CA.CandidateName, CA.CandidateEmail, CONVERT(DATE, CA.CreatedOn) AS CreatedOn, CA.ExpiryDate" + ",CASE WHEN C.CandidateId IS NULL THEN 'Not Started' ELSE 'In Progress' END AS[Status]" + " FROM [dbo].[CandidateAdmin] CA LEFT JOIN [dbo].[Candidate] C ON CA.CandidateAdminId = C.CandidateAdminId " + " WHERE " + " (@Name IS NULL OR CA.CandidateName LIKE '%' + @Name + '%') AND " + " (@EmailAddress IS NULL OR CA.CandidateEmail LIKE '%' + @EmailAddress + '%') AND " + " (@FromDate IS NULL OR @ToDate IS NULL OR CA.CreatedOn BETWEEN @FromDate AND @ToDate) "; var result = conn.Query <CandidateDetail>(sql, new { filterData.Name, filterData.EmailAddress, filterData.FromDate, filterData.ToDate }).ToList(); return(result); } }
public List <CandidateDetail> GetCandidateSearchList(CandidateFilterData filterData) { return(CandidateRepository.GetCandidateSearchList(filterData)); }