using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using EMIS.Entities; using EMIS.ViewModel.UniversityManage.AdministrativeOrgan; using EMIS.DataLogic.Repositories; namespace EMIS.DataLogic.UniversityManage.AdministrativeOrgan { public class CampusDAL { public CampusRepository CampusRepository { get; set; } public CampusProfileRepository CampusProfileRepository { get; set; } public CollegeRepository CollegeRepository { get; set; } public DepartmentRepository DepartmentRepository { get; set; } public StaffRepository StaffRepository { get; set; } public FacultymajorRepository FacultymajorRepository { get; set; } public UserRepository UserRepository { get; set; } /// /// 查询对应的校区信息View /// /// /// public IQueryable GetCampusViewQueryable(Expression> expCampus) { var query = from a in CampusRepository.GetList(expCampus) join c in UserRepository.Entities on a.CF_CampusProfile.Generalsuper equals c.UserID into gg from gGeneralsuper in gg.DefaultIfEmpty() join d in UserRepository.Entities on a.CF_CampusProfile.Recruitstudents equals d.UserID into gr from gRecruitstudents in gr.DefaultIfEmpty() join e in UserRepository.Entities on a.CF_CampusProfile.Placesuper equals e.UserID into gp from gPlacesuper in gp.DefaultIfEmpty() join f in UserRepository.Entities on a.CF_CampusProfile.Teachingsuper equals f.UserID into gt from gTeachingsuper in gt.DefaultIfEmpty() join g in UserRepository.Entities on a.CF_CampusProfile.Studentcharge equals g.UserID into gsc from gStudentcharge in gsc.DefaultIfEmpty() join col in ( from col in CollegeRepository.Entities group col by col.CampusID into colgr select new { CampusID = colgr.Key, CollegeCount = colgr.Count() } ) on a.CampusID equals col.CampusID into tempcol from colcam in tempcol.DefaultIfEmpty() select new CampusView { CampusID = a.CampusID, UniversityID = a.UniversityID, No = a.No, Name = a.Name, SimpleName = a.SimpleName, EnglishName = a.EnglishName, UniversityCode = a.CF_University.Code, UniversityName = a.CF_University.Name, Generalsuper = a.CF_CampusProfile.Generalsuper, GeneralsuperName = gGeneralsuper.Name, Recruitstudents = a.CF_CampusProfile.Recruitstudents, RecruitstudentsName = gRecruitstudents.Name, Placesuper = a.CF_CampusProfile.Placesuper, PlacesuperName = gPlacesuper.Name, Teachingsuper = a.CF_CampusProfile.Teachingsuper, TeachingsuperName = gTeachingsuper.Name, Studentcharge = a.CF_CampusProfile.Studentcharge, StudentchargeName = gStudentcharge.Name, ZIPCode = a.CF_CampusProfile.ZIPCode, Officephone = a.CF_CampusProfile.Officephone, FAX = a.CF_CampusProfile.FAX, Email = a.CF_CampusProfile.Email, Evolution = a.CF_CampusProfile.Evolution, CollegeCount = colcam.CollegeCount == null ? 0 : colcam.CollegeCount, Remark = a.Remark, RecordStatus = a.RecordStatus, CreateUserID = a.CreateUserID, CreateTime = a.CreateTime, ModifyUserID = a.ModifyUserID, ModifyTime = a.ModifyTime }; return query; } /// /// 查询对应的院系所信息View(统计教研室数、教师人数、院系专业数) /// /// /// public IQueryable GetCollegeViewQueryable(Expression> expCampus) { var query = from cam in CampusRepository.GetList(expCampus) join col in CollegeRepository.Entities on cam.CampusID equals col.CampusID join pm in UserRepository.Entities on col.CF_CollegeProfile.PoliticalManager equals pm.UserID into temppm from pmus in temppm.DefaultIfEmpty() join am in UserRepository.Entities on col.CF_CollegeProfile.AdministrativeManager equals am.UserID into tempam from amus in tempam.DefaultIfEmpty() join dep in ( from dep in DepartmentRepository.Entities group dep by dep.CollegeID into depgr select new { CollegeID = depgr.Key, DepartmentCount = depgr.Count() } ) on col.CollegeID equals dep.CollegeID into tempdep from depcol in tempdep.DefaultIfEmpty() join sta in ( from sta in StaffRepository.Entities group sta by sta.CollegeID into stagr select new { CollegeID = stagr.Key, StaffCount = stagr.Count() } ) on col.CollegeID equals sta.CollegeID into tempsta from stacol in tempsta.DefaultIfEmpty() join fa in ( from fa in FacultymajorRepository.Entities group fa by fa.CollegeID into fagr select new { CollegeID = fagr.Key, FacultymajorCount = fagr.Count() } ) on col.CollegeID equals fa.CollegeID into tempfa from facol in tempfa.DefaultIfEmpty() select new CollegeView { CollegeID = col.CollegeID, No = col.No, Name = col.Name, SimpleName = col.SimpleName, EnglishName = col.EnglishName, CampusID = col.CampusID, CampusNo = cam.No, CampusName = cam.Name, PoliticalManager = col.CF_CollegeProfile.PoliticalManager, PoliticalManagerName = pmus.Name, AdministrativeManager = col.CF_CollegeProfile.AdministrativeManager, AdministrativeManagerName = amus.Name, UnitCategoryID = col.CF_CollegeProfile.UnitCategoryID, CollegeTypeID = col.CF_CollegeProfile.CollegeTypeID, CollegeCategoryID = col.CF_CollegeProfile.CollegeCategoryID, RunByCategoryID = col.CF_CollegeProfile.RunByCategoryID, FoundDate = col.CF_CollegeProfile.FoundDate, Officephone = col.CF_CollegeProfile.Officephone, DepartmentCount = depcol.DepartmentCount == null ? 0 : depcol.DepartmentCount, StaffCount = stacol.StaffCount == null ? 0 : stacol.StaffCount, FacultymajorCount = facol.FacultymajorCount == null ? 0 : facol.FacultymajorCount, Remark = col.Remark, RecordStatus = col.RecordStatus, CreateUserID = col.CreateUserID, CreateTime = col.CreateTime, ModifyUserID = col.ModifyUserID, ModifyTime = col.ModifyTime }; return query; } } }