/// <summary> /// 获得与fromDate-toDate事件上有交集的请假信息 /// </summary> /// <param name="accountID"></param> /// <param name="fromDate"></param> /// <param name="toDate"></param> /// <returns></returns> public List <LeaveRequest> GetLeaveRequestByAccountAndRelatedDate(int accountID, DateTime fromDate, DateTime toDate) { #region 找出所有符合条件的请假单及其符合条件的子项 //0 新增;1 提交;2 审核不通过;3 审核通过;4 取消请假;5 拒绝取消假期;6 批准取消假期;7 审核中;8 审核取消中 //根据账号找出所有审核通过、取消请假、拒绝取消假期、审核取消中的请假单 List <LeaveRequest> LeaveRequest = _DalLeaveRequest.GetAllLeaveRequestByAccountIDForCalendar(accountID); for (int i = 0; i < LeaveRequest.Count; i++) { DateTime fromDt = Convert.ToDateTime("1900-1-1"); if (LeaveRequest[i].FromDate != null) { fromDt = Convert.ToDateTime(LeaveRequest[i].FromDate); } DateTime toDt = Convert.ToDateTime("2999-12-31"); if (LeaveRequest[i].FromDate != null) { toDt = Convert.ToDateTime(LeaveRequest[i].ToDate); } //判断这张请假单是否在时间范围内 if (AdjustTime(fromDt, toDt, fromDate, toDate)) { List <LeaveRequestItem> leaveRequestItemList = new List <LeaveRequestItem>(); foreach (LeaveRequestItem item in LeaveRequest[i].LeaveRequestItems) { //判断子项是否在时间范围内 if (AdjustTime(item.FromDate, item.ToDate, fromDate, toDate)) { leaveRequestItemList.Add(item); } } LeaveRequest[i].LeaveRequestItems = leaveRequestItemList; } else { LeaveRequest.RemoveAt(i); i--; } } #endregion return(LeaveRequest); }