using System; using System.Collections.Generic; using System.Linq; using System.Text; using EMIS.Entities; using System.Linq.Expressions; using Bowin.Common.Linq.Entity; using Bowin.Common.Linq; using EMIS.DataLogic.SchedulingManage.SchedulingSettings; using EMIS.ViewModel.SchedulingManage.SchedulingSettings; using EMIS.CommonLogic.CalendarManage; using EMIS.ViewModel.CalendarManage; using EMIS.ViewModel.UniversityManage.ClassroomManage; namespace EMIS.CommonLogic.SchedulingManage.SchedulingSettings { public class ClassroomScheduleSettingServices : BaseServices, IClassroomScheduleSettingServices { public ClassroomScheduleSettingDAL classroomScheduleSettingDAL { get; set; } public IArrangementServices arrangementServices { get; set; } public ClassroomReserveDAL classroomReserveDAL { get; set; } /// /// 查询 /// /// /// /// /// /// /// public Bowin.Common.Linq.Entity.IGridResultSet GetClassroomScheduleSettingViewGrid(Guid? classroomID, Guid? collegeID, int? classroomTypeID, int pageIndex, int pageSize) { Expression> exp = (x => true); if (classroomID.HasValue) exp = exp.And(x => x.ClassroomID == classroomID); if (collegeID.HasValue) exp = exp.And(x => x.CollegeID == collegeID); if (classroomTypeID.HasValue) exp = exp.And(x => x.CF_ClassroomType.Select(y => y.ClassroomType).Contains(classroomTypeID)); var query = classroomScheduleSettingDAL.GetClassroomScheduleSettingViewQueryable(exp); var resultSet = query.OrderByDescending(x => x.CreateTime).ToGridResultSet(pageIndex, pageSize); var classroomIDList = resultSet.rows.Select(x => x.ClassroomID).ToList(); var queryClassroomTyoeView = classroomReserveDAL.GetClassroomTypeViewQueryable().Where(x => classroomIDList.Contains(x.ClassroomID)).ToList(); resultSet.rows.ForEach(x => x.ClassroomTypes = new HashSet(queryClassroomTyoeView.Where(y => y.ClassroomID == x.ClassroomID))); return resultSet; } /// /// 查询 /// /// /// public Bowin.Common.Linq.Entity.IGridResultSet GetArrangementViewGrid(Guid? classroomID) { var resultSet = classroomScheduleSettingDAL.GetArrangementViewQueryable(classroomID).OrderBy(x => x.StartTimes).ToGridResultSet(); if (resultSet.total > 0) { return resultSet; } return arrangementServices.GetArrangementViewGrid(); } /// /// 新增 /// /// public void ClassroomScheduleSettingAdd(List listArrangement, Guid? classroomID) { try { UnitOfWork.Delete(x => x.ClassroomID == classroomID); foreach (var arrangementView in listArrangement) { bool? IsOnWork = false; for (int i = 0; i < 7; i++) { if (i == (int)DayOfWeek.Monday) IsOnWork = arrangementView.MondayIsOnWork; if (i == (int)DayOfWeek.Tuesday) IsOnWork = arrangementView.TuesdayIsOnWork; if (i == (int)DayOfWeek.Wednesday) IsOnWork = arrangementView.WednesdayIsOnWork; if (i == (int)DayOfWeek.Thursday) IsOnWork = arrangementView.ThursdayIsOnWork; if (i == (int)DayOfWeek.Friday) IsOnWork = arrangementView.FridayIsOnWork; if (i == (int)DayOfWeek.Saturday) IsOnWork = arrangementView.SaturdayIsOnWork; if (i == (int)DayOfWeek.Sunday) IsOnWork = arrangementView.SundayIsOnWork; ES_ClassroomScheduleSetting classroomScheduleSetting = new ES_ClassroomScheduleSetting(); classroomScheduleSetting.ClassroomScheduleSettingID = Guid.NewGuid(); classroomScheduleSetting.ClassroomID = classroomID; classroomScheduleSetting.CoursesTimeID = arrangementView.CoursesTimeID; classroomScheduleSetting.Weekday = i; classroomScheduleSetting.IsOnWork = IsOnWork; SetNewStatus(classroomScheduleSetting); UnitOfWork.Add(classroomScheduleSetting); } } UnitOfWork.Commit(); } catch (Exception) { throw; } } /// /// 删除 /// /// public void ClassroomScheduleSettingDelete(List classroomIDs) { try { UnitOfWork.Delete(x => classroomIDs.Contains(x.ClassroomID)); } catch (Exception) { throw; } } } }