예제 #1
0
        public async Task <IActionResult> Create([Bind("idSesionxm,idMascota,idSesion")] SesionxMascota sesionxMascota)
        {
            if (ModelState.IsValid)
            {
                //VERIFICAR QUE LA MASCOTA INGRESADA NO SEA LA MISMA
                //Busco el idMascota  y busco el idSesion
                bool duplicado = _context.SesionxMascota.Any(s => s.idMascota == sesionxMascota.idMascota && s.idSesion == sesionxMascota.idSesion);
                var  sesion    = _context.Sesion.Find(sesionxMascota.idSesion);
                var  mascota   = _context.Mascota.Where(m => m.idMascota == sesionxMascota.idMascota).Select(s => s.idRaza).First();
                var  tipoRaza  = _context.Raza.Where(r => r.idRaza == mascota).Select(s => s.idTipo).First();
                if (!duplicado)
                {
                    //Actualiza el tipo de raza de la sesion y agrega mascotas a la sesion
                    sesion.idTipo = tipoRaza;
                    _context.Update(sesion);
                    _context.Add(sesionxMascota);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Details/" + sesionxMascota.idSesion, "Sesions"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "¡La mascota ingresada ya está en este Sesión!");
                    return(View(sesion));
                }
            }
            ViewData["idMascota"] = new SelectList(_context.Mascota, "idMascota", "idMascota", sesionxMascota.idMascota);
            ViewData["idSesion"]  = new SelectList(_context.Sesion, "idSesion", "idSesion", sesionxMascota.idSesion);
            return(View(sesionxMascota));
        }
예제 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("idSesionxm,idMascota,idSesion")] SesionxMascota sesionxMascota)
        {
            if (id != sesionxMascota.idSesionxm)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(sesionxMascota);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SesionxMascotaExists(sesionxMascota.idSesionxm))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["idMascota"] = new SelectList(_context.Mascota, "idMascota", "idMascota", sesionxMascota.idMascota);
            ViewData["idSesion"]  = new SelectList(_context.Sesion, "idSesion", "idSesion", sesionxMascota.idSesion);
            return(View(sesionxMascota));
        }
예제 #3
0
        public async Task <IActionResult> Create([Bind("idReserva,fechaReservada,fechaSesion,estado,idCliente,idServicio,idTrabajador,idSesion")] Reserva reserva)
        {
            reserva.fechaReservada = DateTime.Now;
            if (ModelState.IsValid)
            {
                int    clienteFinded = _context.Cliente.Where(c => c.idCliente == reserva.idCliente).Select(c => c.idLugar).First();
                string nombreLugarFinded;
                //int servicioFinded = _context.Servicio.Where(s => s.idServicio == reserva.idServicio).Select(s => s.idServicio).First();
                //Busca en las sesiones si hay lugares
                if (reserva.idServicio == 1)
                {
                    nombreLugarFinded = "Local";
                }
                else
                {
                    nombreLugarFinded = _context.Lugar.Where(l => l.idLugar == clienteFinded).Select(l => l.nombre).First();
                }
                DateTime fechaSesionFinded = reserva.fechaSesion;
                //Encuentra la sesión donde el lugar, la fecha y el servicio es el mismo
                int idSesionFinded = _context.Sesion.Include(s => s.reservas).Where(s => s.lugar == nombreLugarFinded && s.fechaSesion == fechaSesionFinded && s.idServicio == reserva.idServicio).Select(s => s.idSesion).FirstOrDefault();


                if (idSesionFinded != 0)
                {
                    reserva.idSesion = idSesionFinded;
                    _context.Add(reserva);
                    _context.SaveChanges();
                }
                else if (idSesionFinded.Equals(0))
                {
                    Sesion newSesion = new Sesion();
                    newSesion.fechaSesion = reserva.fechaSesion;
                    newSesion.idServicio  = reserva.idServicio;
                    if (reserva.idServicio == 1)
                    {
                        newSesion.lugar = "Local";
                    }
                    else
                    {
                        newSesion.lugar = nombreLugarFinded;
                    }
                    //newSesion.servicio =
                    _context.Add(newSesion);
                    _context.SaveChanges();
                    reserva.idSesion = newSesion.idSesion;
                    _context.Add(reserva);
                    _context.SaveChanges();
                }


                SesionxMascota sesionxMascota = new SesionxMascota();
                sesionxMascota.idSesion = reserva.idSesion;
                _context.Add(sesionxMascota);
                ViewData["idMascota"] = new SelectList(_context.Mascota.Where(e => e.idCliente == reserva.idCliente), "idMascota", "nombre");
                return(View("AddsPetsToSesion", sesionxMascota));
            }
            ViewData["idCliente"]    = new SelectList(_context.Cliente, "idCliente", "apellidos", reserva.idCliente);
            ViewData["idServicio"]   = new SelectList(_context.Servicio, "idServicio", "categoria", reserva.idServicio);
            ViewData["idSesion"]     = new SelectList(_context.Sesion, "idSesion", "idSesion", reserva.idSesion);
            ViewData["idTrabajador"] = new SelectList(_context.Trabajador, "idTrabajador", "apellidos", reserva.idTrabajador);
            return(View(reserva));
        }