protected void grdJogosUsuarios_RowDataBound(object sender, GridViewRowEventArgs e) { //Se não é registro if (e.Row.RowType != DataControlRowType.DataRow) { return; }//endif registro //Buscando o valor do registro Model.Boloes.Simulation.JogoUsuarioPosicao entry = (Model.Boloes.Simulation.JogoUsuarioPosicao)e.Row.DataItem; SetColumnColor(e.Row.Cells[GridPosPontos], entry.Pontos, Pontuacoes); //Buscando os objetos da tela Image imgLastPos = (Image)e.Row.FindControl("imgLastPos"); Label lblLastPos = (Label)e.Row.FindControl("lblLastPos"); //Se tem informação encontrada if (imgLastPos != null && lblLastPos != null) { int diferenca = entry.LastPosicao - entry.Posicao; //Se continua na mesma posição if (diferenca == 0) { lblLastPos.Text = ""; imgLastPos.ImageUrl = "~/Images/quadrado.gif"; } //Se subiu posições else if (diferenca > 0) { lblLastPos.Text = diferenca.ToString(); imgLastPos.ImageUrl = "~/Images/seta_cima.gif"; } //se Desceu posições else { imgLastPos.ImageUrl = "~/Images/seta_baixo.gif"; lblLastPos.Text = (diferenca * -1).ToString(); } //endif diferenças } //endif informação encontrada }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Business.Campeonatos.Support.Jogo jogo = new BolaoNet.Business.Campeonatos.Support.Jogo(base.UserName); //Se estiver passando o id do jogo if (Request.QueryString["IDJogo"] != null) { long idJogo = Convert.ToInt64(Request.QueryString["IDJogo"].ToString()); jogo.Campeonato = CurrentCampeonato; jogo.IDJogo = idJogo; jogo.Load(); this.ctlJogoDetail.Jogo = jogo; }//endif passando id do jogo Business.Boloes.Support.Bolao business = new BolaoNet.Business.Boloes.Support.Bolao(base.UserName, CurrentBolao.Nome); #region Buscando os pontos dos jogos List <Model.Boloes.BolaoCriterioPontos> listCriteriosPontos = new List <Model.Boloes.BolaoCriterioPontos>(); IList <Framework.DataServices.Model.EntityBaseData> auxlist = business.LoadCriteriosPontos(null); for (int c = 0; c < 20; c++) { Model.Boloes.BolaoCriterioPontos criteriosPontos = new BolaoNet.Model.Boloes.BolaoCriterioPontos(); criteriosPontos.Bolao = new BolaoNet.Model.Boloes.Bolao(CurrentBolao.Nome); criteriosPontos.CriterioID = (Model.Boloes.BolaoCriterioPontos.CriteriosID)(c + 1); listCriteriosPontos.Add(criteriosPontos); } foreach (Model.Boloes.BolaoCriterioPontos pontos in auxlist) { if (pontos.Pontos != 0) { listCriteriosPontos[(int)pontos.CriterioID - 1].Pontos = pontos.Pontos; } } Criterios = listCriteriosPontos; #endregion #region Buscando os pontos dos times List <Model.Boloes.BolaoCriterioPontosTimes> listCriteriosPontosTimes = new List <BolaoNet.Model.Boloes.BolaoCriterioPontosTimes>(); auxlist = business.LoadCriteriosPontosTimes(null); foreach (Model.Boloes.BolaoCriterioPontosTimes times in auxlist) { listCriteriosPontosTimes.Add(times); } CriteriosTimes = listCriteriosPontosTimes; #endregion #region Buscando a classificação do campeonato IList <Model.Boloes.BolaoMembros> listClassificacao = business.LoadClassificacao(0); #endregion #region Buscando as apostas do Usuários List <Model.Boloes.Simulation.JogoUsuarioPosicao> listJogosPos = new List <BolaoNet.Model.Boloes.Simulation.JogoUsuarioPosicao>(); Business.Boloes.Support.JogoUsuario businessJogos = new BolaoNet.Business.Boloes.Support.JogoUsuario(base.UserName); businessJogos.Bolao = CurrentBolao; //Model.Campeonatos.Jogo jogo = new BolaoNet.Model.Campeonatos.Jogo(380); //jogo.Campeonato = CurrentCampeonato; auxlist = businessJogos.LoadApostasByJogo(CurrentBolao, jogo, null); foreach (Model.Boloes.JogoUsuario aposta in auxlist) { Model.Boloes.Simulation.JogoUsuarioPosicao apostaPosicao = new Model.Boloes.Simulation.JogoUsuarioPosicao(); apostaPosicao.CopyAposta(aposta); for (int c = listClassificacao.Count - 1; c >= 0; c--) { if (string.Compare(apostaPosicao.UserName, listClassificacao[c].UserName, true) == 0) { apostaPosicao.TotalPontos = listClassificacao[c].TotalPontos; apostaPosicao.LastPontos = listClassificacao[c].TotalPontos; apostaPosicao.Posicao = listClassificacao[c].Posicao; apostaPosicao.LastPosicao = listClassificacao[c].Posicao; apostaPosicao.LastApostaPontos = apostaPosicao.ApostaPontos.Pontos; listClassificacao.RemoveAt(c); break; } } listJogosPos.Add(apostaPosicao); } JogoUsuarios = listJogosPos; #endregion this.grdJogosUsuarios.DataSource = OrderPontos(listJogosPos); this.grdJogosUsuarios.DataBind(); } }
private void CalculePontos(Model.Boloes.Simulation.JogoUsuarioPosicao entry, List <Model.Boloes.BolaoCriterioPontos> criterios, List <Model.Boloes.BolaoCriterioPontosTimes> criteriosTimes) { int PontosTotal = 0; // int CountEmpate = 0; // Se o usuário apostou empate e o jogo deu empate int CountVitoria = 0; // Se o usuário apostou vitória para o time e deu vitória para o time selecionado int CountDerrota = 0; // Se o usuário apostou derrota para o time e deu derrota para o time selecionado int CountGanhador = 0; // Se acertou o time ganhador, idependente se está jogando em casa ou fora int CountPerdedor = 0; // Se acertou o time perdedor, idependente se está jogando em casa ou fora int CountTime1 = 0; // Se acertou a quantidade de gols do time 1 int CountTime2 = 0; // Se acertou a quantidade de gols do time 2 int CountVDE = 0; // Se acertou se deu empate/derrota ou vitória no jogo int CountErro = 0; // Se errou o jogo int CountGanhadorFora = 0; // Se acertou que o time foi ganhador jogando fora de casa int CountGanhadorDentro = 0; // Se acertou que o time foi ganhador dentro de casa int CountPerdedorFora = 0; // Se acertou que o time foi perdedor fora de casa int CountPerdedorDentro = 0; // Se acertou que o time foi perdedor dentro de casa int CountEmpateGols = 0; // Se acertou a quantidade de gols quando ocorrer empate int CountGolsTime1 = 0; // Se acertou a quantidade de gols do time 1 int CountGolsTime2 = 0; // Se acertou a quantidade de gols do time 2 int CountCheio = 0; // Se acertou em cheio o resultado //------------------------------------------------------- //-- PARTE 1 : Verificando o resultado do jogo //-- Se ocorreu empate if (entry.GolsTime1 == entry.GolsTime2) { if (entry.ApostaTime1 == entry.ApostaTime2) { CountEmpate = 1; CountVDE = 1; if (entry.ApostaTime1 == entry.GolsTime1) { CountGanhador = 1; CountTime1 = 1; CountEmpateGols = 1; CountPerdedor = 1; CountTime2 = 1; CountCheio = 1; } } else { CountErro = 1; } } //-- Se ocorreu vitória do time 1 else if (entry.GolsTime1 > entry.GolsTime2) { if (entry.ApostaTime1 > entry.ApostaTime2) { CountVitoria = 1; CountDerrota = 1; CountVDE = 1; if (entry.ApostaTime1 == entry.GolsTime1 && entry.ApostaTime2 == entry.GolsTime2) { CountCheio = 1; CountGanhadorDentro = 1; CountPerdedorFora = 1; } if (entry.ApostaTime1 == entry.GolsTime1) { CountGanhador = 1; CountTime1 = 1; } if (entry.ApostaTime2 == entry.GolsTime2) { CountPerdedor = 1; CountTime2 = 1; } } else { CountErro = 1; } } //-- Se ocorreu derrota do time 1 else if (entry.GolsTime1 < entry.GolsTime2) { if (entry.ApostaTime1 < entry.ApostaTime2) { CountVitoria = 1; CountDerrota = 1; CountVDE = 1; if (entry.ApostaTime1 == entry.GolsTime1 && entry.ApostaTime2 == entry.GolsTime2) { CountCheio = 1; CountGanhadorFora = 1; CountPerdedorDentro = 1; } if (entry.ApostaTime2 == entry.GolsTime2) { CountGanhador = 1; CountTime2 = 1; } if (entry.ApostaTime1 == entry.GolsTime1) { CountPerdedor = 1; CountTime1 = 1; } } else { CountErro = 1; } } //------------------------------------------------------- //---- PARTE 2 : Verificando a quantidade de gols do time casa/fora //---- Se acertou a quantidade de gols do time 1 if (entry.GolsTime1 == entry.ApostaTime1) { CountGolsTime1 = 1; } if (entry.GolsTime2 == entry.ApostaTime2) { CountGolsTime2 = 1; } PontosTotal = criterios[0].Pontos * CountEmpate + criterios[1].Pontos * CountVitoria + criterios[2].Pontos * CountDerrota + criterios[3].Pontos * CountGanhador + criterios[4].Pontos * CountPerdedor + criterios[5].Pontos * CountTime1 + criterios[6].Pontos * CountTime2 + criterios[7].Pontos * CountVDE + criterios[8].Pontos * CountErro + criterios[9].Pontos * CountGanhadorFora + criterios[10].Pontos * CountGanhadorDentro + criterios[11].Pontos * CountPerdedorFora + criterios[12].Pontos * CountPerdedorDentro + criterios[13].Pontos * CountEmpateGols + criterios[14].Pontos * CountGolsTime1 + criterios[15].Pontos * CountGolsTime2 + criterios[16].Pontos * CountCheio; foreach (Model.Boloes.BolaoCriterioPontosTimes entryTimes in criteriosTimes) { if (string.Compare(entry.Time1.Nome, entryTimes.Time.Nome) == 0) { PontosTotal *= entryTimes.MultiploTime; } else if (string.Compare(entry.Time2.Nome, entryTimes.Time.Nome) == 0) { PontosTotal *= entryTimes.MultiploTime; } } entry.TotalPontos += PontosTotal; entry.ApostaPontos.Pontos = PontosTotal; //1 Empate //2 Vitória //3 Derrota //4 Ganhador //5 Perdedor //6 Time 1 //7 Time 2 //8 Vitória/Empate/Derrota //9 Erro //10 Ganhador Fora //11 Ganhador Dentro //12 Perdedor Fora //13 Perdedor Dentro //14 Empate Gols //15 Gols Time 1 //16 Gols Time 2 //17 Cheio }