// POST: api/Fixture
        public IActionResult Post([FromBody] AgregarFixture fixtureModelo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Datos invalidos"));
            }

            try
            {
                if (this._encuentrosService.FixtureGenerado(fixtureModelo.FechaInicio, fixtureModelo.Deporte, fixtureModelo.Tipo))
                {
                    var     re       = Request;
                    var     headers  = re.Headers;
                    string  tokenStr = headers["tokenSesion"];
                    Guid    token    = new Guid(tokenStr);
                    Usuario usuario  = _sesionesService.ObtenerUsuarioPorToken(token);
                    _logService.InsertarAccion(usuario.NombreUsuario, "Fixture");
                    return(Ok("Fixture generado con exito!"));
                }
                return(StatusCode(409, "El fixture no se pudo armar, existieron conflictos al generar los encuentros para uno o mas de los equipos participantes."));
            }
            catch (EncuentroDataException)
            {
                return(BadRequest("Datos invalidos"));
            }
            catch (NoExisteDeporteException)
            {
                return(BadRequest("El nombre del deporte no existe en la BD."));
            }
            catch (NoExistenParticipantesException)
            {
                return(BadRequest("Para armar un fixture en el deporte tienen que existir como minimo dos equipos"));
            }
            catch (FixtureGruposDataException)
            {
                return(StatusCode(409, "Para armar fixtures por fase de grupos la cantidad de equipos en el deporte debe ser multiplo de 4."));
            }
            catch (ExisteEncuentroEnFechaException)
            {
                return(StatusCode(409, "Ya existe un encuentro en esa fecha para el/los equipos seleccionados."));
            }
            catch (TipoDeFixtureIncompatibleException)
            {
                return(StatusCode(409, "El tipo de deporte no es compatible con el fixture deseado"));
            }
            catch (ExisteEncuentroMismoDiaException)
            {
                return(StatusCode(409, "Algun participante ya tiene un encuetro para las fechas fijadas"));
            }
        }
Esempio n. 2
0
        // POST: api/Fixture
        public IActionResult Post([FromBody] AgregarFixture fixtureModelo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Datos invalidos"));
            }

            try
            {
                if (this._encuentrosService.FixtureGenerado(fixtureModelo.FechaInicio, fixtureModelo.Deporte, fixtureModelo.Tipo))
                {
                    return(Ok("Fixture generado con exito!"));
                }
                return(StatusCode(409, "El fixture no se pudo armar, existieron conflictos al generar los encuentros para uno o mas de los equipos participantes."));
            }
            catch (EncuentroDataException)
            {
                return(BadRequest("Datos invalidos"));
            }
            catch (NoExisteDeporteException)
            {
                return(BadRequest("El nombre del deporte no existe en la BD."));
            }
            catch (NoExistenEquiposException)
            {
                return(BadRequest("Para armar un fixture en el deporte tienen que existir como minimo dos equipos"));
            }
            catch (FixtureGruposDataException)
            {
                return(StatusCode(409, "Para armar fixtures por fase de grupos la cantidad de equipos en el deporte debe ser multiplo de 4."));
            }
            catch (ExisteEncuentroEnFecha)
            {
                return(StatusCode(409, "Ya existe un encuentro en esa fecha para el/los equipos seleccionados."));
            }
        }