/// <summary> /// Executar a pesquisa com fase nos filtros /// </summary> /// <param name="filtro">Objeto modelo de filtragem</param> protected async Task ExecutaPesquisa(FiltroItensViewModel filtro) { Guid?tipoItemId = null; Guid?categoriaId = null; if (!string.IsNullOrWhiteSpace(filtro.TipoItem) && !filtro.TipoItem.Equals("-")) { tipoItemId = Guid.Parse(filtro.TipoItem); } if (!string.IsNullOrWhiteSpace(filtro.Categoria) && !filtro.Categoria.Equals("-")) { categoriaId = Guid.Parse(filtro.Categoria); } FiltroItemRequest request = new FiltroItemRequest() { DataInicial = filtro.DataInicial, DataFinal = filtro.DataFinal, TipoItemId = tipoItemId, CategoriaId = categoriaId }; _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ObterToken()); HttpResponseMessage resultApi = await _client.PostAsJsonAsync("/api/v1/Item/pesquisar", request); if (resultApi.StatusCode.Equals(HttpStatusCode.Unauthorized)) { throw new SessaoExpiradaException(); } string conteudo = await resultApi.Content.ReadAsStringAsync(); filtro.Itens = JsonConvert.DeserializeObject <List <ItemDetalheViewModel> >(conteudo); }
/// <summary> /// Carregar as doações e necessidades /// </summary> private async Task CarregarDoacoesNecessidades(FiltroMatchViewModel filtro) { Guid?categoriaId = null; if (!string.IsNullOrWhiteSpace(filtro.Categoria) && !filtro.Categoria.Equals("-")) { categoriaId = Guid.Parse(filtro.Categoria); } FiltroItemRequest request = new FiltroItemRequest() { DataInicial = filtro.DataInicial, DataFinal = filtro.DataFinal, TipoItemId = null, CategoriaId = categoriaId }; // Carregando Doações _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ObterToken()); HttpResponseMessage resultApi = await _client.PostAsJsonAsync("/api/v1/Item/livres", request); if (resultApi.StatusCode.Equals(HttpStatusCode.Unauthorized)) { throw new SessaoExpiradaException(); } string conteudo = await resultApi.Content.ReadAsStringAsync(); List <ItemResponse> itens = JsonConvert.DeserializeObject <List <ItemResponse> >(conteudo); List <ItemDetalheMatchViewModel> doacoes = new List <ItemDetalheMatchViewModel>(); List <ItemDetalheMatchViewModel> necessidades = new List <ItemDetalheMatchViewModel>(); foreach (var item in itens) { ItemDetalheMatchViewModel tmpItem = new ItemDetalheMatchViewModel() { Id = item.Id, DataInclusao = item.DataInclusao, Nome = item.Usuario.Nome, Titulo = item.Titulo, Descricao = item.Descricao, Categoria = item.Categoria.Descricao, Peso = item.Categoria.Pontuacao, GerenciadaRh = item.Categoria.GerenciadaRh, Telefone = item.Usuario.UsuarioDados.TelefoneFixo, Celular = item.Usuario.UsuarioDados.TelefoneCelular, Email = item.Usuario.UsuarioDados.Email }; if (item.TipoItem.Descricao.ToLower().Equals("necessidade")) { necessidades.Add(tmpItem); } else { doacoes.Add(tmpItem); } } filtro.ItensDoacao = doacoes; filtro.ItensNecessidade = necessidades; }