public VMDataContractReservacion(Reservacion resContrato)
            {
                fechaInicioEvento    = resContrato.fechaEventoInicial.ToShortDateString();
                fechaFinEvento       = resContrato.fechaEventoFinal.ToShortDateString();
                duracionEvento       = resContrato.TiempoTotal.TotalHours.ToString();
                descripcionServicios = String.IsNullOrEmpty(resContrato.Detalles)?string.Empty:resContrato.Detalles;
                telefono             = String.IsNullOrEmpty(resContrato.cliente.telefono) ? string.Empty : resContrato.cliente.telefono;
                correo           = String.IsNullOrEmpty(resContrato.cliente.email) ? string.Empty : resContrato.cliente.email;
                fechaReservacion = resContrato.fechaReservacion.ToLongDateString();
                cantidadPersonas = resContrato.CantidadPersonas.ToString();
                diaEvento        = resContrato.fechaEventoInicial.Day.ToString();
                mesEvento        = DatesTools.DatesToText.ConvertToMonth(resContrato.fechaEventoInicial, "es").ToUpperInvariant();
                yearEvento       = resContrato.fechaEventoInicial.Year.ToString();
                horaInicioEvento = resContrato.fechaEventoInicial.Hour.ToString();
                horaFinEvento    = resContrato.fechaEventoFinal.Hour.ToString();
                costo            = resContrato.costo.ToString();
                costoLetra       = NumbersTools.NumberToText.Convert(resContrato.costo, "pesos");
                decimal primerPago = resContrato.primerPago != null?resContrato.primerPago.cantidad:0;

                anticipo        = primerPago.ToString();
                adeudo          = (resContrato.cantidadFaltante - primerPago).ToString();
                adeudoLetra     = NumbersTools.NumberToText.Convert(resContrato.cantidadFaltante, "pesos");
                asociadoCliente = resContrato.cliente.clienteID.ToString();
                nombreCliente   = resContrato.cliente.nombreCompleto.ToUpperInvariant();
                salon           = $"{resContrato.sesiones.FirstOrDefault().salon.nombre } para {resContrato.CantidadPersonas} personas";
                string listServicios = resContrato.enlistarServiciosParaContrato(TipoEvento.BANQUETE);

                listServicios     = string.IsNullOrEmpty(listServicios.Trim()) ? string.Empty : ", " + listServicios.Trim();
                serviciosBanquete = "Platillo de " + resContrato.platillo + " por persona" + listServicios;
                //serviciosReservacion = resContrato.enlistarServiciosParaContrato(TipoEvento.RESERVACION);
                serviciosReservacion = resContrato.enlistarServiciosParaContrato(null, true);
            }
            /// <summary>
            /// Agrega las sesiones que componen una reservacion en en una lista para ser mostrada
            /// en bootstrap-calendar.js
            /// </summary>
            /// <param name="res">Reservacion que contiene las sesiones que se desean agregar.</param>
            /// <param name="lista">Argumento por referencia que apunta a la lista donde se desean almacenar las sesiones.</param>
            public static void ReservacionInSesionesForScheduleJS(Reservacion res, ref List <ReservacionInScheduleJS> lista)
            {
                List <ReservacionInScheduleJS> tempList = new List <ReservacionInScheduleJS>();

                res.sesiones.ToList().ForEach(s1 =>
                {
                    tempList.Add(new ReservacionInScheduleJS(s1));
                });
                lista.AddRange(tempList);
            }
 public VMReservacion(Reservacion res)
 {
     this.numReservacion = res.eventoID;
     this.nombreCliente  = res.cliente == null?"":res.cliente.nombreCompleto;
     this.sesiones       = new List <SesionDeReservacion.VMSesion>();
     if (res.sesiones != null && res.sesiones.Count() > 0)
     {
         res.sesiones.ToList().ForEach(ses => { this.sesiones.Add(new SesionDeReservacion.VMSesion(ses)); });
     }
 }
 /// <summary>
 /// Genera una lista de seleccion de tipos de contrato para ser utilizando en vistas con formas.
 /// </summary>
 /// <param name="selVal">Opcional, valor seleccionado por defecto.</param>
 /// <returns>Select list listo para ser usado en la vista rellenado</returns>
 public static SelectList getTipoContratoSelectList(object selVal = null)
 {
     return(new SelectList(Reservacion.getTipoContratoItemArray(), "Value", "Text", selVal));
 }