using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EMIS.DataLogic.Repositories;
using EMIS.ViewModel.MinorManage.MinorPlanManage;
using System.Linq.Expressions;
using EMIS.Entities;
using EMIS.ViewModel;
namespace EMIS.DataLogic.MinorManage.MinorPlanManage
{
public class MinorSpecialtyPlanDAL
{
public MinorPlanRepository MinorPlanRepository { get; set; }
public MinorPlanTeachingModeTypeRepository MinorPlanTeachingModeTypeRepository { get; set; }
public MinorPlanTeachingPlaceRepository MinorPlanTeachingPlaceRepository { get; set; }
public MinorPlanTeachingSettingRepository MinorPlanTeachingSettingRepository { get; set; }
public MinorCourseRepository MinorCourseRepository { get; set; }
public GrademinorRepository GrademinorRepository { get; set; }
public DepartmentRepository DepartmentRepository { get; set; }
public DictionaryItemRepository DictionaryItemRepository { get; set; }
///
/// 查询专业计划
///
///
///
public IQueryable GetMinorSpecialtyPlanViewQueryable(Expression> exp)
{
var graduatingSemester = EMIS.Utility.Const.LOCAL_SETTING_ENTRANCESEMESTERID;
if (graduatingSemester == null)
{
throw new Exception("入学学期(春季、上学期、秋季、下学期)未配置,请检查");
}
var SchoolcodeID = Convert.ToInt32(graduatingSemester);
var query = from a in MinorPlanRepository.GetList(exp)
select new MinorSpecialtyPlanView
{
MinorPlanID = a.MinorPlanID,
DepartmentID = a.DepartmentID,
DepartmentName = a.CF_Department.Name,
CollegeID = a.CF_Department.CF_College.CollegeID,
CollegeName=a.CF_Department.CF_College.Name,
MinorPlanApplicationID = a.MinorPlanApplicationID,
YearID=a.CF_Grademinor.YearID,
StarttermID = a.CF_Schoolyear.Value - ((a.CF_Grademinor.YearID * 2 - 1) + SchoolcodeID - 1) + 1,
StandardID=a.CF_Grademinor.StandardID,
SchoolcodeID=a.CF_Schoolyear.SchoolcodeID,
SchoolyearNumID = (a.CF_Schoolyear.Value - ((a.CF_Grademinor.YearID * 2 - 1) + SchoolcodeID - 1)) / 2 + 1,
SchoolyearID=a.CF_Schoolyear.SchoolyearID,
SchoolcodeStr=a.CF_Schoolyear.Code,
CoursematerialID = a.EM_Coursematerial.CoursematerialID,
CourseCode = a.EM_Coursematerial.CourseCode,
CourseName = a.EM_Coursematerial.CourseName,
CourseStructureID = a.CourseStructureID,
CourseCategoryID = a.CourseCategoryID,
CourseTypeID = a.CourseTypeID,
CourseQualityID = a.CourseQualityID,
PracticeTypeID = a.PracticeTypeID,
ExaminationModeID = a.ExaminationModeID,
TeachinglanguageID = a.TeachinglanguageID,
CourseFineID = a.CourseFineID,
IsSpecialtycore = a.IsSpecialtycore ?? true,
IsCooperation = a.IsCooperation ?? true,
IsRequired = a.IsRequired ?? true,
IsElective = a.IsElective ?? true,
IsNetworkCourse = a.IsNetworkCourse ?? true,
IsMainCourse = a.IsMainCourse ?? true,
HandleModeID=a.HandleModeID,
IsNeedMaterial = a.IsNeedMaterial ?? true,
Credit = a.EM_MinorPlanTeachingSetting.Credit,
TheoryCourse = a.EM_MinorPlanTeachingSetting.TheoryCourse,
Practicehours = a.EM_MinorPlanTeachingSetting.Practicehours,
Trialhours = a.EM_MinorPlanTeachingSetting.Trialhours,
Totalhours = a.EM_MinorPlanTeachingSetting.TheoryCourse + a.EM_MinorPlanTeachingSetting.Practicehours + a.EM_MinorPlanTeachingSetting.Trialhours,
WeeklyNum = a.EM_MinorPlanTeachingSetting.WeeklyNum,
TheoryWeeklyNum = a.EM_MinorPlanTeachingSetting.TheoryWeeklyNum,
PracticeWeeklyNum = a.EM_MinorPlanTeachingSetting.PracticeWeeklyNum,
TrialWeeklyNum = a.EM_MinorPlanTeachingSetting.TrialWeeklyNum,
StartWeeklyNum = a.EM_MinorPlanTeachingSetting.StartWeeklyNum,
WeeklyHours = a.EM_MinorPlanTeachingSetting.WeeklyHours,
EndWeeklyNum = a.EM_MinorPlanTeachingSetting.EndWeeklyNum,
CreateUserID = a.CreateUserID,
CreateTime = a.CreateTime,
ResultTypeID = a.ResultTypeID,
Remarks = a.Remarks,
IsGenerateExecutablePlan = a.EM_ExecutableMinorPlan.Count > 0 ? true : false,
};
return query;
}
///
/// 根据辅修专业课程获取授课方式
///
///
///
public List GetTeachingModeTypeQueryble(Guid? MinorPlanID)
{
var query = from a in MinorPlanTeachingModeTypeRepository.Entities.Where(x => x.MinorPlanID == MinorPlanID)
join b in DictionaryItemRepository.Entities on new { a.TeachingModeID, DictionaryCode = DictionaryItem.CF_TeachingMode.ToString() }
equals new { TeachingModeID = b.Value, b.DictionaryCode }
select b.Value.Value.ToString();
return query.ToList();
}
///
/// 根据辅修专业课程获取授课地点
///
///
///
public List GetTeachingPlaceQueryble(Guid? MinorPlanID)
{
var query = from a in MinorPlanTeachingPlaceRepository.Entities.Where(x => x.MinorPlanID == MinorPlanID)
join b in DictionaryItemRepository.Entities on new { a.TeachingPlace, DictionaryCode = DictionaryItem.EM_TeachingPlace.ToString() }
equals new { TeachingPlace = b.Value, b.DictionaryCode }
select b.Value.Value.ToString();
return query.ToList();
}
///
/// 查询所有年级和专业课程信息
///
///
public IQueryable StandardAndMinorSpecialtyCourseView(Expression> exp, int? YearID)
{
var graduatingSemester = EMIS.Utility.Const.LOCAL_SETTING_ENTRANCESEMESTERID;
if (graduatingSemester == null)
{
throw new Exception("入学学期(春季、上学期、秋季、下学期)未配置,请检查");
}
var SchoolcodeID = Convert.ToInt32(graduatingSemester);
var query = from MinorCourse in MinorCourseRepository.GetList(exp)
join GrademinorApply in
(
from Grademinor in GrademinorRepository.GetList(x => x.YearID == YearID)
join MinorPlan in MinorPlanRepository.Entities on new { Grademinor.GrademinorID }
equals new { GrademinorID = (Guid)MinorPlan.GrademinorID }
select new
{
GrademinorID = Grademinor.GrademinorID,
MinorPlanID = MinorPlan.MinorPlanID,
CoursematerialID = MinorPlan.CoursematerialID,
CollegeID = Grademinor.CollegeID,
SchoolyearID = Grademinor.SchoolyearID,
StandardID = Grademinor.StandardID,
YearID = Grademinor.YearID
}
) on new { MinorCourse.CoursematerialID, MinorCourse.StandardID } equals new { GrademinorApply.CoursematerialID, GrademinorApply.StandardID }
into GrademinorApplication
from GA in GrademinorApplication.DefaultIfEmpty()
where GA.GrademinorID == null && GA.MinorPlanID == null
select new MinorPlanApplyView
{
GradeMinorApplicationID = GA.GrademinorID,
MinorPlanApplicationID = GA.MinorPlanID,
MinorCourseID = MinorCourse.MinorCourseID,
CollegeID = MinorCourse.CF_Department.CollegeID,
CoursematerialID = MinorCourse.CoursematerialID,
CourseCode = MinorCourse.EM_Coursematerial.CourseCode,
CourseName = MinorCourse.EM_Coursematerial.CourseName,
SchoolyearID = GA.SchoolyearID,
YearID = GA.YearID,
StandardID = MinorCourse.StandardID,
CourseCategoryID = MinorCourse.CourseCategoryID,
CourseQualityID = MinorCourse.CourseQualityID,
SchoolcodeID = MinorCourse.SchoolcodeID,
SchoolyearNumID = MinorCourse.SchoolyearNumID,
StarttermID = ((MinorCourse.SchoolyearNumID - 1) * 2) + (MinorCourse.SchoolcodeID == SchoolcodeID ? 0 : 1) + 1,
Credit = MinorCourse.EM_MinorCourseTeachingSetting.Credit ?? 0,
TheoryCourse = MinorCourse.EM_MinorCourseTeachingSetting.TheoryCourse ?? 0,
Practicehours = MinorCourse.EM_MinorCourseTeachingSetting.Practicehours ?? 0,
Trialhours = MinorCourse.EM_MinorCourseTeachingSetting.Trialhours ?? 0,
Totalhours = (MinorCourse.EM_MinorCourseTeachingSetting.TheoryCourse
+ MinorCourse.EM_MinorCourseTeachingSetting.Practicehours) ?? 0,
TheoryWeeklyNum = MinorCourse.EM_MinorCourseTeachingSetting.TheoryWeeklyNum ?? 0,
PracticeWeeklyNum = MinorCourse.EM_MinorCourseTeachingSetting.PracticeWeeklyNum ?? 0,
TrialWeeklyNum = MinorCourse.EM_MinorCourseTeachingSetting.TrialWeeklyNum ?? 0,
SchoolweeksNum = (MinorCourse.EM_MinorCourseTeachingSetting.TheoryWeeklyNum
+ MinorCourse.EM_MinorCourseTeachingSetting.PracticeWeeklyNum) ?? 0,
StartWeeklyNum = MinorCourse.EM_MinorCourseTeachingSetting.StartWeeklyNum ?? 0,
EndWeeklyNum = MinorCourse.EM_MinorCourseTeachingSetting.EndWeeklyNum ?? 0,
WeeklyNum = MinorCourse.EM_MinorCourseTeachingSetting.WeeklyNum ?? 0,
WeeklyHours = MinorCourse.EM_MinorCourseTeachingSetting.WeeklyHours ?? 0,
DepartmentID = MinorCourse.DepartmentID,
CourseStructureID = MinorCourse.CourseStructureID,
CourseTypeID = MinorCourse.CourseTypeID,
ExaminationModeID = MinorCourse.ExaminationModeID,
TeachinglanguageID = MinorCourse.TeachinglanguageID,
PracticeTypeID = MinorCourse.PracticeTypeID,
CourseFineID = MinorCourse.CourseFineID,
IsSpecialtycore = MinorCourse.IsSpecialtycore ?? false,
IsCooperation = MinorCourse.IsCooperation ?? false,
IsRequired = MinorCourse.IsRequired ?? false,
IsElective = MinorCourse.IsElective ?? false,
IsNetworkCourse = MinorCourse.IsNetworkCourse ?? false,
IsNeedMaterial = true,
HandleModeID = (int)EMIS.ViewModel.CF_HandleMode.MinorCourse,
IsMainCourse = MinorCourse.IsMainCourse ?? false,
IsEnable = MinorCourse.IsEnable ?? false,
ResultTypeID = MinorCourse.ResultTypeID
};
return query;
}
///
/// 查询所有年级和专业课程信息
///
///
public IQueryable GetStandardView(Expression> exp)
{
var query = from Grademinor in GrademinorRepository.GetList(exp)
select new MinorSpecialtyPlanView
{
StandardID = Grademinor.StandardID
};
return query;
}
}
}