public IEnumerable <ModelMR> GetMeetingRoom(string site, string plant, string loc) { APIHelper ws = new APIHelper(); List <ModelMR> lis = ws.GetMeetingRoom(site, plant, loc).ToList <ModelMR>(); UserInfo vUserInfo = new UserInfo(); string userAD = vUserInfo.UserId.ToLower(); HR ff = new HR(); DataSet ds = ff.GetManager(userAD); List <string> DeptArray = ds.Tables[0].AsEnumerable().Select(x => x["DEPTID"].ToString()).ToList(); ds.Dispose(); DeptArray.Add(userAD); lis = lis.Where(x => x.ACCESSRIGHT == "" || DeptArray.Any( y => x.ACCESSRIGHT.Contains(y)) ).Select(x => x).ToList <ModelMR>(); return(lis); }
public IEnumerable <ModelRecord> GetFreeEventByRoom(string site, string plant, string loc, string stime) { APIHelper ws = new APIHelper(); UserInfo vUserInfo = new UserInfo(); string userAD = vUserInfo.UserId.ToLower(); // 取得有權限的ROOM List <ModelMR> lis = ws.GetMeetingRoom(site, plant, loc).ToList <ModelMR>(); HR ff = new HR(); DataSet ds = ff.GetManager(userAD); List <string> DeptArray = ds.Tables[0].AsEnumerable().Select(x => x["DEPTID"].ToString()).ToList(); ds.Dispose(); DeptArray.Add(userAD); lis = lis.Where(x => x.ACCESSRIGHT == "" || DeptArray.Any( y => x.ACCESSRIGHT.Contains(y)) ).Select(x => x).ToList <ModelMR>(); DateTime dts = DateTime.Parse(stime); string sdate = dts.ToString("yyyy/MM/dd"); // 取得結束日期 大於起始時間的記錄 IEnumerable <ModelRecord> RecordList = ws.GetBookingData( sdate, userAD, lis.Select(x => x.ROOMID).ToList()) .Where(x => DateTime.Compare(DateTime.Parse(x.ENDTIME), dts) > 0) .ToList <ModelRecord>(); List <ModelRecord> ret = new List <ModelRecord>(); foreach (ModelMR mr in lis) { IEnumerable <ModelRecord> tRecord = RecordList.Where(x => x.ROOMID == mr.ROOMID).ToList(); if (tRecord.Count() > 0) { DateTime minStartTime = RecordList.Where(x => x.ROOMID == mr.ROOMID).Select(x => DateTime.Parse(x.STARTTIME)).Min(); if (DateTime.Compare(dts, minStartTime) > 0) { // 此會議室忙碌 } else { ret.Add(new ModelRecord { APPLIER = "PreBooking", APPLIEREXT = "PreBooking", APPLIERID = "PreBooking", BOOKTYPE = "PreBooking", DATEDAY = dts.DayOfWeek.ToString(), ENDTIME = minStartTime.ToString("yyyy/MM/dd HH:mm:ss"), STARTTIME = dts.ToString("yyyy/MM/dd HH:mm:ss"), ROOMNAME = mr.ROOMNAME, RECORDID = Guid.NewGuid().ToString(), ROOMID = mr.ROOMID }); } } else { ret.Add(new ModelRecord { APPLIER = "PreBooking", APPLIEREXT = "PreBooking", APPLIERID = "PreBooking", BOOKTYPE = "PreBooking", DATEDAY = dts.DayOfWeek.ToString(), ENDTIME = DateTime.Parse(sdate).AddHours(22).ToString("yyyy/MM/dd HH:mm:ss"), STARTTIME = dts.ToString("yyyy/MM/dd HH:mm:ss"), ROOMNAME = mr.ROOMNAME, RECORDID = Guid.NewGuid().ToString(), ROOMID = mr.ROOMID, ALLOWPERSON = mr.MINP.ToString() + " ~ " + mr.MAXP.ToString() }); } } return(ret); }