public async Task <IHttpActionResult> PostRodada(Rodada rodada)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _db.Rodada.Add(rodada);

            try
            {
                await _db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (RodadaExists(rodada.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = rodada.Id }, rodada));
        }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     try
     {
         AdministradorCampeonato campeonato        = new AdministradorCampeonato();
         LeitorArquivo           lerArquivoTorneio = new LeitorArquivo();
         Rodada jogadaVencedora = campeonato.rps_tournament_winner(lerArquivoTorneio.LerArquivoTorneio());
         Console.WriteLine("O vencedor do campeonato é: " + jogadaVencedora.NomeJogador);
         Console.Read();
     }
     catch (NoSuchStrategyError)
     {
         Console.WriteLine("Jogada informada é inválida. Jogadas válidas: P, R, S");
         Console.Read();
     }
     catch (WrongNumberOfPlayersError)
     {
         Console.WriteLine("As rodadas devem conter 2 jogadores");
         Console.Read();
     }
     catch (Exception)
     {
         Console.WriteLine("Ocorreu um erro na execução do programa");
         Console.Read();
     }
 }
        public async Task <IHttpActionResult> PutRodada(Guid id, Rodada rodada)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

            _db.Entry(rodada).State = EntityState.Modified;

            try
            {
                await _db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RodadaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// A partir do torneio, faz o "maata-mata" para descobrir o vencedor do campeonato
        /// </summary>
        /// <param name="torneio"></param>
        /// <returns></returns>
        public Rodada rps_tournament_winner(Torneio torneio)
        {
            List <Rodada> vencedoresDaRodada      = new List <Rodada>();
            List <Rodada> competidoresRodadaFinal = new List <Rodada>();

            foreach (var rodada in torneio.rodadas)
            {
                //verifica o vencedor de cada rodada
                Rodada jogadaVencedora = rps_game_winner(rodada);
                vencedoresDaRodada.Add(jogadaVencedora);

                //monta mais uma rodada a partir dos vencedores das demais rodadas
                if (vencedoresDaRodada.Count == 2)
                {
                    Rodada vencedorPartida = rps_game_winner(vencedoresDaRodada);
                    competidoresRodadaFinal.Add(vencedorPartida);
                    vencedoresDaRodada = new List <Rodada>();
                }

                //monta a rodada de competidores finais
                if (competidoresRodadaFinal.Count == 2)
                {
                    Rodada vencedorPartida = rps_game_winner(competidoresRodadaFinal);
                    return(vencedorPartida);
                }
            }

            return(new Rodada());
        }
Ejemplo n.º 5
0
        public override Rodada ObterResultado(IList <Filme> filmes)
        {
            int indiceCrescente   = 0;
            int indiceDecrescente = filmes.Count - 1;

            Rodada.SetarRodada(1);

            while (indiceCrescente != indiceDecrescente + 1)
            {
                if (HouveEmpate(filmes[indiceCrescente], filmes[indiceDecrescente]))
                {
                    Rodada.Filmes.Add(Desempatar(filmes[indiceCrescente], filmes[indiceDecrescente]));
                }

                else
                {
                    Rodada.Filmes.Add(JogarRodada(filmes[indiceCrescente], filmes[indiceDecrescente]));
                }

                indiceCrescente++;
                indiceDecrescente--;
            }

            return(Rodada);
        }
Ejemplo n.º 6
0
 public override Rodada ObterResultado(IList <Filme> filmes)
 {
     Rodada.SetarRodada(3);
     Rodada.Filmes.Clear();
     Rodada.Filmes.AddRange(OrdenarPrimeiroSegundoLugar(filmes));
     return(Rodada);
 }
Ejemplo n.º 7
0
        public ActionResult CriaESorteia(Rodada rodada, bool notificarApp = true)
        {
            string mensagem = "";

            if (ModelState.IsValid)
            {
                var rodadaNegocio = new RodadaNegocio();
                try {
                    rodadaNegocio.Create(rodada);
                    mensagem = "ok";
                    rodadaNegocio.SortearJogos(rodada.Id, rodada.barragemId, notificarApp);
                }catch (Exception e) {
                    if (e.InnerException != null)
                    {
                        mensagem = e.Message + ": " + e.InnerException.Message;
                    }
                    else
                    {
                        mensagem = e.Message;
                    }
                }
                return(RedirectToAction("Index", new { msg = mensagem }));
            }
            return(RedirectToAction("Create"));
        }
Ejemplo n.º 8
0
 private void notificarOrganizadorPorEmail(Temporada temporada, Rodada rodada, string mensagemErro)
 {
     try
     {
         Mail mail = new Mail();
         mail.de = System.Configuration.ConfigurationManager.AppSettings.Get("UsuarioMail");
         var barragem = temporada.barragem;
         if (barragem.email.Equals(""))
         {
             mail.para = "*****@*****.**";
         }
         else
         {
             mail.para = barragem.email;
         }
         if (mensagemErro != null)
         {
             mail.assunto  = "Houve um erro ao gerar a rodada";
             mail.conteudo = barragem.nomeResponsavel
                             + ",<br>Um email foi enviado ao administrador.<br>Houve um erro ao gerar a rodada:<br>" + mensagemErro;
         }
         else
         {
             mail.assunto  = "Uma nova rodada foi gerada!";
             mail.conteudo = barragem.nomeResponsavel + ",<br> Uma nova rodada com início em " + rodada.dataInicio
                             + "e fim em " + rodada.dataFim + " foi gerada.";
         }
         mail.formato = Tipos.FormatoEmail.Html;
         mail.EnviarMail();
     }catch (Exception e)
     {
         //deixa rolar...
     }
 }
Ejemplo n.º 9
0
 private void gerarRankingInicial(UserProfile model, string perfil)
 {
     if (((perfil.Equals("admin")) || (perfil.Equals("organizador"))) && (!model.isRanckingGerado))
     {
         List <Rodada> rodadas = db.Rodada.Where(r => r.isAberta == false && r.barragemId == model.barragemId).OrderByDescending(r => r.Id).Take(10).ToList();
         Rancking      ranking = null;
         Rodada        rodada  = null;
         if (rodadas.Count() != 0)
         {
             rodada = rodadas[0];
         }
         int    totalAcumulado = getPontuacaoPorClasse(rodada, model.classeId);
         double pontuacao      = (double)totalAcumulado / 10;
         foreach (var item in rodadas)
         {
             int existe = db.Rancking.Where(r => r.rodada_id == item.Id && r.userProfile_id == model.UserId).Count();
             if (existe == 0)
             {
                 ranking                = new Rancking();
                 ranking.rodada_id      = item.Id;
                 ranking.pontuacao      = pontuacao;
                 ranking.posicao        = 0;
                 ranking.totalAcumulado = totalAcumulado;
                 ranking.userProfile_id = model.UserId;
                 ranking.classeId       = model.classeId;
                 db.Rancking.Add(ranking);
                 db.SaveChanges();
             }
         }
         model.isRanckingGerado = true;
         db.Entry(model).State  = EntityState.Modified;
         db.SaveChanges();
     }
 }
Ejemplo n.º 10
0
        public Rodada RealizarCampeonato(IList <Filme> filmes)
        {
            var rodada = new Rodada();

            if (!FilmesEstaoValidos(filmes))
            {
                rodada.SinalizarErro();
                return(rodada);
            }

            if (filmes.Count() != 8)
            {
                Notificar("Selecione 8 filmes para iniciar o campeonato");

                rodada.SinalizarErro();
                return(rodada);
            }

            filmes = OrdernaLista.PorOrdemAlfabetica(filmes);

            var resultadoPrimeiraRodada = RodadaFactory(NivelRodada.PrimeiraRodada).ObterResultado(filmes);
            var resultadoSegundaRodada  = RodadaFactory(NivelRodada.SegundaRodada).ObterResultado(resultadoPrimeiraRodada.Filmes);
            var resultadoFinal          = RodadaFactory(NivelRodada.UltimaRodada).ObterResultado(resultadoSegundaRodada.Filmes);

            return(resultadoFinal);
        }
Ejemplo n.º 11
0
        public async Task <ActionResult> Create([Bind(Include = "Id,NumRodada,DataInicio,DataFim,InCurso,CampeonatoId")] Rodada rodada)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    HttpResponseMessage response = await Client.PostAsJsonAsync($"api/Rodada", rodada);

                    if (response.StatusCode == System.Net.HttpStatusCode.Created)
                    {
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ViewBag.Error = "Erro imprevisto tentando criar um Rodada.";
                        return(View(rodada));
                    }
                }
                catch
                {
                    return(View(rodada));
                }
            }
            ViewBag.CampeonatoId = new SelectList(Db.Campeonato, "Id", "Nome", rodada.CampeonatoId);
            return(View(rodada));
        }
Ejemplo n.º 12
0
        public String ObterJogosQuartasVoltaJson()
        {
            Rodada rodada             = new Rodada();
            var    listaProximaRodada = rodada.ConverterPartidasParaRodada(appPartida.ObterJogosQuartasVoltaJson());

            return(JsonConvert.SerializeObject(listaProximaRodada, Formatting.Indented));
        }
Ejemplo n.º 13
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,NumRodada,DataInicio,DataFim,InCurso,CampeonatoId")] Rodada rodada)
        {
            var token = Request.Cookies["nossobolao"].Value;

            var id = rodada.Id;

            if (ModelState.IsValid)
            {
                try
                {
                    HttpResponseMessage response = await Client.PutAsJsonAsync($"api/Rodada/{id}", rodada);

                    if (response.StatusCode == System.Net.HttpStatusCode.NoContent)
                    {
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ViewBag.Error = "Erro ao tentar atualizar Rodada: " + await response.Content.ReadAsStringAsync();

                        return(View(rodada));
                    }
                }
                catch
                {
                    return(View(rodada));
                }
            }
            ViewBag.CampeonatoId = new SelectList(Db.Campeonato, "Id", "Nome", rodada.CampeonatoId);
            return(View(rodada));
        }
    public void DidTapContinueButton()
    {
        int numberOfPlayers = 0;
        Jogo.jogadores.Clear();
        Jogo.jogadoresAtivos.Clear();

        for (int i = 0; i < characters.Length; i++) {
            if (characters[i].isOn) {
                numberOfPlayers++;
            }
            Jogador j = new Jogador();
            j.fotoID = i;
            j.taJogando = characters[i].isOn;
            Jogo.jogadores.Add(j);

        }

        if (numberOfPlayers >= 3) {
            for (int i = 0; i < numberOfPlayers; i++) {
                Rodada r = new Rodada();
                Jogo.partida.rodadas.Add(r);
            }

            SceneManager.LoadScene("TelaSorteioCliente");
        } else {
            errorPopup.SetActive(true);
        }
    }
        public async Task <IActionResult> Edit(Guid id, [Bind("Codigo,Descricao,DataInicio,DataFim,Status,TorneioId,Id")] Rodada rodada)
        {
            if (id != rodada.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(rodada);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RodadaExists(rodada.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TorneioId"] = new SelectList(_context.Torneios, "Id", "Codigo", rodada.TorneioId);
            return(View(rodada));
        }
Ejemplo n.º 16
0
        private int getPontuacaoPorClasse(Rodada rodada, int?classeId)
        {
            int qtddJogadores  = 0;
            int posicao        = 0;
            var rodadaId       = 0;
            int totalAcumulado = 50;

            if (rodada != null)
            {
                rodadaId = rodada.Id;
            }
            try
            {
                var ranking = db.Rancking.Where(r => r.rodada_id == rodadaId && r.posicao != 0 && r.classeId == classeId).OrderByDescending(r => r.totalAcumulado).ToList();
                qtddJogadores = ranking.Count();
                if (qtddJogadores > 1)
                {
                    posicao = (qtddJogadores / 2);
                    var rankingPosicao = ranking[posicao];// .ToArray()[posicao];
                    totalAcumulado = Convert.ToInt32(rankingPosicao.totalAcumulado);
                }
                return(totalAcumulado);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message + ": qtddJogadores:" + qtddJogadores + ", posicao:" + posicao + ", rodada: " + rodada.Id);
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Identifica se as jogadas e quantidade de jogadas são válidas. Caso forem, compara as jogadas
        /// </summary>
        /// <param name="jogadas"></param>
        /// <returns>retorna a jogada vencedora</returns>
        public Rodada rps_game_winner(List <Rodada> jogadas)
        {
            Rodada jogadaVencedora = new Rodada();

            if (jogadas != null)
            {
                if (jogadas.Count != 2)
                {
                    throw new WrongNumberOfPlayersError();
                }

                List <string> jogadasValidas = new List <string> {
                    "R", "P", "S"
                };
                foreach (var item in jogadas)
                {
                    if (!jogadasValidas.Contains(item.Jogada.ToUpper()))
                    {
                        throw new NoSuchStrategyError();
                    }
                }

                jogadaVencedora = CompararJogadas(jogadas);
            }

            return(jogadaVencedora);
        }
Ejemplo n.º 18
0
        public Cabecalho GetCabecalho(int userId)
        {
            var       user             = db.UserProfiles.Find(userId);
            int       barragemId       = user.barragemId;
            var       qtddRodada       = 0;
            var       nomeTemporada    = "";
            var       idRodada         = 0;
            Rodada    rodada           = null;
            Cabecalho rankingCabecalho = new Cabecalho();

            try
            {
                idRodada = db.Rodada.Where(r => r.isAberta == false && r.isRodadaCarga == false && r.barragemId == barragemId).Max(r => r.Id);
                rodada   = db.Rodada.Find(idRodada);
            } catch (Exception e) { }
            var classes = db.Classe.Where(c => c.barragemId == barragemId && c.ativa).OrderBy(c => c.nivel).ToList <Classe>();

            if (rodada != null)
            {
                rankingCabecalho.rodada = "Rodada " + rodada.codigoSeq;
                if (rodada.temporadaId != null)
                {
                    qtddRodada = db.Rodada.Where(rd => rd.temporadaId == rodada.temporadaId && rd.Id <= rodada.Id &&
                                                 rd.barragemId == rodada.barragemId).Count();
                    nomeTemporada           = rodada.temporada.nome;
                    rankingCabecalho.rodada = "Rodada " + qtddRodada + "/" + rodada.temporada.qtddRodadas;
                }
                rankingCabecalho.dataRodada = rodada.dataFim;
            }
            rankingCabecalho.temporada    = nomeTemporada;
            rankingCabecalho.classes      = classes;
            rankingCabecalho.classeUserId = (int)user.classeId;
            return(rankingCabecalho);
        }
Ejemplo n.º 19
0
        public CartolaCargaResponse InsertRodada(List <Rodada> listaRodada)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var transaction = _cartolaDBContext.Database.BeginTransaction();
                var db = _cartolaDBContext.Rodada.ToList();

                foreach (var rodada in listaRodada)
                {
                    if (db.Any(x => x.RodadaId == rodada.RodadaId))
                    {
                        Rodada rodadaUpdate = db.First(x => x.RodadaId == rodada.RodadaId).UpdateRodada(rodada);
                        _cartolaDBContext.Update(rodadaUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(rodada);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Ejemplo n.º 20
0
    public void DidTapContinueButton()
    {
        int numberOfPlayers = 0;

        Jogo.jogadores.Clear();
        Jogo.jogadoresAtivos.Clear();

        for (int i = 0; i < characters.Length; i++)
        {
            if (characters[i].isOn)
            {
                numberOfPlayers++;
            }
            Jogador j = new Jogador();
            j.fotoID    = i;
            j.taJogando = characters[i].isOn;
            Jogo.jogadores.Add(j);
        }

        if (numberOfPlayers >= 3)
        {
            for (int i = 0; i < numberOfPlayers; i++)
            {
                Rodada r = new Rodada();
                Jogo.partida.rodadas.Add(r);
            }

            SceneManager.LoadScene("TelaSorteioCliente");
        }
        else
        {
            errorPopup.SetActive(true);
        }
    }
Ejemplo n.º 21
0
        public Rodada RetornaRodada()
        {
            String path = AppDomain.CurrentDomain.BaseDirectory.ToString();

            path += "\\Json\\rodada.json";
            Rodada rodada = JsonConvert.DeserializeObject <Rodada>(File.ReadAllText(path));

            return(rodada);
        }
Ejemplo n.º 22
0
        public void CadastrarRodada(Rodada rodada)
        {
            if (_rodadaRepositorio.RodadaExistente(rodada.Nome, rodada.Grupo.Id))
            {
                throw new BolaoTIException(string.Format(Messages.AlertMessage_Registro_Existente, Classes.Rodada_Class, Field.Rodada_Nome_Field, rodada.Nome));
            }

            _rodadaRepositorio.Insert(rodada);
        }
Ejemplo n.º 23
0
        public ActionResult Edit(int id = 0)
        {
            Rodada rodada = db.Rodada.Find(id);

            if (rodada == null)
            {
                return(HttpNotFound());
            }
            return(View(rodada));
        }
Ejemplo n.º 24
0
        //
        // GET: /Rodada/Details/5

        public ActionResult Details(int id = 0)
        {
            Rodada rodada = unitOfWork.RodadaRepository.GetByID(id);

            if (rodada == null)
            {
                return(HttpNotFound());
            }
            return(View(rodada));
        }
Ejemplo n.º 25
0
    // Use this for initialization
    void Awake()
    {
        int randomNumber = Random.Range(0, textosDinamicas.Length);

        Jogo.dificuldadeDica = DificuldadeDica(randomNumber);

        imageTexto.sprite    = textosDinamicas[randomNumber];
        imageDinamica.sprite = iconesDinamicas[randomNumber];

        ((Rodada)Jogo.partida.rodadas[Jogo.rodadaAtual]).dica = Rodada.DicaFromInt(randomNumber);
    }
Ejemplo n.º 26
0
 public ActionResult Edit(Rodada rodada)
 {
     if (ModelState.IsValid)
     {
         rodada.dataFim         = new DateTime(rodada.dataFim.Year, rodada.dataFim.Month, rodada.dataFim.Day, 23, 59, 59);
         db.Entry(rodada).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(rodada));
 }
Ejemplo n.º 27
0
 public ActionResult Edit(Rodada rodada)
 {
     if (ModelState.IsValid)
     {
         unitOfWork.RodadaRepository.Update(rodada);
         unitOfWork.Save();
         return(RedirectToAction("Index"));
     }
     PopulateDropDownList(rodada.RodadaGrupo.Id);
     return(View(rodada));
 }
Ejemplo n.º 28
0
        public virtual void CadastrarRodada(Rodada Rodada)
        {
            using (var unidadeDeTrabalho = _fabricaDeUnidadeDeTrabalho.Criar())
            {
                unidadeDeTrabalho.Iniciar();

                _RodadaServicoCadastro.CadastrarRodada(Rodada);

                unidadeDeTrabalho.Completar();
            }
        }
Ejemplo n.º 29
0
        public virtual void Remover(Rodada Rodada)
        {
            using (var unidadeDeTrabalho = _fabricaDeUnidadeDeTrabalho.Criar())
            {
                unidadeDeTrabalho.Iniciar();

                _RodadaRepositorio.Delete(Rodada);

                unidadeDeTrabalho.Completar();
            }
        }
Ejemplo n.º 30
0
        public void Atualizar(Rodada Rodada)
        {
            using (var unidadeDeTrabalho = _fabricaDeUnidadeDeTrabalho.Criar())
            {
                unidadeDeTrabalho.Iniciar();

                _RodadaRepositorio.Update(Rodada);

                unidadeDeTrabalho.Completar();
            }
        }
Ejemplo n.º 31
0
        //
        // GET: /Rodada/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Rodada rodada = unitOfWork.RodadaRepository.GetByID(id);

            if (rodada == null)
            {
                return(HttpNotFound());
            }
            PopulateDropDownList(rodada.RodadaGrupo.Id);
            return(View(rodada));
        }
Ejemplo n.º 32
0
    public void DidTapProximaRodada()
    {
        for(int i = 0; i < Jogo.jogadoresAtivos.Count; i++) {

            Jogador j = ((Jogador)Jogo.jogadoresAtivos[i]);
            j.pontuacaoRodada = 0;
            j.jaPalpitou = false;
            j.eCliente = false;
            j.acertou = false;
        }
        Rodada novaRodada = new Rodada();
        Jogo.partida.rodadas.Add(novaRodada);
        Jogo.rodadaAtual++;
        Jogo.numeroPalpite = 0;
        SceneManager.LoadScene("TelaSorteioCliente");
    }