/// <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)); }
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)); }