コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }