public JsonResult ModificarAlias(AliasUsuario alias, int idUsuario)
        {
            querys = "EXEC	quiniela..sp_usuario_mant "
                     + "@operacion = 'AU',"
                     + "@primerNombre = '',"
                     + "@segundoNombre = '',"
                     + "@primerApellido = '',"
                     + "@segundoApellido = '',"
                     + "@correoElectronico = '',"
                     + "@cui = '',"
                     + "@estado = @estado,"
                     + "@id=@idUsuario,"
                     + "@idAlias = @id,"
                     + "@alias = @nickname,"
                     + "@deposito = @numeroDeposito,"
                     + "@usuario = @usuario";

            db.Database.ExecuteSqlCommand(querys, new SqlParameter("@nickname", NullHandler(alias.al_nickname)), new SqlParameter("@numeroDeposito", NullHandler(alias.al_codigoDeposito)), new SqlParameter("@estado", NullHandler(alias.al_estado)), new SqlParameter("@id", NullHandler(alias.al_id)), new SqlParameter("@idUsuario", NullHandler(alias.al_idUsuario)), new SqlParameter("@usuario", idUsuario));

            return(Json(new { success = true, responseText = "true" }, JsonRequestBehavior.AllowGet));
        }
        public string ActualizaPronostico(MarcadorPronostico miPronostico)
        {
            string res       = "Ocurrio un error inesperado";
            int    idPartido = miPronostico.idPartido;

            //ViewBag.DatosLogin = TempData["DatosLogin"];
            DatosLogin = (User)Session["UserInfo"];

            /*
             * Aqui debe de ir una validación de sesión
             */

            try{
                querys = "SELECT *"
                         + "FROM AliasUsuario "
                         + "WHERE al_id=@idalias "
                         + "AND al_estado='V'";

                //aliasDB = db.AliasUsuario.SqlQuery(querys, new SqlParameter("@iduser", DatosLogin.id_login), new SqlParameter("@idalias", id)).ToList();

                AliasUsuario aliasPronostico = db.Database.SqlQuery <AliasUsuario>(querys, new SqlParameter("@idalias", miPronostico.idAlias)).FirstOrDefault();

                if (aliasPronostico.al_idUsuario != DatosLogin.id_login)
                {
                    return("Whoa, whoa, whoa... No hagas trampa porque seras descalificado :(");
                }

                querys = "SELECT *"
                         + "FROM Partido "
                         + "WHERE pa_id=@idpartido ";

                Partido partido = db.Database.SqlQuery <Partido>(querys, new SqlParameter("@idpartido", idPartido)).FirstOrDefault();

                if (partido.pa_estado == "V")
                {
                    querys = "SELECT *"
                             + "FROM Marcador "
                             + "WHERE ma_idAlias=@idalias "
                             + "AND ma_idPartido = @idpartido ";

                    Marcador marcador = db.Database.SqlQuery <Marcador>(querys, new SqlParameter("@idalias", miPronostico.idAlias), new SqlParameter("@idpartido", miPronostico.idPartido)).FirstOrDefault();

                    if (marcador != null)
                    {
                        querys = "update Marcador "
                                 + "set ma_marcador1 = @marcador1, ma_marcador2 = @marcador2, ma_hora = getdate() "
                                 + "WHERE ma_idAlias=@idalias "
                                 + "AND ma_idPartido = @idpartido ";

                        db.Database.ExecuteSqlCommand(querys, new SqlParameter("@marcador1", miPronostico.marcador1), new SqlParameter("@marcador2", miPronostico.marcador2), new SqlParameter("@idalias", miPronostico.idAlias), new SqlParameter("@idpartido", miPronostico.idPartido));

                        res = "OK";
                    }
                    else
                    {
                        querys = "insert into Marcador(ma_idAlias, ma_idEquipo1, ma_idEquipo2, ma_marcador1, ma_marcador2, ma_idPartido, ma_estado, ma_fecha, ma_hora) "
                                 + "values(@idalias, @idequipo1, @idequipo2, @marcador1, @marcador2, @idpartido, 'V', convert(varchar(10), getdate(), 101), getdate()) ";

                        db.Database.ExecuteSqlCommand(querys, new SqlParameter("@idalias", miPronostico.idAlias), new SqlParameter("@idequipo1", miPronostico.idEquipo1), new SqlParameter("@idequipo2", miPronostico.idEquipo2), new SqlParameter("@marcador1", miPronostico.marcador1), new SqlParameter("@marcador2", miPronostico.marcador2), new SqlParameter("@idpartido", miPronostico.idPartido));

                        res = "OK";
                    }
                }
                else
                {
                    res = "Ya no se pueden ingresar pronosticos para este partido :(";
                }
            }catch (Exception ex) {
                res = ex.Message;
                res = "Ocurrio un error al actualizar el pronostico";
            }

            return(res);
        }
        public ActionResult IngresoPronostico(int id)
        {
            ViewBag.DatosLogin = TempData["DatosLogin"];
            DatosLogin         = (User)TempData["DatosLogin"];
            List <AliasUsuario> aliasDB = new List <AliasUsuario>();

            QuinielaViewModel qvm = new QuinielaViewModel();

            querys = "SELECT *"
                     + "FROM AliasUsuario "
                     + "WHERE al_idUsuario=@iduser "
                     + "AND al_id=@idalias "
                     + "AND al_estado='V'";

            //aliasDB = db.AliasUsuario.SqlQuery(querys, new SqlParameter("@iduser", DatosLogin.id_login), new SqlParameter("@idalias", id)).ToList();

            AliasUsuario aliasSeleccionado = db.Database.SqlQuery <AliasUsuario>(querys, new SqlParameter("@iduser", DatosLogin.id_login), new SqlParameter("@idalias", id)).FirstOrDefault();

            if (aliasSeleccionado == null)
            {
                return(Redirect("/Quiniela/Error"));
            }

            if (DatosLogin != null && DatosLogin.login)
            {
                querys = "select id_partido=pa_id, id_alias= 0, id_equipo1=pa_idEquipo1, equipo1=E1.eq_descripcion, marcador1=pa_marcador1, pronostico1=-1, id_equipo2=pa_idEquipo2, equipo2=E2.eq_descripcion, marcador2=pa_marcador2, pronostico2=-1, puntos=0, id_estadio=es_id, estadio=es_nombre, fecha= convert(varchar(10), pa_fecha, 103), hora= convert(varchar(5), pa_hora, 108), estado=pa_estado "
                         + "from Partido, Equipo as E1, Equipo as E2, Estadio "
                         + "where pa_idEquipo1 = E1.eq_id "
                         + "and pa_idEquipo2 = E2.eq_id "
                         + "and pa_idEstadio = es_id "
                         + "order by pa_fecha";

                List <Pronosticos> tablaPronosticos = db.Database.SqlQuery <Pronosticos>(querys).ToList <Pronosticos>();

                querys = "SELECT *"
                         + "FROM Marcador "
                         + "WHERE ma_idAlias=@idalias ";

                List <Marcador> pronosticosIngresados = db.Database.SqlQuery <Marcador>(querys, new SqlParameter("@idalias", id)).ToList <Marcador>();

                foreach (Marcador miPronostico in pronosticosIngresados)
                {
                    foreach (Pronosticos itemPronostico in tablaPronosticos)
                    {
                        if (itemPronostico.id_partido == miPronostico.ma_idPartido)
                        {
                            itemPronostico.puntos      = itemPronostico.CalcularPuntos(miPronostico);
                            itemPronostico.pronostico1 = miPronostico.ma_marcador1;
                            itemPronostico.pronostico2 = miPronostico.ma_marcador2;
                        }
                    }
                }

                querys = "SELECT *"
                         + "FROM AliasUsuario "
                         + "WHERE al_idUsuario=@iduser "
                         + "AND al_estado='V'";

                qvm.vm_alias = db.Database.SqlQuery <AliasUsuario>(querys, new SqlParameter("@iduser", DatosLogin.id_login)).ToList();

                qvm.vm_pronosticos = tablaPronosticos;

                DatosLogin.id_alias = id;
                DatosLogin.nickname = aliasSeleccionado.al_nickname;
                DatosLogin.id_menu  = 2;

                return(View(qvm));
            }
            else
            {
                return(Redirect(urlLogout));
            }
        }
        public ActionResult Login()
        {
            var url     = Request.Url.Query;
            int id_user = 0;
            int id_rol  = 0;

            List <AliasUsuario>   aliasDB      = new List <AliasUsuario>();
            List <Usuario>        userDB       = new List <Usuario>();
            List <UsuarioRol>     userRol      = new List <UsuarioRol>();
            List <TransaccionRol> tranRol      = new List <TransaccionRol>();
            List <int>            permisosMenu = new List <int>();
            List <String>         premiosFe    = new List <String>();

            if (url != "")
            {
                userLogin = googleParameters.ObtenerCorreo(true, url);

                if (userLogin.email != null)
                {
                    querys = "SELECT *"
                             + "FROM Usuario "
                             + "WHERE us_correoElectronico=@email "
                             + "AND us_estado = 'V'";

                    userDB = db.Usuarios.SqlQuery(querys, new SqlParameter("@email", userLogin.email)).ToList();

                    if (userDB.Count == 1)
                    {
                        id_user = userDB.ElementAt(0).us_id;

                        querys = "SELECT *"
                                 + "FROM UsuarioRol "
                                 + "WHERE ur_idUsuario=@id " +
                                 "AND ur_estado = 'V'";

                        userRol = db.UsuarioRol.SqlQuery(querys, new SqlParameter("@id", id_user)).ToList();

                        if (userRol.Count == 0)
                        {
                            return(Redirect(urlLogout));
                        }
                        else
                        {
                            id_rol = userRol.ElementAt(0).ur_idRol;

                            DatosLogin.email    = userLogin.email;
                            DatosLogin.picture  = userLogin.picture;
                            DatosLogin.id_login = id_user;
                            DatosLogin.login    = true;
                            DatosLogin.id_menu  = 1;
                            DatosLogin.id_rol   = id_rol;
                            DatosLogin.nombre   = userDB.ElementAt(0).us_primerNombre;


                            if (id_user > 0)
                            {
                                Session["UserInfo"] = DatosLogin;

                                querys = "select * "
                                         + "from TransaccionRol "
                                         + "where tr_id_rol = @idrol";

                                tranRol = db.TransaccionRol.SqlQuery(querys, new SqlParameter("idrol", id_rol)).ToList();

                                foreach (TransaccionRol trn in tranRol)
                                {
                                    permisosMenu.Add(trn.tr_id_transaccion);
                                }

                                DatosLogin.permisos = permisosMenu;

                                querys = "select convert(varchar(20), convert(decimal(6,2), (count(1) * 50) * 0.5))  primerLugar, convert(varchar(20), convert(decimal(6,2),(count(1) * 50) * 0.3))  segundoLugar, convert(varchar(20), convert(decimal(6,2), (count(1) * 50) * 0.2)) tercerLugar "
                                         + "from AliasUsuario, Usuario "
                                         + "where al_estado = 'V' "
                                         + "and al_idUsuario = us_id "
                                         + "and us_estado = 'V' ";

                                List <Premios> premios = db.Database.SqlQuery <Premios>(querys).ToList <Premios>();

                                foreach (Premios prem in premios)
                                {
                                    premiosFe.Add(prem.primerLugar);
                                    premiosFe.Add(prem.segundoLugar);
                                    premiosFe.Add(prem.tercerLugar);
                                }

                                DatosLogin.premios = premiosFe;

                                querys = "SELECT *"
                                         + "FROM AliasUsuario "
                                         + "WHERE al_idUsuario=@iduser "
                                         + "AND  al_codigoDeposito is not null "
                                         + "AND al_estado = 'V'";

                                aliasDB = db.AliasUsuario.SqlQuery(querys, new SqlParameter("@iduser", id_user)).ToList();

                                if (aliasDB.Count == 1)
                                {
                                    AliasUsuario alias = aliasDB.First();
                                    ViewBag.DatosLogin = DatosLogin;
                                    return(Redirect("/Quiniela/Posiciones/" + alias.al_id.ToString()));
                                }
                                else
                                {
                                    if (aliasDB.Count == 0)
                                    {
                                        return(Redirect(urlLogout));
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        return(Redirect(urlLogout));
                    }

                    ViewBag.DatosLogin = DatosLogin;

                    return(View(aliasDB));
                }
                else
                {
                    return(Redirect(urlLogout));
                }
            }
            else
            {
                return(Redirect(urlLogout));
            }
        }
        public ActionResult Posiciones(int id)
        {
            DatosLogin = (User)TempData["DatosLogin"];

            if (DatosLogin == null)
            {
                DatosLogin = (User)Session["UserInfo"];
            }

            if (DatosLogin != null && DatosLogin.login)
            {
                QuinielaViewModel vm = new QuinielaViewModel();

                querys = "SELECT *"
                         + "FROM AliasUsuario "
                         + "WHERE al_id=@idalias "
                         + "AND al_estado = 'V' ";

                AliasUsuario aliasSeleccionado = db.Database.SqlQuery <AliasUsuario>(querys, new SqlParameter("@idalias", id)).FirstOrDefault();

                if (aliasSeleccionado != null)
                {
                    DatosLogin.id_alias = id;
                    DatosLogin.nickname = aliasSeleccionado.al_nickname;

                    querys = "SELECT *"
                             + "FROM AliasUsuario "
                             + "WHERE al_idUsuario=@iduser "
                             + "AND  al_codigoDeposito is not null "
                             + "AND al_estado = 'V'";

                    vm.vm_alias = db.Database.SqlQuery <AliasUsuario>(querys, new SqlParameter("@iduser", aliasSeleccionado.al_idUsuario)).ToList();

                    querys = "SELECT id_alias=al_id, alias=al_nickname, puntos = al_puntos "
                             + "FROM AliasUsuario "
                             + "WHERE al_codigoDeposito is not null "
                             + "AND al_estado = 'V' ";

                    List <TablaPosiciones> tablaPosiciones = db.Database.SqlQuery <TablaPosiciones>(querys).ToList <TablaPosiciones>();

                    List <TablaPosiciones> tablaPosicionesOrdenada = (from s in tablaPosiciones
                                                                      orderby s.puntos descending
                                                                      select s).ToList();

                    vm.vm_tablaPosiciones = tablaPosicionesOrdenada;
                    DatosLogin.id_menu    = 1;

                    ViewBag.DatosLogin = DatosLogin;

                    return(View(vm));
                }
                else
                {
                    return(Redirect(urlLogout));
                }
            }
            else
            {
                return(Redirect(urlLogout));
            }
        }