public PagedList <Booking> SearchBookingDetails(PagingParameter pagingParameter, SearchCommonParamters searchCommonParamters) { var data = _unitOfWork.BookingRepository.SearchBookingDetails(pagingParameter, searchCommonParamters); return(data); }
public PagedList <CRMPartner> SearchPartnerDetails(PagingParameter pagingParameter, SearchCommonParamters searchCommonParamters) { var data = _unitOfWork.PartnerInfoPubFacingRepository.SearchPartnerDetails(pagingParameter, searchCommonParamters); return(data); }
// NOTE: This should not be part of public facing repository. Create a seprate repo for CRM partner public PagedList <CRMPartner> SearchPartnerDetails(PagingParameter pagingParameter, SearchCommonParamters searchCommonParamters) { // Enable this if you dont want full dependent data but make sure mapping has to be done in choice profiler // var partnerSearchQuery = GetCrmPartnerQueryable(); // Enable this if you want only booking fields no dependent data var partnerSearchQuery = DkbsContext.CRMPartner.AsQueryable(); //CustomerName is PartnerName if (!string.IsNullOrWhiteSpace(searchCommonParamters.CustomerName)) { var customer = DkbsContext.CRMPartner .Where(x => x.PartnerName == searchCommonParamters.CustomerName); partnerSearchQuery = partnerSearchQuery.Where(x => customer.Any(a => a.CRMPartnerId == x.CRMPartnerId)); } if (searchCommonParamters.CreatedDateFrom != null) { partnerSearchQuery = partnerSearchQuery.Where(x => x.CreatedDate >= searchCommonParamters.CreatedDateFrom).AsQueryable(); } if (searchCommonParamters.CreatedDateTo != null) { partnerSearchQuery = partnerSearchQuery.Where(x => x.CreatedDate <= searchCommonParamters.CreatedDateTo); } if (!string.IsNullOrWhiteSpace(searchCommonParamters.SearchPhrase)) { if (!string.IsNullOrWhiteSpace(searchCommonParamters.SearchType) && searchCommonParamters.SearchType.ToLower() == "equal") { partnerSearchQuery = partnerSearchQuery.Where(x => searchCommonParamters.SearchPhrase == x.CRMPartnerId.ToString()); } else { // This contains make no sence : Improve the logic as per buisness rule later partnerSearchQuery = partnerSearchQuery.Where(x => searchCommonParamters.SearchPhrase.Contains(x.CRMPartnerId.ToString())); } } var res = PagedList <CRMPartner> .Create(partnerSearchQuery, pagingParameter.PageNumber, pagingParameter.PageSize); return(res); }
public ActionResult <CRMPartnerDTO> SearchPartnerDetails([FromQuery] PagingParameter pagingParameter, [FromBody] SearchCommonParamters searchCommonParamters) { var query = _choiceRepoistory.SearchPartnerDetails(pagingParameter, searchCommonParamters); // Move it to seprate class var pageMetaData = new { totalCount = query.TotalCount, pageSize = query.PageSize, currentPage = query.CurrentPage, totalPages = query.TotalPages, }; Response.Headers.Add("custom-Pagination", Newtonsoft.Json.JsonConvert.SerializeObject(pageMetaData)); var temp = _mapper.Map <List <CRMPartner>, List <CRMPartnerDTO> >(query); return(Ok(temp)); }
public PagedList <Booking> SearchBookingDetails(PagingParameter pagingParameter, SearchCommonParamters searchCommonParamters) { // Disable this if you dont want full dependent data var bookingSearchQuery = GetBookingQuery(); // Enable this if you want only booking fields no dependent data //var bookingSearchQuery = DkbsContext.Booking.AsQueryable(); //CustomerName is CompanyName -- check it once? if (!string.IsNullOrWhiteSpace(searchCommonParamters.CustomerName)) { var customer = DkbsContext.Customer .Where(x => x.CompanyName == searchCommonParamters.CustomerName); bookingSearchQuery = bookingSearchQuery.Where(x => customer.Any(a => a.CustomerId == x.CustomerId)); } if (searchCommonParamters.CreatedDateFrom != null) { bookingSearchQuery = bookingSearchQuery.Where(x => x.CreatedDate >= searchCommonParamters.CreatedDateFrom).AsQueryable(); } if (searchCommonParamters.CreatedDateTo != null) { bookingSearchQuery = bookingSearchQuery.Where(x => x.CreatedDate <= searchCommonParamters.CreatedDateTo); } if (!string.IsNullOrWhiteSpace(searchCommonParamters.SearchPhrase)) { if (!string.IsNullOrWhiteSpace(searchCommonParamters.SearchType) && searchCommonParamters.SearchType.ToLower() == "equal") { bookingSearchQuery = bookingSearchQuery.Where(x => searchCommonParamters.SearchPhrase == "SRM" + x.BookingId.ToString()); } else { bookingSearchQuery = bookingSearchQuery.Where(x => searchCommonParamters.SearchPhrase.Contains(x.BookingId.ToString())); } } var res = PagedList <Booking> .Create(bookingSearchQuery, pagingParameter.PageNumber, pagingParameter.PageSize); return(res); }