Example #1
0
        public async Task <ListResultOutput <CourseTimeDto> > GetTeacherCourseTimes(GetCourseTimeEventInput input)
        {
            input.Start = input.Start.AddDays(-1);
            input.End   = input.End.AddDays(1);

            //var studentGrade = "1,";

            var query = _courseTimeRepository.GetAll();

            //query.where(enabledGrade.split.cona(“一年级”)
            query = query.Where(x => !x.TeacherCourse.IsDeleted)
                    //.Where(x => x.FitGrade.Contains(studentGrade))
                    .Where(x => !x.TeacherCourse.Course.IsDeleted)
                    .Where(x => !x.TeacherCourse.Course.SubjectProject.IsDeleted)
                    .Where(x => x.TeacherCourse.TeacherId == (AbpSession.UserId ?? 0))
                    .Where(x => x.Start > input.Start && x.Start < input.End);

            var courseTimes = await Task.FromResult(query.ToList());

            return(new ListResultOutput <CourseTimeDto>(courseTimes.MapTo <List <CourseTimeDto> >()));
        }
Example #2
0
        public async Task <ListResultOutput <StudentEnabledCourseTimeDto> > GetStudentCourseTimes(GetCourseTimeEventInput input)
        {
            input.Start = input.Start.AddDays(-1);
            input.End   = input.End.AddDays(1);

            var studentid = AbpSession.UserId ?? 0;
            var student   = await _studentRepository.FirstOrDefaultAsync(x => x.Id == studentid);

            if (student == null)
            {
                throw new UserFriendlyException("用户不存在。");
            }

            var studentSubjects = await _studentSubjectTimeRepository.GetAllListAsync(x => x.StudentId == studentid);

            var studentSubjectsIds = studentSubjects.Select(i => i.CourseId).ToList();

            var studentCourses = await _courseRepository.GetAllListAsync(x => studentSubjectsIds.Contains(x.SubjectProjectId));

            var studentCoursesIds = studentCourses.Select(i => i.Id).ToList();

            var studentSelectedCourseTime = await _studentCourseTimeRepository.GetAllListAsync(
                x => x.StudentId == studentid &&
                !x.CourseTime.TeacherCourse.IsDeleted &&
                !x.CourseTime.TeacherCourse.Course.IsDeleted);

            var studentSelectedCourseTimeIds = studentSelectedCourseTime.Select(x => x.CourseTimeId).ToList();

            var query = _courseTimeRepository.GetAll();

            {
                var s = ((DateTime.Today.Year - student.EntryDate.Year) * 12 + (DateTime.Today.Month - student.EntryDate.Month)) / 12 + 1;


                var studentGrade = $",{s},";
                query = query.Where(x => x.FitGrade == null || x.FitGrade == "" || x.FitGrade.Contains(studentGrade));
            }


            //Query = Query.Where(x => );
            query = query.Where(x => studentCoursesIds.Contains(x.TeacherCourse.CourseId) && x.Start > input.Start && x.End < input.End);

            var studentEnabledCourseTimes = await Task.FromResult(query.Select(x => new
            {
                x.Id,
                x.TeacherCourse,
                x.Start,
                x.End,
                x.Address,
                x.Times,
                EnabledSelecting = x.Times < x.TeacherCourse.Course.LimitNumbers,
                EnabledEndTime = x.End >= DateTime.Today,
                EnabledStartTime = x.Start <= DateTime.Now,
                IsSelected = studentSelectedCourseTimeIds.Contains(x.Id)
            }).ToList());

            return(new ListResultOutput <StudentEnabledCourseTimeDto>
                       (Mapper.DynamicMap <List <StudentEnabledCourseTimeDto> >(studentEnabledCourseTimes)));
        }