public async Task <IActionResult> FiltrarMatches(FiltroMatchViewModel model) { await CarregarDropDown(null, model.Categoria, null); // Validações if (!(model.DataInicial == null && model.DataFinal == null)) { if (model.DataInicial == null || model.DataFinal == null) { model.Criticas = "Para filtrar por período é necessário preencher os dois campos"; } else { if (model.DataInicial.Value > model.DataFinal.Value) { model.Criticas = "A data inicial não pode ser superior a data final"; } } } if (string.IsNullOrWhiteSpace(model.Criticas)) { try { await CarregarDoacoesNecessidades(model); } catch (SessaoExpiradaException) { return(RedirectToAction("Logout", "Account")); } } return(View("Matches", model)); }
public async Task <IActionResult> Matches(FiltroMatchViewModel model) { try { await CarregarDropDown(null, null, null); return(View(new FiltroMatchViewModel())); } catch (SessaoExpiradaException) { return(RedirectToAction("Logout", "Account")); } }
/// <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; }