public IEnumerable <Question> Filter(QuestionFillterModel model) { try { var result = context.Questions.ToList(); if (model.CategoryId != null && !"".Equals(model.CategoryId)) { if (int.TryParse(model.CategoryId, out int categoryId)) { result = result.Where(s => s.Category.Id == categoryId).ToList(); } } if (model.TagsId != null && !"".Equals(model.TagsId)) { if (int.TryParse(model.TagsId, out int tagId)) { result = result.Where(s => s.Tags.Where(item => item.Id == tagId).Count() > 0).ToList(); } } if (model.CreatedBy != null && !"".Equals(model.CreatedBy)) { result = result.Where(s => model.CreatedBy.Equals(s.CreatedBy)).ToList(); } if (model.Type != null && !"".Equals(model.Type)) { if (int.TryParse(model.Type, out int type)) { result = result.Where(s => s.Type == type).ToList(); } } if (model.Level != null && !"".Equals(model.Level)) { if (int.TryParse(model.Level, out int level)) { result = result.Where(s => s.Level == level).ToList(); } } if (model.StartDate != null) { result = result.Where(s => s.CreatedDate >= model.StartDate).ToList(); } if (model.EndDate != null) { result = result.Where(s => s.CreatedDate >= model.EndDate).ToList(); } var size = 10; var maxSize = result.Count(); if (model.PageSize != null) { size = maxSize < 10 ? maxSize : 10; } else { if (int.TryParse(model.PageSize, out int pageSize)) { size = maxSize < pageSize ? maxSize : pageSize; } } var index = 1; if (model.PageIndex != null) { if (int.TryParse(model.PageIndex, out int pageIndex)) { index = pageIndex <= 0 ? 1 : pageIndex; } } var start = (index - 1) * size; var end = index * size - 1; //return result.GetRange(start, end); return(result); } catch (Exception e) { throw e; } }
public IEnumerable <Question> Filter(QuestionFillterModel t) { return(repository.Filter(t)); }