コード例 #1
0
        public IActionResult GerarCampeonato(string json)
        {
            try
            {
                List <Filme> filmes = JsonConvert.DeserializeObject <List <Filme> >(json);

                List <Disputa> disputas = MontarDisputas(filmes);

                Disputa final = CalcularFinal(disputas);

                ResultadoCampeonato resultado = CalcularResultado(final);

                var result = new
                {
                    Campeao     = resultado.Campeao,
                    Vicecampeao = resultado.Vicecampeao
                };

                return(Ok(result));
            }
            catch (Exception e)
            {
                var result = new
                {
                    Campeao     = new Filme(),
                    Vicecampeao = new Filme()
                };

                return(Ok(result));
            }
        }
コード例 #2
0
        private ResultadoCampeonato CalcularResultado(Disputa disputa)
        {
            ResultadoCampeonato resultado = new ResultadoCampeonato();

            if (disputa.FilmeA.Nota > disputa.FilmeB.Nota)
            {
                resultado.Campeao     = disputa.FilmeA;
                resultado.Vicecampeao = disputa.FilmeB;
            }
            else if (disputa.FilmeA.Nota < disputa.FilmeB.Nota)
            {
                resultado.Campeao     = disputa.FilmeB;
                resultado.Vicecampeao = disputa.FilmeA;
            }
            else
            {
                if (string.Compare(disputa.FilmeA.Titulo, disputa.FilmeB.Titulo) < 0)
                {
                    resultado.Campeao     = disputa.FilmeA;
                    resultado.Vicecampeao = disputa.FilmeB;
                }
                else
                {
                    resultado.Campeao     = disputa.FilmeB;
                    resultado.Vicecampeao = disputa.FilmeA;
                }
            }

            return(resultado);
        }
コード例 #3
0
        public ResultadoCampeonato Iniciar()
        {
            Filme[] paraSaberOSegundoLugar = new Filme[2];

            if (this.filmes.Length == 0)
            {
                return(null);
            }
            do
            {
                this.filmes = fase.comecar();
                if (this.filmes.Length == 2)
                {
                    paraSaberOSegundoLugar = this.filmes;
                }
            } while (fase.proximaFase(this.filmes));

            ResultadoCampeonato resultado = new ResultadoCampeonato();

            Filme vencedor     = fase.getGanhador();
            Filme segundoFilme = null;

            if (vencedor == null)
            {
                return(null);
            }

            if (paraSaberOSegundoLugar[0].Equals(vencedor))
            {
                segundoFilme = paraSaberOSegundoLugar[1];
            }
            else
            {
                segundoFilme = paraSaberOSegundoLugar[0];
            }

            if (vencedor == null)
            {
                return(null);
            }

            resultado.primeiroLugar = vencedor.Titulo;
            resultado.segundoLugar  = segundoFilme.Titulo;



            return(resultado);
        }