示例#1
0
        public IEnumerable <CallQueue> GetCallQueueList(CallQueueListModelFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                if (filter == null)
                {
                    totalRecords = linqMetaData.CallQueue.Count(cq => cq.IsManual && cq.IsHealthPlan == false);
                    var entities = linqMetaData.CallQueue.Where(cq => cq.IsManual && cq.IsHealthPlan == false).OrderByDescending(p => p.IsActive).ThenBy(p => p.Name).TakePage(pageNumber, pageSize).ToArray();

                    return(Mapper.Map <IEnumerable <CallQueueEntity>, IEnumerable <CallQueue> >(entities));
                }
                else
                {
                    var query = from cq in linqMetaData.CallQueue where cq.IsManual && cq.IsHealthPlan == false select cq;

                    if (!string.IsNullOrEmpty(filter.Name))
                    {
                        query = from cq in query where cq.Name.Contains(filter.Name) select cq;
                    }

                    if (filter.CriteriaId > 0)
                    {
                        var callQueueIds = (from cqc in linqMetaData.CallQueueCriteria where cqc.CriteriaId == filter.CriteriaId select cqc.CallQueueId);
                        query = from cq in query where callQueueIds.Contains(cq.CallQueueId) select cq;
                    }

                    totalRecords = query.Count();
                    var entities = query.OrderByDescending(p => p.IsActive).ThenBy(p => p.Name).TakePage(pageNumber, pageSize).ToArray();

                    return(Mapper.Map <IEnumerable <CallQueueEntity>, IEnumerable <CallQueue> >(entities));
                }
            }
        }
示例#2
0
        public ActionResult Index(CallQueueListModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;
            var model = _callQueueService.GetCallQueueList(pageNumber, _pageSize, filter, out totalRecords) ??
                        new CallQueueListModel();

            model.Filter = filter;

            var currentAction          = ControllerContext.RouteData.Values["action"].ToString();
            Func <int, string> urlFunc =
                pn =>
                Url.Action(currentAction,
                           new
            {
                pageNumber = pn,
                filter.Name,
                filter.CriteriaId,
            });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }