コード例 #1
0
        /// <summary>
        /// @author: duynn
        /// @description: lấy danh sách lịch đặt phòng họp
        /// </summary>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public List <QLPHONGHOP_BO> GetData(QLPHONGHOP_SEARCH searchModel)
        {
            IQueryable <QLPHONGHOP_BO> queryResult = (from cal in this.context.QUANLY_PHONGHOP.Where(x => x.IS_DELETE != true && x.NGAYDAT != null)
                                                      join user in this.context.DM_NGUOIDUNG
                                                      on cal.USER_ID equals user.ID
                                                      into group1
                                                      from g1 in group1.DefaultIfEmpty()

                                                      join room in this.context.QL_PHONGHOP
                                                      on cal.PHONG_ID equals room.ID
                                                      into group2
                                                      from g2 in group2.DefaultIfEmpty()

                                                      select new QLPHONGHOP_BO()
            {
                ID = cal.ID,
                USER_ID = cal.USER_ID,
                TEN_LANHDAO = g1.HOTEN,
                PHONG_ID = cal.PHONG_ID,
                MUCDICH = cal.MUCDICH ?? string.Empty,
                THANHPHANTHAMDU = cal.THANHPHANTHAMDU,
                NGAYDAT = cal.NGAYDAT,
                GIOBATDAU = cal.GIOBATDAU ?? 0,
                PHUTBATDAU = cal.PHUTBATDAU ?? 0,
                GIOKETTHUC = cal.GIOKETTHUC ?? 0,
                PHUTKETTHUC = cal.PHUTKETTHUC ?? 0,
                CREATED_AT = cal.CREATED_AT,
                CREATED_BY = cal.CREATED_BY,
                CCTC_THANHPHAN_ID = cal.CCTC_THANHPHAN_ID ?? 0,
            });

            if (searchModel != null)
            {
                if (searchModel.queryUserId != null)
                {
                    queryResult = queryResult.Where(x => x.USER_ID == searchModel.queryUserId.Value);
                }
                if (searchModel.queryDeptParentID != null)
                {
                    queryResult = queryResult.Where(x => x.CCTC_THANHPHAN_ID == searchModel.queryDeptParentID.Value);
                }
                if (searchModel.queryStartDate != null)
                {
                    queryResult = queryResult.Where(x => x.NGAYDAT >= searchModel.queryStartDate.Value);
                }
                if (searchModel.queryEndDate != null)
                {
                    searchModel.queryEndDate = searchModel.queryEndDate.ToEndDay();
                    queryResult = queryResult.Where(x => x.NGAYDAT <= searchModel.queryEndDate);
                }
            }
            List <QLPHONGHOP_BO> result = queryResult.ToList();

            return(result);
        }
コード例 #2
0
        public PartialViewResult SearchLichDatPhong(QLPHONGHOP_SEARCH searchModel)
        {
            AssignUserInfo();
            QUANLY_PHONGHOPBusiness = Get <QUANLY_PHONGHOPBusiness>();

            if (searchModel.calendarDay == null)
            {
                searchModel.calendarDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            }
            else
            {
                searchModel.calendarDay = new DateTime(searchModel.calendarDay.Value.Year, searchModel.calendarDay.Value.Month, searchModel.calendarDay.Value.Day);
            }

            DateTime today      = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            DateTime currentDay = searchModel.calendarDay.Value;
            DateTime inValidDay = new DateTime(1, 1, 1);

            List <SelectListItem> groupOfYears = QUANLY_PHONGHOPBusiness.GetListYears(currentDay);
            List <SelectListItem> groupOfWeeks = Enumerable.Range(1, 52).Select(w => new SelectListItem()
            {
                Value    = w.ToString(),
                Text     = "Tuần " + w,
                Selected = (currentDay.GetWeekNumber() == w)
            }).ToList();

            var groupOfMonths = Enumerable.Range(1, 12).Select(m => new SelectListItem()
            {
                Value    = m.ToString(),
                Text     = "Tháng " + m,
                Selected = (currentDay.Month == m)
            }).ToList();

            searchModel.queryDeptParentID = currentUser.DeptParentID.GetValueOrDefault();
            if (searchModel.calendarType == LICH_CONSTANT.NGAY)
            {
                //nếu người dùng không nhập thông tin ngày bắt đầu và kết thúc mặc định lấy ngày đầu và kêt thúc của tuần hiện tại
                if (searchModel.queryStartDate == null && searchModel.queryEndDate == null)
                {
                    searchModel.queryStartDate = currentDay.GetStartDayOfWeek();
                    searchModel.queryEndDate   = currentDay.GetEndDayOfWeek();
                }

                LichHopByDayViewModel viewModel = new LichHopByDayViewModel();
                viewModel.currentUserId   = currentUser.ID;
                viewModel.startDate       = searchModel.queryStartDate;
                viewModel.endDate         = searchModel.queryEndDate;
                viewModel.title           = string.Format("Từ {0} đến {1}", string.Format("{0:dd/MM/yyyy}", searchModel.queryStartDate), string.Format("{0:dd/MM/yyyy}", searchModel.queryEndDate));
                viewModel.groupOfEntities = QUANLY_PHONGHOPBusiness.GetData(searchModel)
                                            .GroupBy(x => x.NGAYDAT.Value)
                                            .OrderBy(x => x.Key)
                                            .Select(x => new LichCongTacEntityViewModel()
                {
                    isToday          = x.Key.Equals(today),
                    title            = string.Format("{0} ({1})", x.Key.GetNameOfDay(), x.Key.ToVietnameseDateFormat()),
                    groupOfCalendars = x.OrderBy(y => y.GIOBATDAU).ThenBy(y => y.PHUTBATDAU).ToList()
                }).ToList();
                return(PartialView("_LichDatPhongByDay", viewModel));
            }
            else if (searchModel.calendarType == LICH_CONSTANT.TUAN)
            {
                LichHopByWeekViewModel viewModel = new LichHopByWeekViewModel();
                viewModel.currentUserId = currentUser.ID;
                var startOfWeek = currentDay.GetStartDayOfWeek();
                var endOfWeek   = currentDay.GetEndDayOfWeek();

                //gán vào search model
                searchModel.queryStartDate = startOfWeek;
                searchModel.queryEndDate   = endOfWeek;

                //lấy các ngày trong tuần
                viewModel.groupOfDates = new List <DateTime>();
                viewModel.title        = currentDay.GetNameOfWeek() + " (" + startOfWeek.GetNameOfDay() + ", " + startOfWeek.ToVietnameseDateFormat() + " - " + endOfWeek.GetNameOfDay() + ", " + endOfWeek.ToVietnameseDateFormat() + ")";
                viewModel.groupOfWeeks = groupOfWeeks;
                viewModel.groupOfYears = groupOfYears;
                for (DateTime d = startOfWeek; d <= endOfWeek; d = d.AddDays(1))
                {
                    viewModel.groupOfDates.Add(d);
                }

                //lấy từng khung giờ trong mỗi ngày
                viewModel.groupOfHours = new List <LichHopByHourViewModel>();
                for (int hour = 8; hour <= 23; hour++)
                {
                    LichHopByHourViewModel hourEntity = new LichHopByHourViewModel();
                    hourEntity.title           = hour.ToString("D2");
                    hourEntity.groupOfEntities = new List <LichCongTacEntityViewModel>();
                    for (DateTime d = startOfWeek; d <= endOfWeek; d = d.AddDays(1))
                    {
                        LichCongTacEntityViewModel entity = new LichCongTacEntityViewModel();
                        entity.entityDay        = d;
                        entity.isToday          = d.Equals(today);
                        entity.groupOfCalendars = QUANLY_PHONGHOPBusiness.GetData(searchModel)
                                                  .Where(x => x.NGAYDAT == d)
                                                  .Where(x => x.GIOBATDAU == hour)
                                                  .OrderBy(x => x.PHUTBATDAU)
                                                  .ToList();
                        hourEntity.groupOfEntities.Add(entity);
                    }
                    viewModel.groupOfHours.Add(hourEntity);
                }

                return(PartialView("_LichDatPhongByWeek", viewModel));
            }
            else
            {
                LichHopByMonthViewModel viewModel = new LichHopByMonthViewModel();
                viewModel.currentUserId = currentUser.ID;
                viewModel.day           = currentDay.Day;
                viewModel.month         = currentDay.Month;
                viewModel.year          = currentDay.Year;
                viewModel.groupOfMonths = groupOfMonths;
                viewModel.groupOfYears  = groupOfYears;
                viewModel.title         = string.Format("Tháng {0}, năm {1}", viewModel.month, viewModel.year);
                //int weeksOfMonth = Utility.GetWeeksOfMonth(viewModel.month, viewModel.year);
                int             lastDayOfMonth = DateTime.DaysInMonth(viewModel.year, viewModel.month);
                List <DateTime> daysInMonth    = Enumerable.Range(1, lastDayOfMonth)
                                                 .Select(x => new DateTime(viewModel.year, viewModel.month, x))
                                                 .ToList();

                //gán vào search model
                searchModel.queryStartDate = new DateTime(viewModel.year, viewModel.month, 1);
                searchModel.queryEndDate   = new DateTime(viewModel.year, viewModel.month, lastDayOfMonth);

                //lấy các tuần trong tháng
                viewModel.groupOfWeeks = new List <LichHopByWeekViewModel>();
                for (int week = 1; week <= 6; week++)
                {
                    LichHopByWeekViewModel weekEntity = new LichHopByWeekViewModel();
                    weekEntity.groupOfDays = new List <LichCongTacEntityViewModel>();

                    List <DateTime> daysOfWeek = daysInMonth.Where(x => x.GetWeekOfMonth() == week).ToList();
                    //lấy các ngày trong tuần
                    for (int day = (int)DayOfWeek.Sunday; day <= (int)DayOfWeek.Saturday; day++)
                    {
                        LichCongTacEntityViewModel dayEntity = new LichCongTacEntityViewModel();
                        DateTime dayOfWeek = daysOfWeek.Where(x => (int)x.DayOfWeek == day).FirstOrDefault();
                        if (dayOfWeek.Equals(inValidDay) == false)
                        {
                            dayEntity.title            = dayOfWeek.Day.ToString();
                            dayEntity.entityDay        = dayOfWeek;
                            dayEntity.isToday          = dayOfWeek.Equals(today);
                            dayEntity.groupOfCalendars = QUANLY_PHONGHOPBusiness.GetData(searchModel)
                                                         .Where(x => x.NGAYDAT.Value.Day == dayOfWeek.Day)
                                                         .OrderBy(x => x.GIOBATDAU)
                                                         .ThenBy(x => x.PHUTBATDAU)
                                                         .ToList();
                        }
                        weekEntity.groupOfDays.Add(dayEntity);
                    }
                    viewModel.groupOfWeeks.Add(weekEntity);
                }
                return(PartialView("_LichDatPhongByMonth", viewModel));
            }
        }
コード例 #3
0
        public PartialViewResult SearchPhongHop(QLPHONGHOP_SEARCH searchModel)
        {
            AssignUserInfo();
            QL_PHONGHOPBusiness     = Get <QL_PHONGHOPBusiness>();
            QUANLY_PHONGHOPBusiness = Get <QUANLY_PHONGHOPBusiness>();
            DM_DANHMUC_DATABusiness = Get <DM_DANHMUC_DATABusiness>();
            if (searchModel.calendarDay == null)
            {
                searchModel.calendarDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            }
            else
            {
                searchModel.calendarDay = new DateTime(searchModel.calendarDay.Value.Year, searchModel.calendarDay.Value.Month, searchModel.calendarDay.Value.Day);
            }
            DateTime          today      = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            DateTime          currentDay = searchModel.calendarDay.Value;
            PhongHopViewModel viewModel  = new PhongHopViewModel();
            var startOfWeek = currentDay.GetStartDayOfWeek();
            var endOfWeek   = currentDay.GetEndDayOfWeek();

            //gán vào search model
            searchModel.queryStartDate    = startOfWeek;
            searchModel.queryEndDate      = endOfWeek;
            searchModel.queryDeptParentID = currentUser.DeptParentID.GetValueOrDefault();
            //lấy các ngày trong tuần
            viewModel.groupOfDates = new List <DateTime>();
            for (DateTime day = startOfWeek; day <= endOfWeek; day = day.AddDays(1))
            {
                viewModel.groupOfDates.Add(day);
            }

            viewModel.title        = currentDay.GetNameOfWeek() + " (" + startOfWeek.GetNameOfDay() + ", " + startOfWeek.ToVietnameseDateFormat() + " - " + endOfWeek.GetNameOfDay() + ", " + endOfWeek.ToVietnameseDateFormat() + ")";
            viewModel.groupOfYears = QUANLY_PHONGHOPBusiness.GetListYears(currentDay);
            viewModel.groupOfWeeks = Enumerable.Range(1, 52).Select(w => new SelectListItem()
            {
                Value    = w.ToString(),
                Text     = "Tuần " + w,
                Selected = (currentDay.GetWeekNumber() == w)
            }).ToList();

            //lấy danh sách các lịch đặt phòng
            List <QLPHONGHOP_BO> calendars = QUANLY_PHONGHOPBusiness.GetData(searchModel);
            //lấy danh sách các phòng
            List <QL_PHONGHOP> rooms = QL_PHONGHOPBusiness.context.QL_PHONGHOP.Where(x => x.DEPID == currentUser.DeptParentID).ToList();

            viewModel.groupOfCalendars = new List <LichCongTacEntityViewModel>();
            for (DateTime day = startOfWeek; day <= endOfWeek; day = day.AddDays(1))
            {
                LichCongTacEntityViewModel dayEntity = new LichCongTacEntityViewModel();
                dayEntity.title            = string.Format("{0} ({1})", day.GetNameOfDay(), day.ToVietnameseDateFormat());
                dayEntity.isToday          = day.Equals(today);
                dayEntity.groupOfCalendars = calendars.Where(x => x.NGAYDAT == day && x.PHONG_ID == 0)
                                             .OrderBy(x => x.GIOBATDAU).ThenBy(x => x.PHUTBATDAU)
                                             .ThenBy(x => x.USER_ID)
                                             .ToList();
                viewModel.groupOfCalendars.Add(dayEntity);
            }
            viewModel.groupOfRooms = new List <PhongHopEntity>();
            foreach (var room in rooms)
            {
                PhongHopEntity roomEntity = new PhongHopEntity();
                roomEntity.name             = room.TENPHONG;
                roomEntity.groupOfCalendars = new List <LichCongTacEntityViewModel>();
                for (DateTime day = startOfWeek; day <= endOfWeek; day = day.AddDays(1))
                {
                    LichCongTacEntityViewModel dayEntity = new LichCongTacEntityViewModel();
                    dayEntity.groupMorningItems = calendars
                                                  .Where(x => x.NGAYDAT == day && x.PHONG_ID == room.ID)
                                                  .Where(x => x.GIOBATDAU <= 12)
                                                  .OrderBy(x => x.GIOBATDAU)
                                                  .ThenBy(x => x.PHUTBATDAU)
                                                  .ToList();
                    dayEntity.groupAfternoonItems = calendars
                                                    .Where(x => x.NGAYDAT == day && x.PHONG_ID == room.ID)
                                                    .Where(x => x.GIOBATDAU > 13)
                                                    .OrderBy(x => x.GIOBATDAU)
                                                    .ThenBy(x => x.PHUTBATDAU)
                                                    .ToList();

                    roomEntity.groupOfCalendars.Add(dayEntity);
                }

                viewModel.groupOfRooms.Add(roomEntity);
            }
            return(PartialView("_ListPhongHop", viewModel));
        }