Esempio n. 1
0
        public ActionResult UpdateEvento(EventoViewDto evento, HttpPostedFileBase img)
        {
            if (img != null)
            {
                using (var reader = new BinaryReader(img.InputStream))
                {
                    evento.Imagen = reader.ReadBytes(img.ContentLength);
                }
            }

            var eventoimg = _eventoServicio.ObtenerPorId(evento.Id);

            if (evento.Imagen == null)
            {
                evento.Imagen = eventoimg.Imagen;
            }

            var Evento = new EventoDto()
            {
                Id           = evento.Id,
                Titulo       = evento.Titulo,
                Descripcion  = evento.Descripcion,
                Mail         = evento.Mail,
                TipoEventoId = evento.TipoEventoId,
                Orante       = evento.Orante,
                Organizacion = evento.Organizacion,
                Latitud      = evento.Latitud,
                Longitud     = evento.Longitud,
                Domicilio    = evento.DomicilioAlternativo,
                Telefono     = evento.Telefono,
                Imagen       = evento.Imagen,
                Estado       = EventoEstado.Activo
            };



            if (evento.Precio != null)
            {
                var entrada = _entradaServicio.ObtenerPorIdEvento(evento.Id);

                entrada.Monto = evento.Precio;

                _entradaServicio.Modificar(entrada);
            }


            _eventoServicio.Modificar(Evento);

            return(RedirectToAction("Perfil", "Persona"));
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(EventoViewModel vm, long?vbEmpresa = null)
        {
            try
            {
                ViewBag.EmpresaId                   = vbEmpresa;
                ViewBag.EventoDuplicado             = false;
                ViewBag.EstablecimientoNoDisponible = false;
                if (!ModelState.IsValid)
                {
                    throw new Exception("Error de validacion no controlado.");
                }

                var dto = new EventoDto()
                {
                    Id                = vm.Id,
                    Cupo              = vm.Cupo,
                    CupoDisponible    = vm.CupoDisponible,
                    Descripcion       = vm.Descripcion,
                    EmpresaId         = vm.EmpresaId,
                    EstablecimientoId = vm.EstablecimientoId,
                    Fecha             = vm.Fecha,
                    Nombre            = vm.Nombre
                };

                // Validar la duplicidad del evento (misma empresa mismo nombre misma fecha mismo establecimiento)
                var existe = await _eventoServicio.Existe(dto);

                if (existe)
                {
                    ViewBag.EventoDuplicado = true;
                    if (!vbEmpresa.HasValue)
                    {
                        vm.Empresas = await _helperEmpresa.PoblarCombo();
                    }
                    vm.Establecimientos = await _helperEstablecimiento.PoblarCombo();

                    throw new Exception("Evento Duplicado.");
                }

                // Validar que el establecimiento tenga una sala disponibles para esa fecha
                var disponible =
                    await _helperSala.ExisteSalaDisponible(vm.EstablecimientoId, vm.Fecha, vm.Id);

                if (!disponible)
                {
                    ViewBag.EstablecimientoNoDisponible = true;
                    if (!vbEmpresa.HasValue)
                    {
                        vm.Empresas = await _helperEmpresa.PoblarCombo();
                    }
                    vm.Establecimientos = await _helperEstablecimiento.PoblarCombo();

                    throw new Exception("El establecimiento no tiene salas disponibles.");
                }

                await _eventoServicio.Modificar(dto);

                return(RedirectToAction(nameof(Index), new { empresaId = vbEmpresa }));
            }
            catch (Exception)
            {
                return(View(vm));
            }
        }