public async Task <IActionResult> Create(ReservaView view) { var emprestimo = new Emprestimo() { DInicio = DateTime.Now, IdLeitor = view.IdLeitor, IdLivro = view.IdLivro, }; try { var message = await _IEmprestimoApp.AddWithControl(emprestimo); TempData["title"] = message.Titulo; TempData["message"] = message.Corpo; } catch (Exception) { return(RedirectToAction(nameof(Index))); } var reserva = _IReservaApp.GetEntityById(view.Id); reserva.Ativo = false; await _IReservaApp.Update(reserva); return(RedirectToAction(nameof(Index))); }
/// <summary> /// <para>Usado por los threads para mostrar el mensage en el label del ReservaView.</para> /// <para>Esto lo hace de forma sincronizada con el threads del form</para> /// </summary> /// <param name="view"></param> /// <param name="msg"></param> private void mostrarMensaje(SynchronizationContext c, ReservaView view, String msg) { c.Send(new SendOrPostCallback(delegate(Object vista) { ((ReservaView)vista).Resultado = msg; }), view); }
public ReservaView GetIndexData() { ReservaView reservaView = new ReservaView(){ Reservas= GetReservaList(), Salones= GetSalonesList() }; return reservaView; }
public void CanGetMockDataFromService() { // Arrange ReservasService reservasService = new ReservasService(); //Act ReservaView reservaView = reservasService.GetIndexData(); // Assert Assert.AreNotEqual(reservaView, Is.Null); }
// GET: MesasOcupadas/Create public ActionResult Create(bool?C) { ViewBag.CMesas = CantidadMesas.CMesas(db); ViewBag.Cod_Mesa = new SelectList(db.Mesas, "Cod_Mesa", "Numero_Mesa"); var reservaView = new ReservaView(); reservaView.Clientes = new Clientes(); reservaView.MesasOcupadas = new MesasOcupadas(); return(View(reservaView)); }
public VentanaMultiplesReservas(BaseDatos baseDatos) { InitializeComponent(); WindowState = FormWindowState.Maximized; this.baseDatos = baseDatos; for (int i = 0; i < reservas.Length; i++) { reservas[i] = new ReservaView(baseDatos); reservas[i].Dock = DockStyle.Top; tableLayoutPanel1.Controls.Add(reservas[i], i % 2, i / 2); } foreach (RowStyle style in tableLayoutPanel1.RowStyles) { style.SizeType = SizeType.AutoSize; } }
/// <summary> /// Cuerpo del threads que atiende la solicitud /// </summary> /// <param name="parametros">baseDeDatos, ReservaView, contextoDeSincronizacion</param> private void cuerpoThreads(Object parametros) { BaseDatos bbdd = (BaseDatos)((List <Object>)parametros).ElementAt(0); ReservaView view = (ReservaView)((List <Object>)parametros).ElementAt(1); SynchronizationContext context = (SynchronizationContext)((List <Object>)parametros).ElementAt(2); if (view.Habilitado) { mostrarMensaje(context, view, "Comenzando"); try { Pasaje pasaje = new Pasaje(view.Viaje.Id, view.Persona.Id, view.Fecha, view.NumeroAsiento); if (new PasajeServicio().escribirPasaje(bbdd, pasaje, view.Viaje)) { mostrarMensaje(context, view, "Exito al reservar"); } else { mostrarMensaje(context, view, "Error interno. Reintentelo"); } } catch (ViajeEliminadoException ex) { mostrarMensaje(context, view, "El viaje fue eliminado. Refresque la busqueda de viajes"); } catch (PasajeEstabaReservadoException) { mostrarMensaje(context, view, "El asiento ya está reservado, refresque la busqueda"); } catch (AsientoNoExistenteException) { mostrarMensaje(context, view, "El asiento no existe. Refresque la busqueda"); } } else { mostrarMensaje(context, view, "Datos invalidos"); } }
/// <summary> /// Tranforma o dado para mostrar na view. /// </summary> /// <param name="reserva"></param> /// <returns></returns> private ReservaView ToView(Reserva reserva) { var livro = _ILivroApp.GetEntityById(reserva.IdLivro); var leitor = _ILeitorApp.GetEntityById(reserva.IdLeitor); var autor = _IAutorApp.GetEntityById(livro.IdAutor); var view = new ReservaView() { Id = reserva.Id, Data = reserva.Data, IdLeitor = reserva.IdLeitor, IdLivro = reserva.IdLivro, Ativo = reserva.Ativo, LeitorNome = leitor.Nome, Titulo = livro.Titulo, Capa = livro.Capa, Sipnose = livro.Sipnose, }; return(view); }
public int idDocumentos(Guid IdCliente, ReservaView ReservaView, string NReserva) { int hora = ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Hours; hora = hora + 2; var documento = new Documento { Cod_Cli = IdCliente, Cod_TDoc = 2, NConfirmacion_Doc = NReserva, Fecha_Doc = ReservaView.MesasOcupadas.Fecha_MesasO, HoraIngreso_Doc = ReservaView.MesasOcupadas.HoraIngreso_MesasO, HoraSalida_Doc = new DateTime(ReservaView.MesasOcupadas.Fecha_MesasO.Year, ReservaView.MesasOcupadas.Fecha_MesasO.Month, ReservaView.MesasOcupadas.Fecha_MesasO.Day, hora, ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Minutes, ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Seconds) }; db.Documento.Add(documento); db.SaveChanges(); int idDocumento = db.Documento.Where(r => r.Cod_Cli == IdCliente).Max(r => r.Id_Doc); return(idDocumento); }
public async Task <ActionResult> Create(ReservaView ReservaView, string RCM) { string idMesa = ""; Guid IdCliente = new Guid(); int codMesas = 0; int CMesas = db.Mesas.ToList().Count(); var addr = new AddR(); DateTime hora = DateTime.Now; if (RCM == "Reservar con menu") { RCM = Convert.ToString("1"); } else { RCM = null; } if (ReservaView.MesasOcupadas.Fecha_MesasO < DateTime.Now.Date) { ModelState.AddModelError(string.Empty, "Ingrese una fecha mayor o igual ala actual"); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } //if (db.Restaurantes.FirstOrDefault().HoraCierre < TiempoEspera.Salida(ReservaView.MesasOcupadas.HoraIngreso_MesasO, db)) //{ // ModelState.AddModelError(string.Empty, "Ingrese una fecha mayor posterior ala actual, por que el restaurante cierra alas "+ db.Restaurantes.FirstOrDefault().HoraCierre.ToString("hh:mm:ss")); // ViewBag.Error = true; // ViewBag.CMesas = CantidadMesas.CMesas(db); // return View(ReservaView); //} if (ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Hours <= hora.TimeOfDay.Hours && ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Minutes <= hora.TimeOfDay.Minutes && DateTime.Now.Date == ReservaView.MesasOcupadas.Fecha_MesasO) { ModelState.AddModelError(string.Empty, "Ingrese una hora mayor ala actual"); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } if (ReservaView.MesasOcupadas.CPersonas_Mesas <= 0) { ModelState.AddModelError(string.Empty, "Ingrese una cantidad de personas mayor a cero"); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } if (ModelState.IsValid) { using (var transacion = db.Database.BeginTransaction()) { try { int cantida = CantidadMesas.CMesa(ReservaView.MesasOcupadas.Fecha_MesasO, ReservaView.MesasOcupadas.HoraIngreso_MesasO, db); int i2 = 1; if ((ReservaView.MesasOcupadas.CPersonas_Mesas % 4) == 0) { IdCliente = Cliente.idCliente(ReservaView.Clientes.Correo_Cli, ReservaView.Clientes.Nombres_Cli, ReservaView.Clientes.Apellidos_Cli, ReservaView.Clientes.Telefono_Cli, db); int CRMesas = (ReservaView.MesasOcupadas.CPersonas_Mesas / 4); if (CRMesas > cantida && ReservaView.MesasOcupadas.Fecha_MesasO == DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, por favor seleciones una fecha posterior a esta {0} y maximo de {1} persona", ReservaView.MesasOcupadas.Fecha_MesasO.ToString("dd/MM/yyyy"), (CMesas * 4))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } else if (CRMesas > cantida && ReservaView.MesasOcupadas.Fecha_MesasO > DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, maximo de {0}", (CMesas * 4))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } for (int i = 1; i <= CMesas; i++) { if (i2 <= CRMesas) { var Nmesa = ("M " + i); var mesa = db.Mesas.Where(m => m.Numero_Mesa == Nmesa).ToList(); foreach (var item in mesa) { int valor = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Count(); if (valor == 0) { //int HoraS = ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Hours; //HoraS = HoraS + 2; var mesasO = new MesasOcupadas { Cod_Mesa = item.Cod_Mesa, Estado_MesasO = true, ConfirmarMesa = false, Reservada = "PaginaWeb", CPersonas_Mesas = ReservaView.MesasOcupadas.CPersonas_Mesas, Fecha_MesasO = ReservaView.MesasOcupadas.Fecha_MesasO, HoraIngreso_MesasO = ReservaView.MesasOcupadas.HoraIngreso_MesasO, HoraSalida_MesasO = TiempoEspera.Salida(ReservaView.MesasOcupadas.HoraIngreso_MesasO, db) //HoraSalida_MesasO = new DateTime(ReservaView.MesasOcupadas.HoraIngreso_MesasO.Year, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Month, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Day, // HoraS, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Minute, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Second) }; db.MesasOcupadas.Add(mesasO); db.SaveChanges(); codMesas = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Max(mo => mo.Cod_MesasO); idMesa = codMesas + "," + idMesa; i2++; } } } else { i = CMesas; } } } else { IdCliente = Cliente.idCliente(ReservaView.Clientes.Correo_Cli, ReservaView.Clientes.Nombres_Cli, ReservaView.Clientes.Apellidos_Cli, ReservaView.Clientes.Telefono_Cli, db); int CRMesas = (ReservaView.MesasOcupadas.CPersonas_Mesas / 4) + 1; if (CRMesas >= cantida && ReservaView.MesasOcupadas.Fecha_MesasO == DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, por favor seleciones una fecha posterior a esta {0}", ReservaView.MesasOcupadas.Fecha_MesasO.ToString("dd/MM/yyyy"))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } else if (CRMesas > cantida && ReservaView.MesasOcupadas.Fecha_MesasO > DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, maximo de {0} personas", (CMesas * 4))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } for (int i = 1; i <= CMesas; i++) { if (i2 <= CRMesas) { var Nmesa = ("M " + i); var mesa = db.Mesas.Where(m => m.Numero_Mesa == Nmesa).ToList(); foreach (var item in mesa) { int codMesa = item.Cod_Mesa; int valor = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Count(); if (valor == 0) { //int HoraS = ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Hours; //HoraS = HoraS + 2; var mesasO = new MesasOcupadas { Cod_Mesa = item.Cod_Mesa, Estado_MesasO = true, ConfirmarMesa = false, Reservada = "PaginaWeb", CPersonas_Mesas = ReservaView.MesasOcupadas.CPersonas_Mesas, Fecha_MesasO = ReservaView.MesasOcupadas.Fecha_MesasO, HoraIngreso_MesasO = ReservaView.MesasOcupadas.HoraIngreso_MesasO, HoraSalida_MesasO = TiempoEspera.Salida(ReservaView.MesasOcupadas.HoraIngreso_MesasO, db) //HoraSalida_MesasO = new DateTime(ReservaView.MesasOcupadas.HoraIngreso_MesasO.Year, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Month, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Day, // HoraS, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Minute, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Second) }; db.MesasOcupadas.Add(mesasO); db.SaveChanges(); codMesas = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Max(mo => mo.Cod_MesasO); idMesa = codMesas + "," + idMesa; i2++; } } } else { i = CMesas; } } } string[] MenuCantidad = new string[db.Menus.Count()]; int IdMesasO = 0; string ramdo = Ramdon.Numero(); Reserva.DetalleMenuCliente(IdCliente, "," + idMesa, "PaginaWeb-" + ramdo, db, SeparadorMenu.Menu(MenuCantidad, MenuCantidad), IdMesasO, null); addr = new AddR { add = RCM, CPersona = ReservaView.MesasOcupadas.CPersonas_Mesas.ToString(), IdC = IdCliente, IdM = codMesas, IdMesaO = codMesas, NCF = "PaginaWeb-" + ramdo }; if (RCM == null) { await SendEmail.ConfirmarReserva(IdCliente, "PaginaWeb-" + ramdo, db); transacion.Commit(); } else { transacion.Commit(); return(RedirectToAction("MenuVista", "Menus", addr)); } return(RedirectToAction("ConReserva", "MesasOcupadas", addr)); } catch (Exception ex) { ViewBag.CMesas = CantidadMesas.CMesas(db); transacion.Rollback(); ModelState.AddModelError(string.Empty, "Error al Reservar " + ex.Message); ViewBag.Error = true; return(View(ReservaView)); } } } ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); }
public IActionResult Index() { ReservaView reservaView = _reservasService.GetIndexData(); return(View(reservaView)); }