示例#1
0
        public PageList <FeedbackModel> SearchFeedbacks(FeedbackSearchCondition condition)
        {
            var query = _shoppingContext.Feedbacks.AsNoTracking().AsQueryable();

            if (!string.IsNullOrEmpty(condition.UserName))
            {
                query = query.Where(p => p.Customer.UserName.ToLower().Contains(condition.UserName.ToLower()));
            }

            if (condition.IsReplied.HasValue)
            {
                if (condition.IsReplied.Value)
                {
                    query = query.Where(p => p.FeedbackDetails.Count > 0);
                }
                else
                {
                    query = query.Where(p => p.FeedbackDetails.Count == 0);
                }
            }

            if (condition.DateFrom.HasValue)
            {
                query = query.Where(p => p.CreatedDateTime >= condition.DateFrom.Value);
            }

            if (condition.DateTo.HasValue)
            {
                var dateTo = condition.DateTo.Value.AddDays(1);
                query = query.Where(p => p.CreatedDateTime < dateTo);
            }
            var feedbacks = query.OrderBy(o => o.CreatedDateTime).Skip(condition.PageSize * condition.PageNumber).Take(condition.PageSize).ToList();

            return(new PageList <FeedbackModel>(Mapper.Map <List <FeedbackModel> >(feedbacks), query.Count()));
        }
示例#2
0
        public ActionResult List(DataSourceRequest command, FeedbackSearchCondition condition)
        {
            condition.PageSize   = command.PageSize;
            condition.PageNumber = command.Page - 1;

            var feedbacks = _feedbackService.SearchFeedbacks(condition);
            var gridModel = new DataSourceResult()
            {
                Data  = feedbacks.DataSource,
                Total = feedbacks.TotalItems
            };

            return(Json(gridModel));
        }
示例#3
0
        public ActionResult List()
        {
            var model = new FeedbackSearchCondition();

            return(View(model));
        }