Esempio n. 1
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);
        }
Esempio n. 2
0
        protected Filme Desempatar(Filme f1, Filme f2)
        {
            var listaFilmes = new List <Filme>
            {
                f1,
                f2
            };

            return(OrdernaLista.PorOrdemAlfabetica(listaFilmes).First());
        }
        private IList <Filme> OrdenarPrimeiroSegundoLugar(IList <Filme> filmes)
        {
            int indiceCrescente = 0;

            if (HouveEmpate(filmes[indiceCrescente], filmes[indiceCrescente + 1]))
            {
                return(OrdernaLista.PorOrdemAlfabetica(filmes));
            }

            else
            {
                return(OrdernaLista.PorMaiorNota(filmes));
            }
        }
Esempio n. 4
0
        public void PorOrdemAlfabetica()
        {
            var listaFilmesOrdenada = new List <Filme>
            {
                new Filme("tt5463162", "Deadpool 2", 2018, 8.1),
                new Filme("tt3778644", "Han Solo: Uma História Star Wars", 2018, 7.2),
                new Filme("tt7784604", "Hereditário", 2018, 7.8),
                new Filme("tt4881806", "Jurassic World: Reino Ameaçado", 2018, 6.7),
                new Filme("tt5164214", "Oito Mulheres e um Segredo", 2018, 6.3),
                new Filme("tt3606756", "Os Incríveis 2", 2018, 8.5),
                new Filme("tt3501632", "Thor: Ragnarok", 2017, 7.9),
                new Filme("tt4154756", "Vingadores: Guerra Infinita", 2018, 8.8)
            };

            var listaFilmesDesordenada = new List <Filme>
            {
                new Filme("tt3606756", "Os Incríveis 2", 2018, 8.5),
                new Filme("tt4881806", "Jurassic World: Reino Ameaçado", 2018, 6.7),
                new Filme("tt5164214", "Oito Mulheres e um Segredo", 2018, 6.3),
                new Filme("tt7784604", "Hereditário", 2018, 7.8),
                new Filme("tt4154756", "Vingadores: Guerra Infinita", 2018, 8.8),
                new Filme("tt5463162", "Deadpool 2", 2018, 8.1),
                new Filme("tt3778644", "Han Solo: Uma História Star Wars", 2018, 7.2),
                new Filme("tt3501632", "Thor: Ragnarok", 2017, 7.9)
            };

            var listaAposOrdenacao = OrdernaLista.PorOrdemAlfabetica(listaFilmesDesordenada);

            for (int i = 0; i < listaAposOrdenacao.Count; i++)
            {
                Assert.Equal(listaAposOrdenacao[i].Id, listaFilmesOrdenada[i].Id);
                Assert.Equal(listaAposOrdenacao[i].Titulo, listaFilmesOrdenada[i].Titulo);
                Assert.Equal(listaAposOrdenacao[i].Ano, listaFilmesOrdenada[i].Ano);
                Assert.Equal(listaAposOrdenacao[i].Nota, listaFilmesOrdenada[i].Nota);
            }
        }