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