public ActionResult Index() { var filtro = new ContatoFiltro(); ViewData["FiltroModel"] = filtro; return(View(_contatoRespository.FindByFiltro(filtro))); }
public IActionResult Index(ContatoFiltro contato) { ViewBag.TipoContato = _dbservice.ListarTipoContato(); ViewBag.Contato = _dbservice.ListarContato(null, contato.TipoContato, contato.busca); return(View()); }
public List <Contato> FindByFiltro(ContatoFiltro filtro) { string sql = @" SELECT C.* FROM Contato C INNER JOIN Pessoa P ON C.IdPessoa = p.IdPessoa WHERE (@Email = '' OR (InfoContato = @Email AND IdTipoContato = 1)) AND (@Telefone = '' OR (InfoContato = @Telefone AND IdTipoContato = 1)) AND (@NomPessoa = '' OR P.Nome = @NomPessoa) ORDER BY P.Nome, C.NomeContato "; if (string.IsNullOrEmpty(filtro.Email)) { filtro.Email = ""; } if (string.IsNullOrEmpty(filtro.Telefone)) { filtro.Telefone = ""; } if (string.IsNullOrEmpty(filtro.NomePessoa)) { filtro.NomePessoa = ""; } using (var conn = new SqlConnection(StringConnection)) { var cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@Email", filtro.Email); cmd.Parameters.AddWithValue("@Telefone", filtro.Telefone); cmd.Parameters.AddWithValue("@NomPessoa", filtro.NomePessoa); List <Contato> list = new List <Contato>(); Contato c = null; try { conn.Open(); using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { while (reader.Read()) { c = new Contato(); c.IdContato = (int)reader["IdContato"]; c.IdPessoa = (int)reader["IdPessoa"]; c.IdTipoContato = (int)reader["IdTipoContato"]; c.NomeContato = reader["NomeContato"].ToString(); c.InfoContato = reader["InfoContato"].ToString(); c.Pessoa = _pessoaRepository.GetById(c.IdPessoa); c.TipoContato = _tipoContatoRepository.GetById(c.IdTipoContato); list.Add(c); } } } catch (Exception e) { throw e; } return(list); } }