// GET: Banquetes public ActionResult Index(Reservacion.VMFiltroEventos filtroReservaciones, bool listMode = false, bool soloCotizaciones = false) { List <Banquete> reservaciones = filterReservaciones(filtroReservaciones, soloCotizaciones); ViewBag.result = reservaciones; ViewBag.listMode = listMode; ViewBag.soloCotizaciones = soloCotizaciones; return(View(filtroReservaciones)); }
/// <summary> /// Busca las reservaciones cuyas sesiones entran dentro del rango de tiempo indicado. /// </summary> /// <param name="filtroReservaciones">Objeto que representa el rango de tiempo de busqueda.</param> /// <returns></returns> private IEnumerable <Reservacion> filterReservaciones(Reservacion.VMFiltroEventos filtroReservaciones, bool soloCotizaciones = false) { TimePeriod periodo = filtroReservaciones.TimePeriod; List <Reservacion> reservaciones = new List <Reservacion>(); //Se seleccionan las reservaciones cuyas sesiones tienen horarios de inicio o fin dentro del rango de busqueda reservaciones = db.reservaciones.Where(res => res.esCotizacion == soloCotizaciones).SelectMany(res => res.sesiones) .Where(s => s.periodoDeSesion.startDate >= periodo.startDate && s.periodoDeSesion.startDate <= periodo.endDate || s.periodoDeSesion.endDate >= periodo.startDate && s.periodoDeSesion.endDate <= periodo.endDate) .Select(s => s.reservacion).Distinct().ToList(); //Se ordenan cronologicamente por fecha de inicio reservaciones = reservaciones.OrderByDescending(r => r.fechaEventoInicial).ToList(); return(reservaciones); }
public JsonResult apiReservacionesFilter(string from, string to) { //Se prepara el filtro para buscar las reservaciones Reservacion.VMFiltroEventos filtroReservaciones = new Reservacion.VMFiltroEventos(); if (!string.IsNullOrEmpty(from) && !string.IsNullOrEmpty(to)) { DateTime dtRef = Reservacion.ReservacionInScheduleJS.JS_DATE_REF; //El cliente esta enviando hora con GMT -7, se corrige //TODO: ¿De que manera es posible indicarle al calendario que la fecha debe enviarse en formato universal DateTime startDate = dtRef.AddMilliseconds(double.Parse(from)).AddHours(-7); DateTime endDate = dtRef.AddMilliseconds(double.Parse(to)).AddHours(-7); filtroReservaciones.TimePeriod = new TimePeriod(startDate, endDate); } var reservaciones = filterReservaciones(filtroReservaciones); List <Reservacion.ReservacionInScheduleJS> itemsForSchedule = new List <Reservacion.ReservacionInScheduleJS>(); reservaciones.ToList().ForEach(res => Reservacion.ReservacionInScheduleJS.ReservacionInSesionesForScheduleJS(res, ref itemsForSchedule)); return(Json(new { success = 1, result = itemsForSchedule }, JsonRequestBehavior.AllowGet)); }