Example #1
0
        public IActionResult Roll(EstudanteRollViewModel estudanteRollViewModel)
        {
            var viewModel = _estudanteAppService.ObterEstudante(User, estudanteRollViewModel);

            return(viewModel == null?View("EndOfRoll") : View(viewModel));
        }
Example #2
0
        public EstudanteRollViewModel ObterEstudante(ClaimsPrincipal user, EstudanteRollViewModel previousViewModel = null)
        {
            var idUsuario = _userManager.GetUserId(user);
            var estudante = _estudanteRepository.ObterPorUsuario(idUsuario);

            IEnumerable <Estudante> listaEstudantes;

            switch (estudante.OrientacaoSexual)
            {
            case OrientacaoSexual.Hetero:
                listaEstudantes = _estudanteRepository.ListarPorGenero(estudante.Genero == Genero.Masculino
                                                        ? Genero.Feminino
                                                        : Genero.Masculino)
                                  .Where(x => x.OrientacaoSexual == OrientacaoSexual.Bi ||
                                         x.OrientacaoSexual == OrientacaoSexual.Hetero);

                break;

            case OrientacaoSexual.H**o:
                listaEstudantes = _estudanteRepository.ListarPorGenero(estudante.Genero)
                                  .Where(x => x.OrientacaoSexual == OrientacaoSexual.H**o);

                break;

            case OrientacaoSexual.Bi:
                listaEstudantes = _estudanteRepository.GetAll();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (previousViewModel != null)
            {
                listaEstudantes = listaEstudantes.Where(x => !previousViewModel.UsuariosDescartados.Contains(x.UsuarioId));
            }

            var matches = _curtidaRepository.ObterMatchesPorUsuario(idUsuario);

            if (matches != null)
            {
            }

            if (!listaEstudantes.Any())
            {
                return(null);
            }

            var random = new Random();
            var index  = random.Next(0, listaEstudantes.Count());
            var estudanteSelecionado = listaEstudantes.ElementAt(index);

            var estudanteRollViewModel = new EstudanteRollViewModel
            {
                CaminhoFoto         = estudanteSelecionado.CaminhoFoto,
                Nome                = estudanteSelecionado.Nome,
                Idade               = DateTime.Now.Year - estudanteSelecionado.DataNascimento.Year,
                Descricao           = estudanteSelecionado.Descricao,
                OrientacaoPolitica  = estudanteSelecionado.OrientacaoPolitica?.Nome,
                TipoDeConsumoBebida = estudanteSelecionado.TipoDeConsumoBebida?.Nome,
                TiposDeAtracao      = estudanteSelecionado.TiposDeAtracao
                                      .Select(x => x.TipoDeAtracao.Nome).ToArray(),
                AreaConhecimento = estudanteSelecionado.Curso.UnidadeUniversitaria.AreaConhecimento.Nome,
                AnoIngresso      = estudanteSelecionado.AnoIngresso,
                UsuarioId        = estudanteSelecionado.UsuarioId
            };

            if (previousViewModel != null)
            {
                estudanteRollViewModel.UsuariosDescartados.AddRange(previousViewModel.UsuariosDescartados);
            }

            estudanteRollViewModel.UsuariosDescartados.Add(estudanteRollViewModel.UsuarioId);

            return(estudanteRollViewModel);
        }