示例#1
0
        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);
 }
示例#3
0
 public ReservaView GetIndexData()
 {
     ReservaView reservaView = new ReservaView(){
         Reservas= GetReservaList(),
         Salones= GetSalonesList()
     };
     return reservaView;
 }
示例#4
0
        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");
            }
        }
示例#8
0
        /// <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));
        }
示例#11
0
        public IActionResult Index()
        {
            ReservaView reservaView = _reservasService.GetIndexData();

            return(View(reservaView));
        }