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> >())); }
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))); }