Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult LookupDate()
        {
            var model = new RoomLookUpModel
            {
                NewDate  = DateTime.Today.ToShortDateString(),
                NewBegin = DateTime.Now.TimeOfDay.ToString(),
                NewEnd   = DateTime.Now.AddMinutes(90).TimeOfDay.ToString(),
                NewDate2 = DateTime.Today.ToShortDateString(),
            };

            return(View(model));
        }
Exemplo n.º 2
0
        public PartialViewResult Search(RoomLookUpModel model)
        {
            var sDateStart = DateTime.Parse(model.NewDate);
            var sDateEnd   = DateTime.Parse(model.NewDate2);
            var sBegin     = TimeSpan.Parse(model.NewBegin);
            var sEnd       = TimeSpan.Parse(model.NewEnd);

            var roomService = new MyStik.TimeTable.Web.Services.RoomService();
            var org         = GetMyOrganisation();
            var userRight   = GetUserRight(User.Identity.Name, org.ShortName);


            if (sDateEnd < sDateStart)
            {
                return(PartialView("_ErrorMsg", "Enddatum ist kleiner als Startdatum"));
            }

            if (sEnd < sBegin)
            {
                return(PartialView("_ErrorMsg", "Ende ist kleiner als Beginn"));
            }

            var result = new RoomSearchResultModel();

            result.Begin = sBegin;
            result.End   = sEnd;


            // Fallunterscheidungen
            // gleicher Tag
            if (sDateStart == sDateEnd)
            {
                var from  = sDateStart.Add(sBegin);
                var until = sDateStart.Add(sEnd);
                var rooms = roomService.GetFreeRooms(org.Id, userRight.IsRoomAdmin, from, until);
                result.Rooms   = rooms.ToList();
                result.DayList = new List <DateTime>();
                result.DayList.Add(sDateStart);
                return(PartialView("_SearchResultList", result));
            }

            // Zeitraum, ggf. Wochentage berücksichtigen
            // ermittle alle Tage zwischen Beginn und Ende
            var dateList = new List <DateTime>();
            var date     = sDateStart;

            if (!model.IsMonday && !model.IsTuesday && !model.IsWednesday &&
                !model.IsThursday && !model.IsFriday && !model.IsSaturday &&
                !model.IsSunday)
            {
                while (date <= sDateEnd)
                {
                    dateList.Add(date);
                    date = date.AddDays(1);
                }
            }
            else
            {
                while (date <= sDateEnd)
                {
                    if (model.IsMonday && date.DayOfWeek == DayOfWeek.Monday)
                    {
                        dateList.Add(date);
                    }
                    if (model.IsTuesday && date.DayOfWeek == DayOfWeek.Tuesday)
                    {
                        dateList.Add(date);
                    }
                    if (model.IsWednesday && date.DayOfWeek == DayOfWeek.Wednesday)
                    {
                        dateList.Add(date);
                    }
                    if (model.IsThursday && date.DayOfWeek == DayOfWeek.Thursday)
                    {
                        dateList.Add(date);
                    }
                    if (model.IsFriday && date.DayOfWeek == DayOfWeek.Friday)
                    {
                        dateList.Add(date);
                    }
                    if (model.IsSaturday && date.DayOfWeek == DayOfWeek.Saturday)
                    {
                        dateList.Add(date);
                    }
                    if (model.IsSunday && date.DayOfWeek == DayOfWeek.Sunday)
                    {
                        dateList.Add(date);
                    }

                    date = date.AddDays(1);
                }
            }

            var rooms2 = roomService.GetFreeRooms(org.Id, userRight.IsRoomAdmin, dateList, sBegin, sEnd);

            result.DayList = dateList;
            result.Rooms   = rooms2.ToList();

            return(PartialView("_SearchResultList", result));
        }