private void Search()
        {
            string numero   = txtNumero.Text;
            int    clientId = 0;
            var    cliente  = (ddlCliente.SelectedItem as Entidade);

            if (cliente != null)
            {
                clientId = cliente.Id;
            }

            int tipoPagamento = 0;

            int.TryParse((ddlTipoPagamento.SelectedItem as dynamic).Value, out tipoPagamento);

            int status = 0;

            int.TryParse((ddlStatus.SelectedItem as dynamic).Value, out status);

            DateTime dtPedidoInicio = DateTime.MinValue;

            if (!string.IsNullOrWhiteSpace(txtDataPedidoInicio.Text.Replace("/", "").Trim()))
            {
                DateTime.TryParse(txtDataPedidoInicio.Text, out dtPedidoInicio);

                if (!string.IsNullOrWhiteSpace(txtHoraPedidoInicio.Text.Replace(":", "").Trim()))
                {
                    DateTime horaPedido;
                    DateTime.TryParse(txtHoraPedidoInicio.Text, out horaPedido);

                    dtPedidoInicio.AddMinutes(horaPedido.Minute).AddSeconds(horaPedido.Second);
                }
            }

            DateTime dtPedidoFim = DateTime.MinValue;

            if (!string.IsNullOrWhiteSpace(txtDataPedidoFim.Text.Replace("/", "").Trim()))
            {
                DateTime.TryParse(txtDataPedidoFim.Text, out dtPedidoFim);

                if (!string.IsNullOrWhiteSpace(txtHoraPedidoFim.Text.Replace(":", "").Trim()))
                {
                    DateTime horaPedidoFim;
                    DateTime.TryParse(txtHoraPedidoFim.Text, out horaPedidoFim);

                    dtPedidoFim.AddMinutes(horaPedidoFim.Minute).AddSeconds(horaPedidoFim.Second);
                }
            }

            var lista = PedidoRepository.SearchPedido(numero, clientId, status, dtPedidoInicio, dtPedidoFim, tipoPagamento);

            PedidoRepository.PreencherCliente(lista);

            listagemImpressao = lista.ToList();
            for (int i = 0; i < lista.Count; i++)
            {
                lista[i].ItensPedido = PedidoRepository.GetListaItemPedido(lista[i].Id).ToList();
            }

            if (lista != null && lista.Count > 0)
            {
                btnPrint.Visible = true;
            }

            var binding = new BindingList <Pedido>(lista);

            grdPedido.DataSource = binding;
            grdPedido.Refresh();
        }