private void BuscarClientePorNome()
        {
            if (!string.IsNullOrWhiteSpace(cmbCliente.Nome))
            {
                Contrato.EntradaCliente entradaCliente = new Contrato.EntradaCliente();
                entradaCliente.Chave = Comum.Util.Chave;
                entradaCliente.PreencherListaSelecao = true;
                entradaCliente.UsuarioLogado = Comum.Util.UsuarioLogado.Login;
                entradaCliente.EmpresaLogada = Comum.Util.UsuarioLogado.Empresa;
                entradaCliente.Cliente = new Contrato.Cliente();
                entradaCliente.Cliente.Ativo = true;
                entradaCliente.Cliente.Nome = cmbCliente.Nome;

                Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                Contrato.RetornoCliente retCliente = servBrasilDidaticos.ClienteListar(entradaCliente);
                servBrasilDidaticos.Close();

                if (retCliente.Clientes != null)
                {
                    if (retCliente.Clientes.Count == 1)
                    {
                        cmbCliente.Id = retCliente.Clientes.First().Id;
                        cmbCliente.Codigo = retCliente.Clientes.First().Codigo;
                        cmbCliente.Nome = retCliente.Clientes.First().Nome;
                        cmbResponsavel.cmbComboBox.Focus();
                    }
                }
                else
                {
                    if (_orcamento != null && _orcamento.Cliente == null)
                        cmbCliente.Limpar();
                }
            }
        }
        private void PreencherMatriz()
        {
            Contrato.EntradaCliente entradaCliente = new Contrato.EntradaCliente();
            entradaCliente.Chave = Comum.Util.Chave;
            entradaCliente.PreencherListaSelecao = true;
            entradaCliente.UsuarioLogado = Comum.Util.UsuarioLogado.Login;
            entradaCliente.EmpresaLogada = Comum.Util.UsuarioLogado.Empresa;
            entradaCliente.Cliente = new Contrato.Cliente();
            if (_cliente == null) entradaCliente.Cliente.Ativo = true;

            Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
            Contrato.RetornoCliente retCliente = servBrasilDidaticos.ClienteListar(entradaCliente);
            servBrasilDidaticos.Close();

            if (retCliente.Clientes != null)
            {
                // Guarda os clientes recuperados
                _lstClientes = retCliente.Clientes;

                foreach (Contrato.Cliente cliente in retCliente.Clientes.OrderBy(c => c.Nome))
                {
                    cmbClienteMatriz.ComboBox.Items.Add(new ComboBoxItem()
                    {
                        Uid = cliente.Id.ToString(),
                        Content = cliente.Nome,
                        Tag = cliente,
                        IsSelected = (_cliente != null && _cliente.ClienteMatriz != null ? cliente.Id == _cliente.ClienteMatriz.Id : false)
                    });
                }
            }
        }
        private bool SalvarCliente()
        {
            bool salvou = true;

            StringBuilder strValidacao = ValidarCampos();

            // Verifica se as informações do usuário são válidas
            if (strValidacao.Length > 0)
            {
                MessageBox.Show(strValidacao.ToString(), "Cliente", MessageBoxButton.OK, MessageBoxImage.Information);
                salvou = false;
            }
            else
            {
                Contrato.EntradaCliente entradaCliente = new Contrato.EntradaCliente();
                entradaCliente.Chave = Comum.Util.Chave;
                entradaCliente.UsuarioLogado = Comum.Util.UsuarioLogado.Login;
                entradaCliente.EmpresaLogada = Comum.Util.UsuarioLogado.Empresa;
                if (_cliente == null) entradaCliente.Novo = true;
                entradaCliente.Cliente = new Contrato.Cliente();

                PreencherCliente(entradaCliente.Cliente);

                Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                Contrato.RetornoCliente retCliente = servBrasilDidaticos.ClienteSalvar(entradaCliente);
                servBrasilDidaticos.Close();

                if (retCliente.Codigo != Contrato.Constantes.COD_RETORNO_SUCESSO)
                {
                    MessageBox.Show(retCliente.Mensagem, "Cliente", MessageBoxButton.OK, MessageBoxImage.Error);
                    salvou = false;

                    if (retCliente.Codigo == Contrato.Constantes.COD_REGISTRO_DUPLICADO)
                    {
                        gdClienteDados.ColumnDefinitions[1].Width = new GridLength(TAM_COLUNA_CODIGO);
                    }
                }
            }

            return salvou;
        }
        private void ListarClientes(bool mostrarMsgVazio)
        {
            Contrato.EntradaCliente entradaCliente = new Contrato.EntradaCliente();
            entradaCliente.Chave = Comum.Util.Chave;
            entradaCliente.UsuarioLogado = Comum.Util.UsuarioLogado.Login;
            entradaCliente.EmpresaLogada = Comum.Util.UsuarioLogado.Empresa;
            entradaCliente.Cliente = new Contrato.Cliente();

            PreencherFiltro(entradaCliente.Cliente);

            Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
            Contrato.RetornoCliente retCliente = servBrasilDidaticos.ClienteListar(entradaCliente);
            servBrasilDidaticos.Close();

            if (retCliente.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
                dgClientes.ItemsSource = (from c in retCliente.Clientes select new Objeto.Cliente
                {
                    Selecionado = false,
                    Id = c.Id,
                    Codigo = c.Codigo,
                    Nome = c.Nome,
                    CaixaEscolar = c.CaixaEscolar,
                    Tipo = c.Tipo,
                    Cpf_Cnpj = c.Cpf_Cnpj,
                    Ativo = c.Ativo,
                    Email = c.Email,
                    Telefone = c.Telefone,
                    Celular = c.Celular,
                    InscricaoEstadual = c.InscricaoEstadual,
                    Endereco = c.Endereco,
                    Numero = c.Numero,
                    Complemento = c.Complemento,
                    Cep = c.Cep,
                    Bairro = c.Bairro,
                    Cidade = c.Cidade,
                    Uf = c.Uf,
                    ClienteMatriz = c.ClienteMatriz
                }).OrderBy(o => o.Nome);

            if (mostrarMsgVazio && retCliente.Codigo == Contrato.Constantes.COD_RETORNO_VAZIO)
                MessageBox.Show(retCliente.Mensagem, "Cliente", MessageBoxButton.OK, MessageBoxImage.Information);
        }