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);
        }
Exemple #4
0
        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);
        }