public ActionResult <PronosticoResponse> Get(int id)
        {
            IResponse <PronosticoEntity> respuesta = new PronosticoResponse();

            try
            {
                PronosticoEntity pronostico = _pronosticoService.FindById(id);

                if (pronostico != null)
                {
                    respuesta.Resultado = "S";
                    respuesta.Datos.Add(pronostico);
                }
                else
                {
                    respuesta.Resultado = "N";
                    respuesta.Mensaje   = "Pronostico no encontrado";
                }
            }
            catch (Exception ex)
            {
                respuesta.Resultado = "E";
                respuesta.Mensaje   = ex.Message.ToString();
            }

            return(Ok(respuesta));
        }
        public object Post(ParticipantePronostico ppronostico)
        {
            int idParticipante;

            try
            {
                idParticipante = this.Session.Get <int>("IdParticipante");
            }
            catch (Exception e)
            {
                throw new UnauthorizedAccessException("El usuario no ha iniciado sesión.", e);
            }
            if (idParticipante == 0)
            {
                throw new UnauthorizedAccessException("El usuario no ha iniciado sesión.");
            }

            Partido partido = QwNhSession.Get <Partido>(ppronostico.IdPartido);

            if (partido == null)
            {
                throw new ArgumentException("ID de partido inválido.");
            }
            if (partido.Iniciado)
            {
                throw new UnauthorizedAccessException("El partido ya ha iniciado. No puede modificar su pronóstico");
            }

            Pronostico pronostico = QwNhSession.QueryOver <Pronostico>().Where(x => x.PartidoPronostico.IdPartido == ppronostico.IdPartido && x.ParticipantePronostico.IdParticipante == idParticipante).SingleOrDefault();

            if (pronostico == null)
            {
                Participante participante = new Participante();
                QwNhSession.Load(participante, idParticipante);
                pronostico = new Pronostico()
                {
                    ParticipantePronostico = participante,
                    PartidoPronostico      = partido
                };
            }

            pronostico.Goles1 = ppronostico.Goles1;
            pronostico.Goles2 = ppronostico.Goles2;
            QwNhSession.SaveOrUpdate(pronostico);
            QwNhSession.Transaction.Commit();

            var ppronosticoResponse = new PronosticoResponse()
            {
                Pronostico = ppronostico
            };

            return(new HttpResult(ppronosticoResponse)
            {
                StatusCode = HttpStatusCode.Created,
                Headers =
                {
                    { HttpHeaders.Location, base.Request.AbsoluteUri.CombineWith(ppronosticoResponse.Pronostico.IdPartido) }
                }
            });
        }
        public ActionResult <PronosticoResponse> GetByIdCiudadAndFecha(int idCiudad, long fechaI, long fechaF)
        {
            IResponse <PronosticoEntity> respuesta = new PronosticoResponse();

            try
            {
                List <PronosticoEntity> pronosticos = _pronosticoService.FindByIdCiudadAndFecha(idCiudad, fechaI, fechaF) ?? new List <PronosticoEntity>();

                respuesta.Resultado = "S";
                respuesta.Datos     = pronosticos;
            }
            catch (Exception ex)
            {
                respuesta.Resultado = "E";
                respuesta.Mensaje   = ex.Message.ToString();
            }

            return(Ok(respuesta));
        }
        public ActionResult <PronosticoResponse> Get()
        {
            IResponse <PronosticoEntity> respuesta = new PronosticoResponse();

            try
            {
                List <PronosticoEntity> pronosticos = _pronosticoService.Find() ?? new List <PronosticoEntity>();

                respuesta.Resultado = "S";
                respuesta.Datos     = pronosticos;
            }
            catch (Exception ex)
            {
                respuesta.Resultado = "E";
                respuesta.Mensaje   = ex.Message.ToString();
            }

            return(Ok(respuesta));
        }