public IList <Yw_Subject> GetByPage(DtoQuestionSearch search)
        {
            string        fields        = "*";
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("Yw_Subject");
            stringBuilder.Append(" Where 1 = 1");
            int difficulty = -1;

            if (search.Difficulty.HasValue)
            {
                difficulty = (int)search.Difficulty.Value;
                stringBuilder.Append(" AND Ysj_Difficulty = @difficulty");
            }
            int status = -1;

            if (search.SubjectStatus.HasValue)
            {
                status = (int)search.SubjectStatus.Value;
                if (status > 0)
                {
                    stringBuilder.Append(" AND Ysj_Status = @status");
                }
            }
            else
            {
                status = (int)SubjectStatusEnum.合格;
                stringBuilder.Append(" AND Ysj_Status != @status");
            }

            int subjectType = -1;

            if (search.SubjectType.HasValue)
            {
                subjectType = (int)search.SubjectType.Value;
                if (subjectType > 0)
                {
                    stringBuilder.Append(" AND Ysj_SubjectType = @subjectType");
                }
            }

            string where = stringBuilder.ToString();

            string orderby = "Ysj_CreateTime DESC";

            return(base.QueryPaging <Yw_Subject>(
                       fields,
                       where,
                       orderby,
                       search.Pagination,
                       new
            {
                difficulty = difficulty,
                status = status,
                subjectType = subjectType
            }).ToList());
        }
Beispiel #2
0
        public IList <int> GetSubjectIdsByKeyword(DtoQuestionSearch search)
        {
            if (search == null || string.IsNullOrWhiteSpace(search.Keyword))
            {
                return(new List <int>());
            }

            string        field         = "Ysi_SubjectId";
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("Yw_SubjectIndex");
            stringBuilder.Append(" WHERE Ysi_Keyword = @keyword");
            int difficulty = -1;

            if (search.Difficulty.HasValue)
            {
                difficulty = (int)search.Difficulty.Value;
                stringBuilder.Append(" AND Ysi_Difficulty = @difficulty");
            }
            int status = -1;

            if (search.SubjectStatus.HasValue)
            {
                status = (int)search.SubjectStatus.Value;
                stringBuilder.Append(" AND Ysi_Status = @status");
            }
            else//没有值,搜索除了合格的之外的数据
            {
                status = (int)SubjectStatusEnum.合格;
                stringBuilder.Append(" AND Ysi_Status != @status");
            }

            int subjectType = -1;

            if (search.SubjectType.HasValue)
            {
                subjectType = (int)search.SubjectType.Value;
                stringBuilder.Append(" AND Ysi_SubjectType = @subjectType");
            }

            string where = stringBuilder.ToString();

            string orderby = "Ysi_CreateTime DESC";

            return(base.QueryPaging <int>(
                       field,
                       where,
                       orderby,
                       search.Pagination,
                       new
            {
                keyword = search.Keyword,
                difficulty = difficulty,
                status = status,
                subjectType = subjectType
            }).ToList());
        }
Beispiel #3
0
        public void SubjectBll_GetSubjects_GetByIdShouldReturnValue()
        {
            var search = new DtoQuestionSearch()
            {
                Id = 10098
            };
            var result = bll.GetSubjects(search);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count == 1);
        }
Beispiel #4
0
        public void SubjectRepository_GetByPage_GetByKeywordShouldReturnValue()
        {
            int subjectId = 10049;
            var search    = new DtoQuestionSearch()
            {
                Keyword = "sfsfsfsddd"
            };
            var result = bll.GetSubjects(search);

            Assert.IsNotNull(result);
            Assert.AreEqual(subjectId, result.FirstOrDefault()?.Ysj_Id);
        }
Beispiel #5
0
        public JsonResult GetQuestions(DtoQuestionSearch search)
        {
            //此处只需要合格状态的数据
            search.SubjectStatus = SubjectStatusEnum.合格;
            SubjectBll         bll      = new SubjectBll();
            IList <Yw_Subject> subjects = bll.GetSubjects(search);

            IEnumerable <SubjectViewModel> list =
                subjects.Select(s => SubjectViewModel.Create(s));
            var table = AbhsTableFactory.Create(list, search.Pagination.TotalCount);

            return(Json(table, JsonRequestBehavior.AllowGet));
        }
Beispiel #6
0
        public JsonResult GetMyQuestions(DtoQuestionSearch search)
        {
            //if (!search.SubjectStatus.HasValue || (int)search.SubjectStatus.Value == 0)
            //{
            //    search.SubjectStatus= SubjectStatusEnum.
            //}
            SubjectBll         bll      = new SubjectBll();
            IList <Yw_Subject> subjects = bll.GetSubjects(search);

            IEnumerable <SubjectViewModel> list =
                subjects.Select(s => SubjectViewModel.Create(s));
            var table = AbhsTableFactory.Create(list, search.Pagination.TotalCount);

            return(Json(table, JsonRequestBehavior.AllowGet));
        }
Beispiel #7
0
        public IList <Yw_Subject> GetSubjects(DtoQuestionSearch search)
        {
            if (search.Id != 0)
            {
                return(SubjectService.GetSubjectsById(search));
            }

            if (!string.IsNullOrWhiteSpace(search.Keyword))
            {
                IList <int> subjectIds =
                    SubjectIndexService.GetSubjectIdsByKeyword(search);
                return(SubjectService.GetSubjectsByIds(subjectIds));
            }

            return(SubjectService.GetByPage(search));
        }
        public void SubjectRepository_GetByPage_GetByStatusShouldReturnValue()
        {
            SubjectRepository repository = new SubjectRepository();
            var search = new DtoQuestionSearch()
            {
                SubjectStatus = SubjectStatusEnum.合格
            };
            var result = repository.GetByPage(search);

            Assert.IsNotNull(result);
            foreach (var item in result)
            {
                if (item.Ysj_Status != (int)SubjectStatusEnum.合格)
                {
                    Assert.Fail();
                }
            }
        }
        public void SubjectRepository_GetByPage_GetByDifficultyShouldReturnValue()
        {
            SubjectRepository repository = new SubjectRepository();
            var search = new DtoQuestionSearch()
            {
                Difficulty = DifficultyEnum.较易
            };
            var result = repository.GetByPage(search);

            Assert.IsNotNull(result);
            foreach (var item in result)
            {
                if (item.Ysj_Difficulty != (int)DifficultyEnum.较易)
                {
                    Assert.Fail();
                }
            }
        }
        public IList <Yw_Subject> GetSubjectsById(DtoQuestionSearch search)
        {
            int id = search.Id;

            if (id < 10000 && id != 0)
            {
                throw new AbhsException(ErrorCodeEnum.IdOutOfRange, AbhsErrorMsg.IdOutOfRange);
            }
            string fields = "*";

            string where = "Yw_Subject Where Ysj_Id = @id";
            if (search.SubjectType.HasValue)
            {
                int subjectType = (int)search.SubjectType.Value;
                if (subjectType > 0)
                {
                    where += " AND Ysj_SubjectType = " + subjectType.ToString();
                }
            }
            int status = -1;

            if (search.SubjectStatus.HasValue)
            {
                status = (int)search.SubjectStatus.Value;
                if (status > 0)
                {
                    where += " AND Ysj_Status = " + status.ToString();
                }
            }
            else
            {
                status = (int)SubjectStatusEnum.合格;
                where += " AND Ysj_Status != " + status.ToString();
            }
            string orderby = "Ysj_CreateTime DESC";

            return(base.QueryPaging <Yw_Subject>(
                       fields,
                       where,
                       orderby,
                       search.Pagination,
                       new { id = id }).ToList());
        }
Beispiel #11
0
        public ActionResult GetGroupedSubjects(DtoQuestionSearch search)
        {
            var subjectGroup = new SubjectGroupBll().GetBySubjectId(search.Id);
            IList <SubjectViewModel> list = new List <SubjectViewModel>();

            if (subjectGroup != null &&
                !string.IsNullOrWhiteSpace(subjectGroup.Ysg_RelSubjectId))
            {
                var ids = subjectGroup.Ysg_RelSubjectId.Split(new char[] { ',' },
                                                              StringSplitOptions.RemoveEmptyEntries).Select(s => int.Parse(s));

                SubjectBll bll      = new SubjectBll();
                var        subjects = bll.GetSubjectsByIds(ids);
                if (subjects != null && subjects.Count > 0)
                {
                    list = subjects.Select(s => SubjectViewModel.Create(s)).ToList();
                }
            }

            var table = AbhsTableFactory.Create(list, search.Pagination.TotalCount);

            return(Json(table, JsonRequestBehavior.AllowGet));
        }
Beispiel #12
0
        public void SubjectBll_GetSubjects_GetByDifficultyAndStatusShouldReturnValue()
        {
            var search = new DtoQuestionSearch()
            {
                Difficulty    = DifficultyEnum.较易,
                SubjectStatus = SubjectStatusEnum.合格
            };
            var result = bll.GetSubjects(search);

            Assert.IsNotNull(result);
            foreach (var item in result)
            {
                if (item.Ysj_Status == (int)SubjectStatusEnum.合格 &&
                    item.Ysj_Difficulty == (int)DifficultyEnum.较易)
                {
                    continue;
                }
                else
                {
                    Assert.Fail();
                }
            }
        }