Пример #1
0
 public ActionResult IndexPost()
 {
     using (CoolMeetingDbContext db = new CoolMeetingDbContext())
     {
         db.Departments.ToList();
     }
     ViewBag.Result = "数据库生成成功!";
     return(View());
 }
Пример #2
0
        public static List <Meeting> GetMeetingsSortedAndPaged(string meetingName, string reservationistName,
                                                               DateTime?fromDate, DateTime?toDate, bool?canceled,
                                                               int pageIndex, string sortFieldName, bool?descending, out int total)
        {
            using (CoolMeetingDbContext db = new CoolMeetingDbContext())
            {
                var query = db.Meetings.Include(m => m.Reservationist).Include(m => m.RoomReserved);

                if (!string.IsNullOrEmpty(meetingName))
                {
                    query = query.Where(m => m.MeetingName.Contains(meetingName));
                }
                if (!string.IsNullOrEmpty(reservationistName))
                {
                    query = query.Where(m => m.Reservationist.EmployeeName.Contains(reservationistName));
                }
                if (fromDate.HasValue)
                {
                    query = query.Where(m => m.StartTime >= fromDate.Value);
                }
                if (toDate.HasValue)
                {
                    query = query.Where(m => m.StartTime <= toDate.Value);
                }
                if (canceled.HasValue)
                {
                    query = query.Where(m => m.IsCanceled == canceled.Value);
                }
                else
                {
                    query = query.Where(m => m.IsCanceled == false);
                }

                // 处理排序
                if (string.IsNullOrEmpty(sortFieldName))        // 默认情况下按照ID逆序排列
                {
                    sortFieldName = "MeetingID";
                    descending    = true;
                }
                else
                {
                    descending = descending.HasValue ? descending.Value : false;
                }
                query = EFSortHelper.PagedSort(query, sortFieldName, descending.Value);

                // 获取查询结果总数
                total = query.Count();

                // 分页
                query = query.Skip(PAGE_SIZE * pageIndex).Take(PAGE_SIZE);

                return(query.ToList());
            }
        }
Пример #3
0
        public static List <Employee> GetEmployeesSortedAndPaged(
            string employeeName, string userName, string email,
            int?department, int?status, int pageIndex,
            string sortFieldName, bool?descending,
            out int total)
        {
            using (CoolMeetingDbContext db = new CoolMeetingDbContext())
            {
                var query = db.Employees.Include(e => e.Department);

                if (!string.IsNullOrEmpty(employeeName))
                {
                    query = query.Where(emp => emp.EmployeeName.Contains(employeeName));
                }
                if (!string.IsNullOrEmpty(userName))
                {
                    query = query.Where(emp => emp.UserName.Contains(userName));
                }
                if (!string.IsNullOrEmpty(email))
                {
                    query = query.Where(emp => emp.Email == email);
                }
                if (department.HasValue)
                {
                    query = query.Where(emp => emp.DepartmentID == department.Value);
                }
                if (status.HasValue && status.Value == 1)
                {
                    query = query.Where(emp => emp.IsDeleted == true);
                }
                else
                {
                    query = query.Where(emp => emp.IsDeleted == false);
                }

                // 处理排序
                sortFieldName = string.IsNullOrEmpty(sortFieldName) ? "EmployeeID" : sortFieldName;
                descending    = descending.HasValue ? descending.Value : false;
                query         = EFSortHelper.PagedSort(query, sortFieldName, descending.Value);

                // 获取查询结果总数
                total = query.Count();

                // 分页
                query = query.Skip(PAGE_SIZE * pageIndex).Take(PAGE_SIZE);

                return(query.ToList());
            }
        }
Пример #4
0
        public static bool CheckRoom(Meeting meeting, out string errorMessage)
        {
            using (CoolMeetingDbContext db = new CoolMeetingDbContext())
            {
                if (meeting.StartTime <= DateTime.Now)
                {
                    errorMessage = "会议起始时间不能早于当前时间";
                    return(false);
                }

                if (meeting.StartTime >= meeting.EndTime)
                {
                    errorMessage = "会议结束时间不能早于起始时间";
                    return(false);
                }

                Room room = db.Rooms.Find(meeting.RoomID);
                // 检查会议室容量
                if (room.Capacity < meeting.NumberOfParticipants)
                {
                    errorMessage = "会议室容量太小";
                    return(false);
                }

                // 检查会议室的时间段是否可用
                var existed = db.Meetings.Where(m => !m.IsCanceled && m.RoomID == meeting.RoomID).
                              FirstOrDefault(m =>
                                             (m.StartTime > meeting.StartTime && m.StartTime < meeting.EndTime) ||
                                             (m.EndTime > meeting.StartTime && m.EndTime < meeting.EndTime));
                if (existed != null)
                {
                    errorMessage = "会议室时间冲突";
                    return(false);
                }
                errorMessage = "";
                return(true);
            }
        }