Exemplo n.º 1
0
        public ActionResult FicharNuevoJugador(FicharNuevoJugadorVM vm)
        {
            ValidarFichajeDeNuevoJugador(vm);
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("FicharNuevoJugador", new { id = vm.EquipoId }));
            }

            var model = new Jugador();

            var jugadorEquipo = _jugadorVMM.MapCreate(vm, model);

            Context.JugadorEquipos.Add(jugadorEquipo);

            var club = Context.Equipos.Find(vm.EquipoId).Club;

            MovimientoEntradaConClub movimiento;

            if (vm.ElCarnetEstaPago)
            {
                movimiento = _generadorDeMovimientos.GenerarMovimientoFichajeYSuPago(club, vm.DNI);
            }
            else
            {
                movimiento = _generadorDeMovimientos.GenerarMovimientoFichajeImpago(club, vm.DNI);
            }

            club.Movimientos.Add(movimiento);

            Context.SaveChanges();

            _imagenesJugadoresDiskPersistence.GuardarFotoWebCam(vm);

            ModelState.Clear();

            int?idDelJugadorRecienFichado = null;

            if (vm.HayQueImprimirCarnetDelUltimoJugadorFichado)
            {
                idDelJugadorRecienFichado = Context.Jugadores.Single(x => x.DNI == vm.DNI).Id;
            }

            return(RedirectToAction("FicharNuevoJugador", new { id = vm.EquipoId, idDelJugadorFichadoAnteriormenteParaImprimir = idDelJugadorRecienFichado }));
        }
        public ActionResult Aprobar(int id)
        {
            var jugadorAutofichado = _context.JugadoresaAutofichados.Single(x => x.Id == id);

            try
            {
                var jugador = new Jugador();

                var vm = new FicharNuevoJugadorVM
                {
                    DNI             = jugadorAutofichado.DNI,
                    Apellido        = jugadorAutofichado.Apellido,
                    Nombre          = jugadorAutofichado.Nombre,
                    EquipoId        = jugadorAutofichado.EquipoId,
                    FechaNacimiento = DateTimeUtils.ConvertToString(jugadorAutofichado.FechaNacimiento)
                };

                var jugadorEquipo = _jugadorVMM.MapCreate(vm, jugador);

                _context.JugadorEquipos.Add(jugadorEquipo);
                jugadorAutofichado.Estado = EstadoJugadorAutofichado.Aprobado;

                var club       = _context.Equipos.Find(vm.EquipoId).Club;
                var movimiento = _generadorDeMovimientos.GenerarMovimientoFichajeImpago(club, vm.DNI);
                club.Movimientos.Add(movimiento);

                _context.SaveChanges();

                _imagenesJugadoresDiskPersistence.FicharJugadorTemporal(jugadorAutofichado.DNI);
            }
            catch (Exception e)
            {
                YKNExHandler.LoguearYLanzarExcepcion(e, "Error al fichar jugador temporal");
            }

            return(RedirectToAction("Index", new { Estado = 1 }));
        }