using System; using System.Collections.Generic; using System.Linq; using System.Text; using EMIS.DataLogic.Repositories; using EMIS.ViewModel.GraduationManage.GraduationRequirement; using System.Linq.Expressions; using EMIS.Entities; using EMIS.ViewModel; namespace EMIS.DataLogic.GraduationManage.GraduationRequirement { public class GraduationCourseDAL { public GraduationCourseRepository GraduationCourseRepository { get; set; } public GrademajorRepository GrademajorRepository { get; set; } public CoursematerialRepository CoursematerialRepository { get; set; } public FacultymajorRepository FacultymajorRepository { get; set; } public CollegeRepository CollegeRepository { get; set; } public SchoolyearRepository SchoolyearRepository { get; set; } public SpecialtyPlanRepository SpecialtyPlanRepository { get; set; } /// /// 查询对应的毕业课程信息View /// /// /// public IQueryable GetGraduationCourseQueryable(Expression> exp) { var query = from gc in GraduationCourseRepository.GetList(exp) join cou in CoursematerialRepository.Entities on gc.CoursematerialID equals cou.CoursematerialID join gr in GrademajorRepository.Entities on gc.GrademajorID equals gr.GrademajorID join fa in FacultymajorRepository.Entities on gr.FacultymajorID equals fa.FacultymajorID join col in CollegeRepository.Entities on fa.CollegeID equals col.CollegeID join sye in SchoolyearRepository.Entities on new { SchoolyearID = gr.GradeID.Value, SchoolcodeID = gr.SemesterID.Value } equals new { SchoolyearID = sye.Years, SchoolcodeID = sye.SchoolcodeID } into tempsyenter from syenter in tempsyenter.DefaultIfEmpty() select new GraduationCourseView { GraduationCourseID = gc.GraduationCourseID, GrademajorID = gc.GrademajorID, GrademajorCode = gr.Code, GrademajorName = gr.Name, FacultymajorID = gr.FacultymajorID, FacultymajorNo = fa.Code, FacultymajorName = fa.Name, CollegeID = fa.CollegeID, CollegeNo = col.No, CollegeName = col.Name, SchoolyearID = gr.GradeID, SchoolcodeID = gr.SemesterID, EnteringSchoolYearID = syenter.SchoolyearID, EnteringSchoolYearCode = syenter.Code, GraduatingSemesterID = gr.CF_Schoolyear.SchoolyearID, GraduatingSemesterCode = gr.CF_Schoolyear.Code, StandardID = fa.StandardID, EducationID = fa.EducationID, LearningformID = fa.LearningformID, LearnSystem = fa.LearnSystem, CoursematerialID = gc.CoursematerialID, CourseCode = cou.CourseCode, CourseName = cou.CourseName, CourseTypeID = gc.CourseTypeID, CourseCredit = gc.CourseCredit, RecordStatus = gc.RecordStatus, CreateUserID = gc.CreateUserID, CreateTime = gc.CreateTime, ModifyUserID = gc.ModifyUserID, ModifyTime = gc.ModifyTime }; return query; } /// /// 查询对应的专业计划信息View(专业计划左连毕业课程,排除对应的毕业课程专业计划信息) /// /// /// /// public IQueryable GetGradSpecialtyPlanQueryable(Expression> expSpecialtyPlan, Expression> expGrademajor) { var query = from sp in SpecialtyPlanRepository.GetList(expSpecialtyPlan) join gr in GrademajorRepository.GetList(expGrademajor) on sp.GrademajorID equals gr.GrademajorID join sy in SchoolyearRepository.Entities on sp.SchoolyearID equals sy.SchoolyearID join cou in CoursematerialRepository.Entities on sp.CoursematerialID equals cou.CoursematerialID join fa in FacultymajorRepository.Entities on gr.FacultymajorID equals fa.FacultymajorID join col in CollegeRepository.Entities on fa.CollegeID equals col.CollegeID join gc in GraduationCourseRepository.Entities on new { GrademajorID = sp.GrademajorID, CoursematerialID = sp.CoursematerialID, CourseTypeID = sp.CourseTypeID, CourseCredit = sp.EM_SpecialtyPlanTeachingSetting.Credit } equals new { GrademajorID = gc.GrademajorID, CoursematerialID = gc.CoursematerialID, CourseTypeID = gc.CourseTypeID, CourseCredit = gc.CourseCredit } into tempgc from spgc in tempgc.DefaultIfEmpty() where spgc.GraduationCourseID == null select new GradSpecialtyPlanView { SpecialtyPlanID = sp.SpecialtyPlanID, GraduationCourseID = spgc.GraduationCourseID, GrademajorID = gr.GrademajorID, GrademajorCode = gr.Code, GrademajorName = gr.Name, FacultymajorID = gr.FacultymajorID, FacultymajorNo = fa.Code, FacultymajorName = fa.Name, CollegeID = fa.CollegeID, CollegeNo = col.No, CollegeName = col.Name, GraduatingSemesterID = gr.CF_Schoolyear.SchoolyearID, GraduatingSemesterCode = gr.CF_Schoolyear.Code, GradeID = gr.GradeID, StandardID = fa.StandardID, EducationID = fa.EducationID, LearningformID = fa.LearningformID, LearnSystem = fa.LearnSystem, CoursematerialID = sp.CoursematerialID, CourseCode = cou.CourseCode, CourseName = cou.CourseName, CourseTypeID = sp.CourseTypeID, Credit = sp.EM_SpecialtyPlanTeachingSetting.Credit, TheoryCourse = sp.EM_SpecialtyPlanTeachingSetting.TheoryCourse, Practicehours = sp.EM_SpecialtyPlanTeachingSetting.Practicehours, Trialhours = sp.EM_SpecialtyPlanTeachingSetting.Trialhours, DepartmentID = sp.DepartmentID, DepartmentNo = sp.CF_Department.No, DepartmentName = sp.CF_Department.Name, SchoolyearID = sp.SchoolyearID, SchoolyearCode = sy.Code, Value = sy.Value, SchoolyearNumID = (sp.CF_Schoolyear.Value - ((gr.GradeID * 2 - 1) + gr.SemesterID - 1)) / 2 + 1, SchoolcodeID = sp.CF_Schoolyear.SchoolcodeID, StarttermID = sp.CF_Schoolyear.Value - ((gr.GradeID * 2 - 1) + gr.SemesterID - 1) + 1 }; return query; } } }