public int InscribirParticipante(int idTorneo, Participante participante)
        {
            if (string.IsNullOrEmpty(participante.Correo) || string.IsNullOrEmpty(participante.Nombre))
                throw new FaultException("Información básica del participante incompleta");

            if (!Validador.EsCorreo(participante.Correo))
                throw new FaultException("Formato de correo incorrecto");

            using (var proxy = new WSTorneo.TorneoServiceClient())
            {
                var torneo = proxy.ObtenerTorneoPorID(idTorneo);

                if (torneo.IDEstado == 3 || torneo.IDEstado == 4)
                    throw new FaultException("Torneo ya no se encuentra vigente");

                var entity = participanteDA.ObtenerParticipante(idTorneo, participante.Correo);

                if (entity != null) return entity.ID;

                torneo.NumeroRealParticipantes++;

                if (torneo.NumeroRealParticipantes >= torneo.NumeroParticipantes)
                    throw new FaultException("Torneo llegó al límite de participantes");

                var idParticipante = participanteDA.InscribirParticipante(idTorneo, participante);

                return idParticipante;
            }
        }
示例#2
0
 public int InscribirParticipante(int idTorneo, Participante participante)
 {
     return this.ExecuteScalar<int>("usp_InscribirParticipante",
         new DataParameter("@pIDTorneo", idTorneo),
         new DataParameter("@pNombre", participante.Nombre),
         new DataParameter("@pCorreo", participante.Correo)
     );
 }
        public IHttpActionResult PostParticipante(int idTorneo, Participante participante)
        {
            try
            {
                using (var proxy = new WSParticipante.ParticipanteServiceClient())
                {
                    var id = proxy.InscribirParticipante(idTorneo, participante);

                    return Ok(new
                    {
                        success = true,
                        idParticipante = id
                    });
                }
            }
            catch (Exception ex)
            {
                return Ok(new
                {
                    success = false,
                    message = ex.Message
                });
            }
        }