public async Task <IActionResult> Index([FromQuery] JogoFilterViewModel filter)
        {
            ViewData["CurrentFilter"] = filter;

            var model = await _jogoService.ListJogoAsync(filter);

            return(View(model));
        }
Beispiel #2
0
        public async Task <IList <JogoIndexViewModel> > ListJogoAsync([FromQuery] JogoFilterViewModel filter)
        {
            var listAmigo = new List <JogoIndexViewModel>();

            RestClient  client  = new RestClient(_myGamesAPIConfig.URL);
            RestRequest request = new RestRequest("api/jogo", Method.GET);

            System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
            //System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;

            IRestResponse <List <JogoResult> > response = await client.ExecuteAsync <List <JogoResult> >(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var result = response.Data;

                if (!string.IsNullOrEmpty(filter.Nome))
                {
                    result = result.Where(x => x.Nome.ToUpper().Contains(filter.Nome.ToUpper())).ToList();
                }

                if (filter.TipoJogoId.HasValue)
                {
                    result = result.Where(x => x.TipoJogoId == filter.TipoJogoId).ToList();
                }

                if (filter.Emprestado.HasValue)
                {
                    result = result.Where(x => x.Emprestado == filter.Emprestado).ToList();
                }

                listAmigo = result.Select(x =>
                                          new JogoIndexViewModel
                {
                    Id           = x.Id,
                    Nome         = x.Nome,
                    TipoJogo     = x.Tipo.Descricao,
                    Emprestado   = GamesConstants.GetStatusDevolucao(x.Emprestado),
                    Amigo        = x.Historico.SingleOrDefault(y => y.Devolvido == false)?.Amigo.Nome,
                    DtEmprestimo = x.Historico.SingleOrDefault(y => y.Devolvido == false)?.DtEmprestimo.ToShortDateString(),
                }).ToList();
            }

            return(listAmigo);
        }