private void validarCliente(string cpf)
        {
            //[validação de digito verificador do cpf]
            if (!Util.validarCPF(cpf))
            {
                PortabilidadeFault falha = new PortabilidadeFault();
                falha.CodigoErro = "01";
                falha.DataErro = DateTime.Now;
                falha.Motivo = "CPF inválido.";
                throw new FaultException<PortabilidadeFault>(falha);
            }

            //[validação se o cliente existe na base de dados]
            if (cpf.Equals("88888888888"))
            {
                PortabilidadeFault falha = new PortabilidadeFault();
                falha.CodigoErro = "02";
                falha.DataErro = DateTime.Now;
                falha.Motivo = "Cliente inexistente na base de dados.";
                throw new FaultException<PortabilidadeFault>(falha);
            }

            //[validação se possui divida em aberto]
            if (cpf.Equals("22785426649"))
            {
                PortabilidadeFault falha = new PortabilidadeFault();
                falha.CodigoErro = "03";
                falha.DataErro = DateTime.Now;
                falha.Motivo = "Cliente possui pendências com o financeiro.";
                throw new FaultException<PortabilidadeFault>(falha);
            }
        }
        public Portability SolicitarBilhetePortabilidade(Custumer custumer, Acount acount)
        {
            //[chamando o webservice do módulo Anatel]
            Anatel.IAnatel client;
            TcpChannel channel = new TcpChannel();
            ChannelServices.RegisterChannel(channel);
            client = (Anatel.IAnatel)Activator.GetObject(typeof(Anatel.IAnatel), "tcp://localhost:8091/SolicitarPortabilidadeNumerica");

            //[obtendo resposta da Anatel para a portabilidade]
            RetornoPortabilidade retorno = client.SolicitarPortabilidadeNumerica(custumer);

            //[verificar as validacoes retornadas pela anatel]
            if (!retorno.CodigoErro.Equals("0"))
            {
                PortabilidadeFault falha = new PortabilidadeFault();
                falha.CodigoErro = retorno.CodigoErro;
                falha.DataErro = retorno.DataErro;
                falha.Motivo = retorno.Motivo;
                throw new FaultException<PortabilidadeFault>(falha);
            }

            //[obtendo o numero do bilhete da Anatel]
            Portability portabilidade = new Portability();
            portabilidade.Bilhete = retorno.Bilhete;

            return portabilidade;
        }
 private void validarConta(Custumer customer)
 {
     //validacao se o cliente possui conta
     if (customer.Cpf.Equals("65290704191"))
     {
         PortabilidadeFault falha = new PortabilidadeFault();
         falha.CodigoErro = "04";
         falha.DataErro = DateTime.Now;
         falha.Motivo = "Cliente não possui conta.";
         throw new FaultException<PortabilidadeFault>(falha);
     }
 }