/// <summary>
        ///
        /// </summary>
        public List <DayAttendance> GetAllCalendarByEmployee(int AccountID, DateTime fromDate, DateTime toDate)
        {
            List <DayAttendance>      dayAttendance             = new List <DayAttendance>();
            List <OutApplicationItem> outApplicationItemList    = new List <OutApplicationItem>();
            List <OutApplicationItem> outApplicationItemFromDal =
                _OutApplicationDal.GetAllOutApplicationForCalendar(AccountID, fromDate, toDate);

            foreach (OutApplicationItem item in outApplicationItemFromDal)
            {
                OutApplicationItem outApplicationItem =
                    _OutApplicationDal.GetOutApplicationItemByItemID(item.ItemID);
                item.OutApplicationID = outApplicationItem.OutApplicationID;
                outApplicationItemList.Add(item);

                //if (item.Status == RequestStatus.Cancelled || item.Status == RequestStatus.CancelApproving)
                //{
                //    OutApplicationItem outApplicationItem =
                //        _OutApplicationDal.GetOutApplicationItemByItemID(item.ItemID);
                //    if (OutApplicationUtility.IsAgreed(outApplicationItem))
                //    {
                //        outApplicationItemList.Add(item);
                //    }
                //}
                //else
                //{
                //    outApplicationItemList.Add(item);
                //}
            }
            foreach (OutApplicationItem item in outApplicationItemList)
            {
                OutType outType = _OutApplicationDal.GetOutApplicationByOutApplicationID(item.OutApplicationID).OutType;
                if (outType.ID == OutType.InCity.ID)
                {
                    string typeName = "外出";
                    typeName = GetTypeName(item, typeName);
                    CalculateOutHour cal = new CalculateOutHour(item.FromDate, item.ToDate, AccountID, typeName);
                    cal.Excute();
                    dayAttendance.AddRange(cal.DayAttendanceList);
                }
                else if (outType.ID == OutType.OutCity.ID)
                {
                    string typeName = OutType.OutCity.Name;
                    typeName = GetTypeName(item, typeName);
                    CalculateOutCityHour cal = new CalculateOutCityHour(item.FromDate, item.ToDate, typeName, AccountID);
                    cal.Excute();
                    dayAttendance.AddRange(cal.DayAttendanceList);
                }
                else if (outType.ID == OutType.Train.ID)
                {
                    string typeName = OutType.Train.Name;
                    typeName = GetTypeName(item, typeName);
                    CalculateOutHour cal = new CalculateOutHour(item.FromDate, item.ToDate, AccountID, typeName);
                    cal.Excute();
                    dayAttendance.AddRange(cal.DayAttendanceList);
                }
            }
            return(dayAttendance);
        }
        /// <summary>
        ///
        /// </summary>
        public List <DayAttendance> GetCalendarByEmployee(int AccountID, DateTime fromDate, DateTime toDate)
        {
            List <DayAttendance>      dayAttendance             = new List <DayAttendance>();
            List <OutApplicationItem> outApplicationItemList    = new List <OutApplicationItem>();
            List <OutApplicationItem> outApplicationItemFromDal =
                _OutApplicationDal.GetOutApplicationForCalendar(AccountID, fromDate, toDate);

            foreach (OutApplicationItem item in outApplicationItemFromDal)
            {
                OutApplicationItem outApplicationItem =
                    _OutApplicationDal.GetOutApplicationItemByItemID(item.ItemID);
                item.OutApplicationID = outApplicationItem.OutApplicationID;
                if (item.Status == RequestStatus.Cancelled || item.Status == RequestStatus.CancelApproving)
                {
                    if (OutApplicationUtility.IsAgreed(outApplicationItem))
                    {
                        outApplicationItemList.Add(item);
                    }
                }
                else
                {
                    outApplicationItemList.Add(item);
                }
            }
            foreach (OutApplicationItem item in outApplicationItemList)
            {
                OutType outType = _OutApplicationDal.GetOutApplicationByOutApplicationID(item.OutApplicationID).OutType;
                if (outType.ID == OutType.InCity.ID || outType.ID == OutType.OutCity.ID)
                {
                    CalculateOutHour cal = new CalculateOutHour(item.FromDate, item.ToDate, AccountID);
                    cal.Excute();
                    dayAttendance.AddRange(cal.DayAttendanceList);
                }
                else if (outType.ID == OutType.OutCity.ID)
                {
                    CalculateOutCityHour cal = new CalculateOutCityHour(item.FromDate, item.ToDate, AccountID);
                    cal.Excute();
                    dayAttendance.AddRange(cal.DayAttendanceList);
                }
            }
            return(dayAttendance);
        }