示例#1
0
        public IQueryable <Question> FilterQuestions(QuestionFilterModel searchModel)
        {
            var result = this.DbContext.Questions.AsQueryable();

            try
            {
                if (searchModel != null)
                {
                    if (searchModel.QuestionID.HasValue)
                    {
                        result = result.Where(x => x.QuestionID == searchModel.QuestionID);
                    }

                    if (!string.IsNullOrEmpty(searchModel.Content))
                    {
                        result = result.Where(x => x.Content.Contains(searchModel.Content));
                    }

                    if (searchModel.Level.HasValue)
                    {
                        result = result.Where(x => x.Level == searchModel.Level);
                    }

                    if (searchModel.CategoryID.HasValue)
                    {
                        result = result.Where(x => x.CategoryID == searchModel.CategoryID);
                    }

                    if (!string.IsNullOrEmpty(searchModel.CreatedBy))
                    {
                        var user = DbContext.Users.SingleOrDefault(x => x.Name == searchModel.CreatedBy);
                        if (user != null)
                        {
                            result = result.Where(x => x.CreatedBy == user.UserId);
                        }
                        else
                        {
                            result = null;
                        }
                    }
                    if (searchModel.FromDate.HasValue)
                    {
                        result = result.Where(x => x.CreatedDate > searchModel.FromDate && x.CreatedDate < searchModel.ToDate);
                    }
                }

                return(result);
            }
            catch (Exception e)
            {
                log.Debug(e.Message);
                return(result);
            }
        }
示例#2
0
        public ServiceResponse <List <Question> > GetQuestions(QuestionFilterModel filter)
        {
            var response = new ServiceResponse <List <Question> >();

            response.IsSucceeded = true;

            response.RecordsTotal    = questionRepository.ListQueryable.Count();
            response.RecordsFiltered = questionRepository.ListQueryable.AddSearchFilters(filter).Count();
            response.Result          = questionRepository.ListQueryable.AddSearchFilters(filter).AddOrderAndPageFilters(filter).ToList();
            return(response);
        }
示例#3
0
        public ActionResult Search(string keySearch, QuestionFilterModel searchModel)
        {
            var listCategory = questionCategorySevice.GetAllQuestionCategoriesActive();
            var listLevels   = questionService.GetAlLevels();

            ViewData["Category"] = listCategory;
            ViewData["Level"]    = listLevels;

            var listQuestionDtos = questionService.SearchByContent(keySearch, searchModel);

            return(View(listQuestionDtos));
        }
示例#4
0
        public ActionResult Index(QuestionFilterModel searchModel)
        {
            var listCategory = questionCategorySevice.GetAllQuestionCategoriesActive();
            var listLevels   = questionService.GetAlLevels();

            ViewData["Category"] = listCategory;
            ViewData["Level"]    = listLevels;

            var listQuestionDtos = questionService.GetAllQuestionDtos(searchModel);

            ViewBag.listQuestionDtos = listQuestionDtos;
            return(View());
        }
示例#5
0
 public IEnumerable <QuestionDto> SearchByContent(string input, QuestionFilterModel searchModel)
 {
     try
     {
         var search = GetAllQuestionDtos(searchModel).Where(x => x.Content.Contains(input)).ToList();
         return(search.AsEnumerable());
     }
     catch (Exception e)
     {
         log.Debug(e.Message);
         throw;
     }
 }
示例#6
0
        public IActionResult GetQuestionss(QuestionFilterModel model)
        {
            try

            {
                var result = _QuestionsService.GetQuestions(model);
                if (result.IsSucceeded)
                {
                    return(Ok(result.Result));
                }
                return(BadRequest(result.ErrorMessage));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#7
0
        public IQueryable <QuestionDto> GetAllQuestionDtos(QuestionFilterModel searchModel)
        {
            var listQuestionDtos = new List <QuestionDto>();

            try
            {
                if (FilterQuestions(searchModel) != null)
                {
                    foreach (var item in FilterQuestions(searchModel))
                    {
                        listQuestionDtos.Add(new QuestionDto
                        {
                            QuestionID   = item.QuestionID,
                            IsActive     = item.IsActive,
                            Content      = item.Content,
                            Image        = item.Image,
                            CreatedBy    = item.CreatedBy,
                            CreatedName  = userRepository.GetUserById(item.CreatedBy).Name,
                            CreatedDate  = item.CreatedDate,
                            ModifiedBy   = item.ModifiedBy,
                            ModifiedName = userRepository.GetUserById(item.ModifiedBy.GetValueOrDefault()).Name,
                            ModifiedDate = item.ModifiedDate,
                            CategoryID   = item.CategoryID,
                            CategoryName = questionCategory.FindCategoryByID(item.CategoryID).Name,
                            Level        = item.Level,
                            LevelName    = GetNameLevelByQuestionID(item.QuestionID)
                        });
                    }
                }
                else
                {
                    //listQuestionDtos = null;
                }
                var listQuestion = listQuestionDtos.AsQueryable();
                return(listQuestion.OrderByDescending(x => x.CreatedDate));
            }
            catch (Exception e)
            {
                log.Debug(e.Message);
                return(listQuestionDtos.AsQueryable());
            }
        }
示例#8
0
        public ActionResult Detail(int?id, QuestionFilterModel searchModel)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            else
            {
                ViewBag.listAnswerByQuestion = answerService.GetAnswersByQuestionID(id);
                var question = questionService.GetQuestionInQuestionDTO(id, searchModel);
                if (question == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                {
                    return(View(question));
                }
            }
        }
示例#9
0
 public IEnumerable <QuestionDto> SearchByContent(string input, QuestionFilterModel searchModel)
 {
     return(questionRepository.SearchByContent(input, searchModel));
 }
示例#10
0
 public IQueryable <Question> FilterQuestions(QuestionFilterModel searchModel)
 {
     return(questionRepository.FilterQuestions(searchModel));
 }
示例#11
0
 public IQueryable <QuestionDto> GetAllQuestionDtos(QuestionFilterModel searchModel)
 {
     return(questionRepository.GetAllQuestionDtos(searchModel));
 }
示例#12
0
 public QuestionDto GetQuestionInQuestionDTO(int?id, QuestionFilterModel searchModel)
 {
     return(questionRepository.GetQuestionInQuestionDto(id, searchModel));
 }
示例#13
0
        public QuestionDto GetQuestionInQuestionDto(int?id, QuestionFilterModel searchModel)
        {
            var question = GetAllQuestionDtos(searchModel).SingleOrDefault(x => x.QuestionID == id);

            return(question);
        }
示例#14
0
        public static IQueryable <Question> AddSearchFilters(this IQueryable <Question> input, QuestionFilterModel filter)
        {
            if (filter != null)
            {
                if (filter.Term?.Length > 0)
                {
                    input = input.Where(x => x.Content.ToString().Contains(filter.Term));
                }
            }

            return(input);
        }