public List <CalendarAllEventModel> GetDayEventList(string Own, string Company, string DepartMentNo, string EmpNo, string SDATE, string EDATE) { List <CalendarAllEventModel> query = new List <CalendarAllEventModel>(); List <CalendarEventModel> OutList = GetEventList(Own, Company, DepartMentNo, EmpNo, SDATE, EDATE); //群組組合 By 日期,人 var tmpList = from tmp in OutList group tmp by new { tmp.OwnFlag, tmp.start, tmp.EmployeeNo, tmp.EmployeeName, tmp.EmployeeEName } into g select new { OwnFlag = g.Key.OwnFlag, EmployeeNo = g.Key.EmployeeNo, EmployeeName = g.Key.EmployeeName, EmployeeEName = g.Key.EmployeeEName, start = g.Key.start, List = g.ToList() }; foreach (var tmp in tmpList) { CalendarAllEventModel Cal = new CalendarAllEventModel(); Cal.EmployeeNo = tmp.EmployeeNo; Cal.EmployeeName = tmp.EmployeeName; Cal.EmployeeEName = tmp.EmployeeEName; Cal.id = tmp.start + "@" + tmp.EmployeeNo; Cal.title = tmp.EmployeeName; Cal.start = tmp.start; Cal.allDay = true; Cal.self = true; Cal.EventList = tmp.List; query.Add(Cal); } return(query); }
public List <CalendarAllEventModel> GetCalendarAllList(string Own, string Company, string DepartMentNo, string EmpNo, string SDATE, string EDATE) { List <CalendarAllEventModel> query = new List <CalendarAllEventModel>(); List <CalendarEventModel> CalenderList = new List <CalendarEventModel>(); //將外出寫入日歷中 CalenderList.AddRange(GetEventList(Own, Company, DepartMentNo, EmpNo, SDATE, EDATE)); //群組組合 By 日期,人 var tmpList = from tmp in CalenderList group tmp by new { tmp.OwnFlag, tmp.start, tmp.EmployeeNo, tmp.EmployeeName, tmp.EmployeeEName } into g select new { OwnFlag = g.Key.OwnFlag, EmployeeNo = g.Key.EmployeeNo, EmployeeName = g.Key.EmployeeName, EmployeeEName = g.Key.EmployeeEName, start = g.Key.start, List = g.ToList() }; tmpList = (from tmp in tmpList orderby tmp.OwnFlag descending select tmp); int DayDisplayNum = 5; foreach (var tmp in tmpList) { int QueryNum = (from tmpQuery in query where tmpQuery.start == tmp.start || tmpQuery.start == tmp.start + " 23:59" || tmpQuery.start == tmp.start + " 09:00" select tmpQuery).Count(); //當目前筆數第四筆時判斷是否要寫入第五筆 if (QueryNum == DayDisplayNum - 1) { int Num = (from tmpQuery in tmpList where tmpQuery.start == tmp.start select tmpQuery).Count(); if (Num > DayDisplayNum) { //當此日期數 大於 五筆 回寫還有多少筆 query.Add(new CalendarAllEventModel() { id = tmp.start + "@END", title = "還有 " + (Num - (DayDisplayNum - 1)).ToString() + " 筆 ", start = tmp.start + " 23:59", allDay = true, self = true, backgroundColor = "transparent", color = "transparent", textColor = "#000", className = "EventMore" }); continue; } } else if (QueryNum >= 5) { //不允許寫入超過五筆 continue; } string color = "#E0F2F7"; //string OwnTime = " 00:00"; if (Own.Trim() == tmp.EmployeeNo) { color = "#F7D358";//登入者的顏色 } CalendarAllEventModel Cal = new CalendarAllEventModel(); Cal.EmployeeNo = tmp.EmployeeNo; Cal.EmployeeName = tmp.EmployeeName; Cal.EmployeeEName = tmp.EmployeeEName; Cal.id = tmp.start + "@" + tmp.EmployeeNo; Cal.title = tmp.EmployeeName + " - " + Cal.EmployeeEName; if (tmp.start.Length >= 11) { Cal.start = tmp.start; } else { Cal.start = tmp.start + " 09:00"; } Cal.allDay = true; Cal.self = true; Cal.EventList = tmp.List; Cal.backgroundColor = color; query.Add(Cal); } //將工作日寫入日歷中 List <CalendarEventModel> HolidayList = new List <CalendarEventModel>(); HolidayList.AddRange(GetHolidayList(Company, SDATE, EDATE)); for (int i = 0; i < HolidayList.Count; i++) { CalendarAllEventModel Cal = new CalendarAllEventModel(); Cal.EmployeeNo = ""; Cal.EmployeeName = ""; Cal.EmployeeEName = ""; Cal.id = HolidayList[i].id; Cal.title = HolidayList[i].title; Cal.start = HolidayList[i].start; Cal.allDay = true; Cal.self = true; Cal.backgroundColor = HolidayList[i].backgroundColor; Cal.color = HolidayList[i].color; Cal.textColor = HolidayList[i].textColor; query.Add(Cal); } return(query); }