Esempio n. 1
0
        public IHttpActionResult PutBarragemView(int id, BarragemView barragemView)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != barragemView.Id)
            {
                return(BadRequest());
            }

            db.Entry(barragemView).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BarragemViewExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 2
0
        public IHttpActionResult GetBarragemView(int id)
        {
            BarragemView barragemView = db.BarragemView.Find(id);

            if (barragemView == null)
            {
                return(NotFound());
            }

            return(Ok(barragemView));
        }
Esempio n. 3
0
        public IHttpActionResult PostBarragemView(BarragemView barragemView)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.BarragemView.Add(barragemView);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = barragemView.Id }, barragemView));
        }
Esempio n. 4
0
        public IHttpActionResult DeleteBarragemView(int id)
        {
            BarragemView barragemView = db.BarragemView.Find(id);

            if (barragemView == null)
            {
                return(NotFound());
            }

            db.BarragemView.Remove(barragemView);
            db.SaveChanges();

            return(Ok(barragemView));
        }
Esempio n. 5
0
        public ActionResult Index()
        {
            DateTime dtNow    = DateTime.Now;
            TimeSpan tsMinute = new TimeSpan(0, 0, 59, 0);

            //Cria a estancia do obj HttpCookie passando o nome do mesmo
            HttpCookie cookie = new HttpCookie("_barragemId");

            cookie.Value   = "9";
            cookie.Expires = dtNow + tsMinute;
            Response.Cookies.Add(cookie);

            BarragemView barragem   = db.BarragemView.Find(9);
            HttpCookie   cookieNome = new HttpCookie("_barragemNome");

            cookieNome.Value   = barragem.nome;
            cookieNome.Expires = dtNow + tsMinute;
            Response.Cookies.Add(cookieNome);


            return(RedirectToAction("IndexBarragens", "Home"));
        }
Esempio n. 6
0
        public ActionResult Index(int rodadaId = 0, string ranking = "")
        {
            string       msg        = "";
            BarragemView bV         = null;
            var          barragemId = 0;

            try{
                if ((rodadaId == 0) && (ranking == "") && (User.Identity.Name != ""))
                {
                    UserProfile usuario = db.UserProfiles.Find(WebSecurity.GetUserId(User.Identity.Name));
                    bV                   = usuario.barragem;
                    rodadaId             = db.Rodada.Where(r => r.isRodadaCarga == false && r.barragemId == usuario.barragemId).Max(r => r.Id);
                    ViewBag.IdBarragem   = bV.Id;
                    ViewBag.NomeBarragem = bV.nome;
                }
                else if (ranking != "")
                {
                    bV                   = db.BarragemView.Where(b => b.dominio == ranking).FirstOrDefault();
                    rodadaId             = db.Rodada.Where(r => r.isRodadaCarga == false && r.barragemId == bV.Id).Max(r => r.Id);
                    ViewBag.IdBarragem   = bV.Id;
                    ViewBag.NomeBarragem = bV.nome;
                }
                else if (rodadaId == 0)
                {
                    return(RedirectToAction("Login", "Account"));
                }
                else
                {
                    HttpCookie cookie = new HttpCookie("_barragemId");
                    bV = db.BarragemView.Find(barragemId);
                }
            }
            catch (Exception e) {
                return(RedirectToAction("Login", "Account"));
            }
            try{
                var jogo = db.Jogo.Include(j => j.desafiado).Include(j => j.desafiante).Include(j => j.rodada).
                           Where(j => j.rodada_id == rodadaId).OrderBy(j => j.desafiado.classe.nivel).ToList();
                msg = "jogos";
                if ((rodadaId > 0) && (jogo.Count() > 0))
                {
                    barragemId = jogo[0].rodada.barragemId;
                }
                ViewBag.Classes = db.Classe.Where(c => c.barragemId == barragemId && c.ativa == true).ToList();
                if (jogo.Count() > 0)
                {
                    barragemId          = jogo[0].rodada.barragemId;
                    ViewBag.Rodada      = jogo[0].rodada.codigoSeq;
                    ViewBag.DataInicial = jogo[0].rodada.dataInicio;
                    ViewBag.DataFinal   = jogo[0].rodada.dataFim;
                    msg = "rodada";
                    if (jogo[0].rodada.temporadaId != null)
                    {
                        var temporadaId = jogo[0].rodada.temporadaId;
                        var qtddRodada  = db.Rodada.Where(r => r.temporadaId == temporadaId && r.Id <= rodadaId && r.barragemId == barragemId).Count();
                        ViewBag.Temporada = jogo[0].rodada.temporada.nome + " - Rodada " + qtddRodada + " de " + jogo[0].rodada.temporada.qtddRodadas;
                        msg = "temporada";
                    }
                    else
                    {
                        ViewBag.Temporada = "";
                    }
                }
                return(View(jogo));
            }
            catch (Exception ex)
            {
                ViewBag.MsgErro = msg + " - " + ex.Message;
                return(View());
            }
        }
Esempio n. 7
0
        public ActionResult Index(int id = 0, string nome = "")
        {
            List <Rancking> rancking;
            BarragemView    bV = null;

            try{
                if ((id == 0) && (nome == "") && (User.Identity.Name != ""))
                {
                    UserProfile usuario = db.UserProfiles.Find(WebSecurity.GetUserId(User.Identity.Name));
                    bV = usuario.barragem;
                    id = db.Rancking.Where(r => r.rodada.isAberta == false && r.rodada.isRodadaCarga == false && r.rodada.barragemId == bV.Id).Max(r => r.rodada_id);
                    ViewBag.IdBarragem   = bV.Id;
                    ViewBag.NomeBarragem = bV.nome;
                }
                else if (nome != "")
                {
                    bV = db.BarragemView.Where(b => b.dominio == nome).FirstOrDefault();
                    id = db.Rancking.Where(r => r.rodada.isAberta == false && r.rodada.isRodadaCarga == false && r.rodada.barragemId == bV.Id).Max(r => r.rodada_id);
                    ViewBag.IdBarragem   = bV.Id;
                    ViewBag.NomeBarragem = bV.nome;
                }
                else if (id == 0)
                {
                    return(RedirectToAction("Login", "Account"));
                }
                else
                {
                    HttpCookie cookie     = new HttpCookie("_barragemId");
                    var        barragemId = Convert.ToInt32(cookie.Value.ToString());
                    bV = db.BarragemView.Find(barragemId);
                }
            }
            catch (Exception e) {
                return(RedirectToAction("Login", "Account"));
            }
            rancking = db.Rancking.Include(r => r.userProfile).Include(r => r.rodada).
                       Where(r => r.rodada_id == id && r.posicao > 0 && r.userProfile.situacao != "desativado" && r.userProfile.situacao != "inativo").OrderBy(r => r.classe.nivel).ThenBy(r => r.posicaoClasse).ToList();
            ViewBag.Classes = db.Classe.Where(c => c.barragemId == bV.Id && c.ativa == true).OrderBy(c => c.nivel).ToList();
            if (rancking.Count() > 0)
            {
                var barragem = rancking[0].rodada.barragemId;
                ViewBag.Rodada     = rancking[0].rodada.codigoSeq;
                ViewBag.RodadaId   = rancking[0].rodada.Id;
                ViewBag.dataRodada = (rancking[0].rodada.dataFim + "").Substring(0, 10);

                if (rancking[0].rodada.temporadaId != null)
                {
                    var temporadaId = rancking[0].rodada.temporadaId;
                    var rodadaId    = rancking[0].rodada.Id;
                    var qtddRodada  = db.Rodada.Where(r => r.temporadaId == temporadaId && r.Id <= rodadaId && r.barragemId == barragem).Count();
                    ViewBag.Temporada = rancking[0].rodada.temporada.nome + " - Rodada " + qtddRodada + " de " +
                                        rancking[0].rodada.temporada.qtddRodadas;
                }
                else
                {
                    ViewBag.Temporada = "";
                }
            }

            return(View(rancking));
        }
Esempio n. 8
0
        public ActionResult Index3(int idJogo = 0, bool Sucesso = false, string MsgAlerta = "")
        {
            ViewBag.Sucesso         = Sucesso;
            ViewBag.MsgAlerta       = MsgAlerta;
            ViewBag.SoTorneio       = false;
            ViewBag.ViewOrganizador = false;
            var usuario = db.UserProfiles.Find(WebSecurity.GetUserId(User.Identity.Name));

            Funcoes.CriarCookieBarragem(Response, Server, usuario.barragemId, usuario.barragem.nome);
            int          barragemId   = usuario.barragemId;
            BarragemView barragem     = db.BarragemView.Find(barragemId);
            var          barragemName = barragem.nome;
            string       perfil       = Roles.GetRolesForUser(User.Identity.Name)[0];

            ViewBag.linkPagSeguro = barragem.linkPagSeguro;
            if ((barragem.soTorneio) != null)
            {
                ViewBag.SoTorneio = barragem.soTorneio;
            }
            ViewBag.NomeBarragem      = barragemName;
            ViewBag.IdBarragem        = barragemId;
            ViewBag.solicitarAtivacao = "";
            ViewBag.Torneio           = getTorneioAberto(barragemId);

            ViewBag.situacaoJogador = usuario.situacao;
            ViewBag.userId          = usuario.UserId;
            if (perfil.Equals("admin") || perfil.Equals("organizador"))
            {
                var pb = db.PagamentoBarragem.Where(p => (bool)p.cobrar && p.barragemId == barragemId && (p.status == "Aguardando" || p.status == "canceled")).OrderByDescending(o => o.Id).ToList();
                if (pb.Count() > 0)
                {
                    if (pb[0].status == "Aguardando")
                    {
                        ViewBag.cobranca           = "Olá, o boleto da sua mensalidade já está disponível para pagamento. Clique no link para acessar o boleto ou copie o número do código de barras:";
                        ViewBag.boleto             = pb[0].linkBoleto;
                        ViewBag.numeroCodigoBarras = pb[0].digitableLine;
                        if (((DateTime.Now.Day > 10) && (DateTime.Now.DayOfWeek != DayOfWeek.Saturday) &&
                             (DateTime.Now.DayOfWeek != DayOfWeek.Sunday) && (DateTime.Now.DayOfWeek != DayOfWeek.Monday)) ||
                            (DateTime.Now.Day > 13))
                        {
                            var brg = db.Barragens.Find(barragemId);
                            brg.isAtiva         = false;
                            db.Entry(brg).State = EntityState.Modified;
                            db.SaveChanges();
                            ViewBag.cobranca = "Olá, Você possui uma mensalidade em atrasado que ocasionou o bloqueio do seu ranking. Não será possível gerar temporadas e rodadas. Clique no link para acessar o boleto ou copie o número do código de barras para realizar o pagamento:";
                        }
                    }
                    if (pb[0].status == "canceled")
                    {
                        ViewBag.cobranca = "Seu ranking está inativo por falta de pagamento do boleto. Não será possível gerar temporadas e rodadas. Favor consultar os administradores do rankingdetenis.com";
                    }
                }
            }

            Jogo jogo = null;

            if (idJogo == 0)
            {
                try
                {
                    jogo = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && u.torneioId == null)
                           .OrderByDescending(u => u.Id).Take(1).Single();
                    ViewBag.isRodadaAtual = true;
                }
                catch (System.InvalidOperationException e)
                {
                    ViewBag.isRodadaAtual = false;
                    //ViewBag.MsgAlert = "Não foi possível encontrar jogos em aberto:" + e.Message;
                }
            }
            else
            {
                jogo = db.Jogo.Find(idJogo);
                ViewBag.isRodadaAtual = false;
                if (perfil.Equals("admin") || perfil.Equals("organizador"))
                {
                    ViewBag.ViewOrganizador = true;
                }
            }
            if (jogo != null)
            {
                //nao permitir edição caso a rodada já esteja fechada e o placar já tenha sido informado
                if (!perfil.Equals("admin") && !perfil.Equals("organizador") && (jogo.rodada.isAberta == false) && (jogo.gamesJogados != 0))
                {
                    ViewBag.Editar = false;
                }
                else
                {
                    ViewBag.Editar = true;
                }
                ViewBag.Placar = "";
                if ((jogo.situacao_Id == 4) || (jogo.situacao_Id == 5))
                {
                    if (perfil.Equals("admin") || perfil.Equals("organizador"))
                    {
                        ViewBag.VoltarPendente = true;
                    }
                    var placar = jogo.qtddGames1setDesafiado + "/" + jogo.qtddGames1setDesafiante;
                    if (jogo.qtddGames2setDesafiado != 0 || jogo.qtddGames2setDesafiante != 0)
                    {
                        placar = placar + " " + jogo.qtddGames2setDesafiado + "/" + jogo.qtddGames2setDesafiante;
                    }
                    if (jogo.qtddGames3setDesafiado != 0 || jogo.qtddGames3setDesafiante != 0)
                    {
                        placar = placar + " " + jogo.qtddGames3setDesafiado + "/" + jogo.qtddGames3setDesafiante;
                    }
                    ViewBag.Placar = ": " + placar;
                }
                if ((jogo.torneioId != null) && (jogo.torneioId > 0))
                {
                    var torneioId = jogo.torneioId;
                    ViewBag.NomeTorneio = db.Torneio.Find(torneioId).nome;
                }

                ViewBag.ptDefendidosDesafiado  = getPontosDefendidos(jogo.desafiado_id, jogo.rodada_id);
                ViewBag.ptDefendidosDesafiante = getPontosDefendidos(jogo.desafiante_id, jogo.rodada_id);

                if (jogo.torneioId == null)
                {
                    var temporadaId = jogo.rodada.temporadaId;
                    var rodadaId    = jogo.rodada_id;
                    var qtddRodada  = db.Rodada.Where(r => r.temporadaId == temporadaId && r.Id <= rodadaId && r.barragemId == barragemId).Count();
                    if (temporadaId > 0)
                    {
                        ViewBag.Temporada    = jogo.rodada.temporada.nome;
                        ViewBag.NumeroRodada = "Rodada " + qtddRodada + " de " + jogo.rodada.temporada.qtddRodadas;
                    }
                }
            }


            // jogos pendentes
            var dataLimite     = DateTime.Now.AddMonths(-10);
            var jogosPendentes = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && !u.rodada.isAberta &&
                                               u.situacao_Id != 4 && u.situacao_Id != 5 && u.rodada.dataInicio > dataLimite).OrderByDescending(u => u.Id).Take(3).ToList();

            if (jogosPendentes.Count() > 0)
            {
                ViewBag.JogosPendentes = jogosPendentes;
            }
            //var jogosPendentesTorneio = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && u.situacao_Id != 4 && u.situacao_Id != 5 && u.torneioId > 0).OrderByDescending(u => u.Id).Take(3).ToList();
            //if (jogosPendentesTorneio.Count() > 0){
            //    ViewBag.JogosPendentesTorneio = jogosPendentesTorneio;
            //}


            try
            {
                List <Rancking> ranckingJogadorDesafiado  = db.Rancking.Where(r => r.userProfile_id == jogo.desafiado_id && r.posicaoClasse != null).OrderByDescending(r => r.rodada_id).Take(1).ToList();
                List <Rancking> ranckingJogadorDesafiante = db.Rancking.Where(r => r.userProfile_id == jogo.desafiante_id && r.posicaoClasse != null).OrderByDescending(r => r.rodada_id).Take(1).ToList();

                if (ranckingJogadorDesafiado.Count > 0)
                {
                    ViewBag.posicaoDesafiado = ranckingJogadorDesafiado[0].posicaoClasse + "º";
                }
                else
                {
                    ViewBag.posicaoDesafiado = "sem ranking";
                }

                if (ranckingJogadorDesafiante.Count > 0)
                {
                    ViewBag.posicaoDesafiante = ranckingJogadorDesafiante[0].posicaoClasse + "º";
                }
                else
                {
                    ViewBag.posicaoDesafiante = "sem ranking";
                }

                var jogosHeadToHead = db.Jogo.Where(j => (j.desafiado_id == jogo.desafiado_id && j.desafiante_id == jogo.desafiante_id) ||
                                                    (j.desafiante_id == jogo.desafiado_id && j.desafiado_id == jogo.desafiante_id)).ToList();

                ViewBag.qtddVitoriasDesafiado  = jogosHeadToHead.Where(j => j.idDoVencedor == jogo.desafiado_id).Count();
                ViewBag.qtddVitoriasDesafiante = jogosHeadToHead.Where(j => j.idDoVencedor == jogo.desafiante_id).Count();
            }catch (Exception e) {}
            try
            {
                ViewBag.melhorRankingDesafiado = "";
                var melhorRankingDesafiado = db.Rancking.Where(r => r.userProfile_id == jogo.desafiado_id && r.posicaoClasse != null && r.classeId != null).OrderBy(r => r.classe.nivel).ThenBy(r => r.posicaoClasse).Take(1).ToList();
                ViewBag.melhorRankingDesafiado = melhorRankingDesafiado[0].posicaoClasse + "º/" + melhorRankingDesafiado[0].classe.nome;
            }
            catch (Exception e) { }

            try
            {
                ViewBag.melhorRankingDesafiante = "";
                var melhorRankingDesafiante = db.Rancking.Where(r => r.userProfile_id == jogo.desafiante_id && r.posicaoClasse != null && r.classeId != null).OrderBy(r => r.classe.nivel).ThenBy(r => r.posicaoClasse).Take(1).ToList();
                ViewBag.melhorRankingDesafiante = melhorRankingDesafiante[0].posicaoClasse + "º/" + melhorRankingDesafiante[0].classe.nome;
            }
            catch (Exception e) { }
            // gráfico linha - desempenho no ranking
            var meuRanking  = db.Rancking.Where(r => r.userProfile_id == usuario.UserId && !r.rodada.isRodadaCarga && r.posicaoClasse != null && r.classeId != null).OrderByDescending(r => r.rodada.dataInicio).Take(7).ToList();
            var labels      = "";
            var dados       = "";
            var primeiraVez = true;

            foreach (var rk in meuRanking)
            {
                if (primeiraVez)
                {
                    primeiraVez = false;
                    labels      = "'" + rk.rodada.codigoSeq + ": " + rk.classe.nome.Replace("Classe", "Cl.") + "'";
                    dados       = "" + rk.posicaoClasse;
                }
                else
                {
                    dados  = rk.posicaoClasse + "," + dados;
                    labels = "'" + rk.rodada.codigoSeq + ": " + rk.classe.nome.Replace("Classe", "Cl.") + "'," + labels;
                }
            }
            ViewBag.ChartLinelabels = labels;
            ViewBag.ChartLineData   = dados;
            ViewBag.meuRanking      = meuRanking;
            // gráfico rosca - desempenho nos jogos
            var meusJogos = db.Jogo.Where(j => (j.desafiado_id == usuario.UserId || j.desafiante_id == usuario.UserId) && (j.situacao_Id == 5 || j.situacao_Id == 4) && j.torneioId == null).ToList();

            ViewBag.qtddTotalDerrotas = meusJogos.Where(j => j.idDoVencedor != usuario.UserId).Count();
            ViewBag.qtddTotalVitorias = meusJogos.Where(j => j.idDoVencedor == usuario.UserId).Count();
            //ViewBag.qtddTotalWos = meusJogos.Where(j => j.situacao_Id == 5).Count();

            return(View(jogo));
        }
Esempio n. 9
0
        public ActionResult Index2(int idJogo = 0)
        {
            ViewBag.SoTorneio = false;
            var usuario = db.UserProfiles.Find(WebSecurity.GetUserId(User.Identity.Name));

            Funcoes.CriarCookieBarragem(Response, Server, usuario.barragemId, usuario.barragem.nome);
            int          barragemId   = usuario.barragemId;
            BarragemView barragem     = db.BarragemView.Find(barragemId);
            var          barragemName = barragem.nome;

            ViewBag.linkPagSeguro = barragem.linkPagSeguro;
            if ((barragem.soTorneio) != null)
            {
                ViewBag.SoTorneio = barragem.soTorneio;
            }
            ViewBag.NomeBarragem      = barragemName;
            ViewBag.IdBarragem        = barragemId;
            ViewBag.solicitarAtivacao = "";
            ViewBag.Torneio           = getTorneioAberto(barragemId);
            ViewBag.TemFotoPerfil     = true;
            if (String.IsNullOrEmpty(usuario.fotoURL))
            {
                ViewBag.TemFotoPerfil = false;
            }

            Jogo jogo = null;

            if (idJogo == 0)
            {
                try
                {
                    jogo = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && u.torneioId == null)
                           .OrderByDescending(u => u.Id).Take(1).Single();
                }
                catch (System.InvalidOperationException e)
                {
                    //ViewBag.MsgAlert = "Não foi possível encontrar jogos em aberto:" + e.Message;
                }
            }
            else
            {
                jogo = db.Jogo.Find(idJogo);
            }
            if (jogo != null)
            {
                //nao permitir edição caso a rodada já esteja fechada e o placar já tenha sido informado
                //string perfil = Roles.GetRolesForUser(User.Identity.Name)[0];
                //if (!perfil.Equals("admin") && !perfil.Equals("organizador") && (jogo.rodada.isAberta == false) && (jogo.gamesJogados != 0)){
                //    ViewBag.Editar = false;
                //}else{
                //    ViewBag.Editar = true;
                //}
                if ((jogo.torneioId != null) && (jogo.torneioId > 0))
                {
                    var torneioId = jogo.torneioId;
                    ViewBag.NomeTorneio = db.Torneio.Find(torneioId).nome;
                }

                ViewBag.situacao_Id            = new SelectList(db.SituacaoJogo, "Id", "descricao", jogo.situacao_Id);
                ViewBag.ptDefendidosDesafiado  = getPontosDefendidos(jogo.desafiado_id, jogo.rodada_id);
                ViewBag.ptDefendidosDesafiante = getPontosDefendidos(jogo.desafiante_id, jogo.rodada_id);

                if (jogo.torneioId == null)
                {
                    var temporadaId = jogo.rodada.temporadaId;
                    var rodadaId    = jogo.rodada_id;
                    var qtddRodada  = db.Rodada.Where(r => r.temporadaId == temporadaId && r.Id <= rodadaId && r.barragemId == barragemId).Count();
                    if (temporadaId > 0)
                    {
                        ViewBag.Temporada = jogo.rodada.temporada.nome + " - Rodada " + qtddRodada + " de " + jogo.rodada.temporada.qtddRodadas;
                    }
                }
            }


            // jogos pendentes
            var dataLimite     = DateTime.Now.AddMonths(-10);
            var jogosPendentes = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && !u.rodada.isAberta &&
                                               u.situacao_Id != 4 && u.situacao_Id != 5 && u.rodada.dataInicio > dataLimite).OrderByDescending(u => u.Id).Take(3).ToList();

            if (jogosPendentes.Count() > 0)
            {
                ViewBag.JogosPendentes = jogosPendentes;
            }
            //var jogosPendentesTorneio = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && u.situacao_Id != 4 && u.situacao_Id != 5 && u.torneioId > 0).OrderByDescending(u => u.Id).Take(3).ToList();
            //if (jogosPendentesTorneio.Count() > 0){
            //    ViewBag.JogosPendentesTorneio = jogosPendentesTorneio;
            //}


            // últimos jogos já finalizados
            var ultimosJogosFinalizados = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && !u.rodada.isAberta &&
                                                        (u.situacao_Id == 4 || u.situacao_Id == 5)).OrderByDescending(u => u.Id).Take(5).ToList();

            ViewBag.JogosFinalizados = ultimosJogosFinalizados;


            return(View(jogo));
        }
Esempio n. 10
0
        public void FecharRodada(int id)
        {
            string msg = "";

            db.Database.ExecuteSqlCommand("Delete from Rancking where rodada_id=" + id + " and posicaoClasse is not null");
            List <Jogo>  jogos            = db.Jogo.Where(r => r.rodada_id == id).ToList();
            var          pontosDesafiante = 0.0;
            var          pontosDesafiado  = 0.0;
            Rodada       rodada           = db.Rodada.Find(id);
            BarragemView barragem         = db.BarragemView.Find(rodada.barragemId);

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    foreach (Jogo item in jogos)
                    {
                        pontosDesafiante = calcularPontosDesafiante(item);
                        pontosDesafiado  = calcularPontosDesafiado(item);
                        msg = "pontosDesafio" + item.desafiado_id;
                        if (!item.desafiante.situacao.Equals("curinga"))
                        {
                            gravarPontuacaoNaRodada(id, item.desafiante, pontosDesafiante);
                            msg = "gravarPontuacaoNaRodadaDesafiante" + item.desafiante_id;
                        }
                        gravarPontuacaoNaRodada(id, item.desafiado, pontosDesafiado);
                        msg = "gravarPontuacaoNaRodadaDesafiado" + item.desafiado_id;
                        if (barragem.suspensaoPorAtraso)
                        {
                            verificarRegraSuspensaoPorAtraso(item);
                        }
                        if (barragem.suspensaoPorWO)
                        {
                            verificarRegraSuspensaoPorWO(item);
                        }
                        msg = "verificarRegraSuspensao" + item.desafiado_id;
                    }

                    gerarPontuacaoDosJogadoresForaDaRodada(id, rodada.barragemId);
                    msg = "gerarPontuacaoDosJogadoresForaDaRodada";

                    gerarRancking(id);
                    msg = "gerarRanking";
                    List <Classe> classes = db.Classe.Where(c => c.barragemId == rodada.barragemId).ToList();
                    for (int i = 0; i < classes.Count(); i++)
                    {
                        gerarRanckingPorClasse(id, classes[i].Id);
                    }
                    msg                    = "gerarRankingPorClasse";
                    rodada.isAberta        = false;
                    rodada.dataFim         = DateTime.Now;
                    db.Entry(rodada).State = EntityState.Modified;
                    db.SaveChanges();
                    scope.Complete();
                    msg = "ok";
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao fechar rodada", ex);
            }
        }
Esempio n. 11
0
        public ActionResult Index2(int idJogo = 0)
        {
            HttpCookie cookie       = Request.Cookies["_barragemId"];
            var        barragemId   = 1;
            var        barragemName = "Barragem do Cerrado";

            if (cookie != null)
            {
                barragemId = Convert.ToInt32(cookie.Value.ToString());
                BarragemView barragem = db.BarragemView.Find(barragemId);
                barragemName = barragem.nome;
            }
            ViewBag.NomeBarragem      = barragemName;
            ViewBag.solicitarAtivacao = "";
            Jogo jogo    = null;
            var  usuario = db.UserProfiles.Find(WebSecurity.GetUserId(User.Identity.Name));

            if (idJogo == 0)
            {
                try{
                    jogo = db.Jogo.Where(u => u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId)
                           .OrderByDescending(u => u.Id).Take(1).Single();
                } catch (System.InvalidOperationException e) {
                    //ViewBag.MsgAlert = "Não foi possível encontrar jogos em aberto:" + e.Message;
                }
            }
            else
            {
                jogo = db.Jogo.Find(idJogo);
            }
            if (jogo != null)
            {
                //nao permitir edição caso a rodada já esteja fechada e o placar já tenha sido informado
                string perfil = Roles.GetRolesForUser(User.Identity.Name)[0];
                if (!perfil.Equals("admin") && !perfil.Equals("organizador") && (jogo.rodada.isAberta == false) && (jogo.gamesJogados != 0))
                {
                    ViewBag.Editar = false;
                }
                else
                {
                    ViewBag.Editar = true;
                }
                ViewBag.situacao_Id            = new SelectList(db.SituacaoJogo, "Id", "descricao", jogo.situacao_Id);
                ViewBag.ptDefendidosDesafiado  = getPontosDefendidos(jogo.desafiado_id, jogo.rodada_id);
                ViewBag.ptDefendidosDesafiante = getPontosDefendidos(jogo.desafiante_id, jogo.rodada_id);
            }
            if ((usuario.situacao == "desativado") || (usuario.situacao == "pendente"))
            {
                ViewBag.solicitarAtivacao = Class.MD5Crypt.Criptografar(usuario.UserName);
            }

            // jogos pendentes
            var dataLimite     = DateTime.Now.AddMonths(-10);
            var jogosPendentes = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && !u.rodada.isAberta &&
                                               u.situacao_Id != 4 && u.situacao_Id != 5 && u.rodada.dataInicio > dataLimite).OrderByDescending(u => u.Id).Take(3).ToList();

            ViewBag.JogosPendentes = jogosPendentes;


            // últimos jogos já finalizados
            var ultimosJogosFinalizados = db.Jogo.Where(u => (u.desafiado_id == usuario.UserId || u.desafiante_id == usuario.UserId) && !u.rodada.isAberta &&
                                                        (u.situacao_Id == 4 || u.situacao_Id == 5)).OrderByDescending(u => u.Id).Take(5).ToList();

            ViewBag.JogosFinalizados = ultimosJogosFinalizados;


            return(View(jogo));
        }
Esempio n. 12
0
        public ActionResult FecharRodada(int id)
        {
            string msg         = "";
            string detalheErro = "";

            db.Database.ExecuteSqlCommand("Delete from Rancking where rodada_id=" + id + " and posicaoClasse is not null");
            List <Jogo>  jogos            = db.Jogo.Where(r => r.rodada_id == id).ToList();
            var          pontosDesafiante = 0.0;
            var          pontosDesafiado  = 0.0;
            Rodada       rodada           = db.Rodada.Find(id);
            BarragemView barragem         = db.BarragemView.Find(rodada.barragemId);
            var          log2             = new Log();

            log2.descricao = "Fecha data:" + DateTime.Now + " " + barragem.nome + " Fecha barragem";
            db.Log.Add(log2);
            db.SaveChanges();
            try
            {
                using (TransactionScope scope = new TransactionScope()){
                    foreach (Jogo item in jogos)
                    {
                        pontosDesafiante = rn.calcularPontosDesafiante(item);
                        pontosDesafiado  = rn.calcularPontosDesafiado(item);
                        msg = "pontosDesafio" + item.desafiado_id;
                        if (!item.desafiante.situacao.Equals("curinga"))
                        {
                            rn.gravarPontuacaoNaRodada(id, item.desafiante, pontosDesafiante);
                            msg = "gravarPontuacaoNaRodadaDesafiante" + item.desafiante_id;
                        }
                        rn.gravarPontuacaoNaRodada(id, item.desafiado, pontosDesafiado);
                        msg = "gravarPontuacaoNaRodadaDesafiado" + item.desafiado_id;
                        if (barragem.suspensaoPorAtraso)
                        {
                            verificarRegraSuspensaoPorAtraso(item);
                        }
                        if (barragem.suspensaoPorWO)
                        {
                            verificarRegraSuspensaoPorWO(item);
                        }
                        msg = "verificarRegraSuspensao" + item.desafiado_id;
                    }

                    rn.gerarPontuacaoDosJogadoresForaDaRodada(id, rodada.barragemId);
                    msg = "gerarPontuacaoDosJogadoresForaDaRodada";

                    gerarRancking(id);
                    msg = "gerarRanking";
                    List <Classe> classes = db.Classe.Where(c => c.barragemId == rodada.barragemId).ToList();
                    for (int i = 0; i < classes.Count(); i++)
                    {
                        gerarRanckingPorClasse(id, classes[i].Id);
                    }
                    msg                    = "gerarRankingPorClasse";
                    rodada.isAberta        = false;
                    rodada.dataFim         = DateTime.Now;
                    db.Entry(rodada).State = EntityState.Modified;
                    db.SaveChanges();
                    scope.Complete();
                    msg = "ok";
                }
            }catch (Exception ex) {
                msg = msg + ": " + ex.Message;
                if (ex.InnerException == null)
                {
                    ViewBag.DetalheErro = ex.StackTrace;
                }
                else
                {
                    ViewBag.DetalheErro = ex.InnerException.StackTrace;
                }
                ViewBag.MsgErro = msg;
                return(View());
            }
            return(RedirectToAction("Index", new { msg = msg, detalheErro = detalheErro }));
        }