Ejemplo n.º 1
0
        public string ObterUrlCrm2013(string guidCrm40, bool tipoConta)
        {
            if (tipoConta)
            {
                Domain.Model.Conta conta = new Domain.Servicos.ContaService(ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"), false).BuscarContaIntegracaoCrm4(guidCrm40);

                if (conta != null)
                {
                    string url = "https://crm2013.intelbras.com.br/main.aspx?etn=account&pagetype=entityrecord&id=%" + conta.ID.Value.ToString() + "%7D";
                    return(url);
                }
                return(String.Empty);
            }
            else
            {
                Domain.Model.Contato contato = new Domain.Servicos.ContatoService(ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"), false).BuscarPorIntegracaoCrm4(guidCrm40);

                if (contato != null)
                {
                    string url = "https://crm2013.intelbras.com.br/main.aspx?etn=contact&pagetype=entityrecord&id=%" + contato.ID.Value.ToString() + "%7D";
                    return(url);
                }
                return(String.Empty);
            }
        }
Ejemplo n.º 2
0
        public void ImportarContatos()
        {
            List <Domain.Model.Contato> lstContatos = new Domain.Servicos.ContatoService(this.OrganizationName, false).ListarTodosContatos();
            int contador = 0;

            foreach (var item in lstContatos)
            {
                try
                {
                    nomeContato = item.NomeCompleto;
                    guidContato = item.ID.Value.ToString();
                    string lstResposta = new Domain.Servicos.ContatoService(this.OrganizationName, false).IntegracaoBarramento(item);
                    nomeContato = String.Empty;
                    guidContato = String.Empty;
                    contador++;
                }
                catch (Exception ex)
                {
                    logEnvioContato.WriteLine("Contato : " + nomeConta + " / " + "Guid - " + " Erro: " + ex.Message);
                }
            }

            logEnvioContato.Close();
            logEnvioContato.Dispose();
        }
Ejemplo n.º 3
0
        public void TestUploadImagemContato()
        {
            var service = new Domain.Servicos.ContatoService(this.OrganizationName, this.IsOffline);
            // new Guid("8C69D160-7F68-E711-80CB-0050568DED44")
            var contato = service.BuscaContato(new Guid("6E92D000-8E49-E411-9424-00155D013D3A"));

            var photoBase64 = "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";

            contato.Imagem = Convert.FromBase64String(photoBase64);
            //contato.Imagem = File.ReadAllBytes(@"c:\temp\diego.jpg");

            service.Persistir(contato);
        }
Ejemplo n.º 4
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var Context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService        service        = serviceFactory.CreateOrganizationService(null);

            try
            {
                switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(Context.MessageName))
                {
                    #region Create

                case Domain.Enum.Plugin.MessageName.Create:

                    var e = (Entity)Context.InputParameters["Target"];
                    e.Attributes["itbc_integraintelbraspontua"] = false;

                    Domain.Model.Contato Contato = e.Parse <Domain.Model.Contato>(Context.OrganizationName, Context.IsExecutingOffline, service);
                    var ContatoServiceCreate     = new Domain.Servicos.ContatoService(Context.OrganizationName, Context.IsExecutingOffline, service);
                    //var ContatoService = new Domain.Servicos.ContatoService(Context.OrganizationName, Context.IsExecutingOffline, service).ValidarDadosContato(Contato);

                    //valida se o contato integra ou não no IntelbrasPontua
                    ValidaIntegraPontua(e, ContatoServiceCreate, Contato, ref Context, service);

                    if (Contato.CpfCnpj != null)
                    {
                        e.Attributes["new_cpf"]             = Contato.CpfCnpj.GetOnlyNumbers();
                        e.Attributes["new_cpf_sem_mascara"] = Contato.CpfCnpj.GetOnlyNumbers();
                        e.Attributes["itbc_cpfoucnpj"]      = Contato.CpfCnpj.InputMask();
                    }

                    break;

                    #endregion

                    #region Update

                case Domain.Enum.Plugin.MessageName.Update:

                    var entityTargetUpdate = (Entity)Context.InputParameters["Target"];
                    var ContatoService     = new Domain.Servicos.ContatoService(Context.OrganizationName, Context.IsExecutingOffline, service);
                    var contatoUpdate      = entityTargetUpdate.Parse <Domain.Model.Contato>(Context.OrganizationName, Context.IsExecutingOffline, service);

                    //valida se o contato integra ou não no IntelbrasPontua
                    ValidaIntegraPontua(entityTargetUpdate, ContatoService, contatoUpdate, ref Context, service);

                    if (contatoUpdate.CpfCnpj == null)
                    {
                        var contato = new Domain.Servicos.ContatoService(Context.OrganizationName, Context.IsExecutingOffline, service).BuscaContato(contatoUpdate.ID.Value);

                        entityTargetUpdate.Attributes["new_cpf"]             = contato.CpfCnpj.GetOnlyNumbers();
                        entityTargetUpdate.Attributes["new_cpf_sem_mascara"] = contato.CpfCnpj.GetOnlyNumbers();
                        entityTargetUpdate.Attributes["itbc_cpfoucnpj"]      = contato.CpfCnpj.InputMask();
                    }
                    else
                    {
                        entityTargetUpdate.Attributes["new_cpf"]             = contatoUpdate.CpfCnpj.GetOnlyNumbers();
                        entityTargetUpdate.Attributes["new_cpf_sem_mascara"] = contatoUpdate.CpfCnpj.GetOnlyNumbers();
                        entityTargetUpdate.Attributes["itbc_cpfoucnpj"]      = contatoUpdate.CpfCnpj.InputMask();
                    }
                    if ((contatoUpdate.Imagem != null) && (!contatoUpdate.IntegrarNoPlugin))
                    {
                        string xmlResposta = ContatoService.IntegracaoFotoBarramento(contatoUpdate);
                    }
                    break;

                    #endregion
                }
            }
            catch (Exception ex)
            {
                string mensagem = SDKore.Helper.Error.Handler(ex);
                throw new InvalidPluginExecutionException(mensagem);
            }
        }
Ejemplo n.º 5
0
        private Intelbras.Message.Helper.MSG0300 DefinirPropriedades(Ocorrencia crm)
        {
            string strNomeProdutos = string.Empty;

            Intelbras.Message.Helper.MSG0300 xml = new Pollux.MSG0300(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Numero, 40));

            if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Atendimento_Avulso)
            {
                xml.TipoAtendimento = "FA";
            }
            else
            if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Mau_Atendimento ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Procon ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Atraso_no_Conserto ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.ReclamacaoImprocedente ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamacao_Falha_No_Processo ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamacao_Mau_Funcionamento ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Nau_Funcionamento_Com_Solucao)
            {
                xml.TipoAtendimento = "RC";
            }
            else
            if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.AnaliseDeDefeito)
            {
                xml.TipoAtendimento = "AD";
            }

            xml.CodigoOcorrencia = crm.ID.Value.ToString();

            if (!string.IsNullOrEmpty(crm.Numero))
            {
                xml.NumeroOcorrencia = crm.Numero;
            }
            if (crm.RazaoStatus.HasValue)
            {
                xml.StatusOcorrencia = crm.RazaoStatus;
            }
            if (crm.PrioridadeValue.HasValue)
            {
                xml.Prioridade = crm.PrioridadeValue;
            }
            if (crm.TipoDeOcorrencia.HasValue)
            {
                xml.TipoOcorrencia          = crm.TipoDeOcorrencia;
                xml.DescricaoTipoOcorrencia = DescricaoTipoOcorrencia(crm.TipoDeOcorrencia.Value);
            }
            if (crm.Assunto != null)
            {
                xml.DefeitoAlegado = crm.Assunto.Nome;
            }
            if (!string.IsNullOrEmpty(xml.AtividadeExecutada))
            {
                crm.AtividadeExecutada = xml.AtividadeExecutada;
            }
            if (crm.DataOrigem.HasValue)
            {
                xml.DataHoraAbertura = crm.DataOrigem.Value.ToLocalTime();
            }

            Usuario proprietario = new Domain.Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("incident", "incidentid", crm.ID.Value);

            if (proprietario != null)
            {
                xml.NomeProprietario = proprietario.NomeCompleto;
            }

            if (!string.IsNullOrEmpty(crm.ProdutosDoCliente))
            {
                xml.NumeroSerieProduto = crm.ProdutosDoCliente;
            }

            if (crm.Produto != null)
            {
                Product objProduto = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.Produto.Id);
                if (objProduto != null)
                {
                    xml.CodigoProduto = objProduto.Codigo;
                    strNomeProdutos   = objProduto.Nome;
                }
            }

            #region Montagem do texto padrão do campo observação
            xml.Observacao = crm.Nome + "\n" +
                             "DEFEITO ALEGADO: " + (crm.Assunto.Nome != null ? crm.Assunto.Nome : "--");
            //"PRODUTO: " + (xml.CodigoProduto != null ? xml.CodigoProduto + " - " + strNomeProdutos : "--") + "\n" +
            //"NÚMERO DE SÉRIE: " + (xml.NumeroSerieProduto != null ? xml.NumeroSerieProduto : "--") + "\n" +
            //"DATA FABRICAÇÃO: " + (crm.DataFabricacaoProduto != null ? crm.DataFabricacaoProduto.Value.ToLocalTime().ToString("dd/MM/yyyy") : "--") + "\n" +
            //"DATA VENDA: " + (crm.DataCompraIntelbras != null ? crm.DataCompraIntelbras.Value.ToLocalTime().ToString("dd/MM/yyyy") : "--") + "\n" +
            //"PEDIDO VENDA: " + (crm.NumeroPedidoVenda != null ? crm.NumeroPedidoVenda : "-- ") + "     NF VENDA: " + (crm.NumeroNotaFiscal != null ? crm.NumeroNotaFiscal : "--") + "\n\n";
            #endregion

            //if (!string.IsNullOrEmpty(crm.Anexo))
            //{
            //    xml.Observacao += crm.Anexo;
            //}

            xml.NomeUsuario = crm.CriadoPor.Name;

            xml.CNPJAutorizada = crm.Autorizada != null?crm.Autorizada.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim() : null;

            xml.NomeAutorizada = crm.Autorizada != null?crm.Autorizada.Nome.Trim() : null;

            #region Dados do Cliente da Ocorrência
            Model.Contato                     contato           = new Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(crm.ClienteId.Id);
            Model.Conta                       conta             = new Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(crm.ClienteId.Id);
            Pollux.Entities.Endereco          enderecoContato   = new Pollux.Entities.Endereco();
            Pollux.Entities.ClienteOcorrencia clienteOcorrencia = new Pollux.Entities.ClienteOcorrencia();

            clienteOcorrencia.CodigoContato = contato != null?contato.Id.ToString() : conta.Id.ToString();

            if (conta != null)
            {
                clienteOcorrencia.CodigoCliente = Convert.ToInt32(conta.CodigoMatriz);

                if (!string.IsNullOrEmpty(conta.CpfCnpj))
                {
                    string cnpjCpfObj = conta.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();

                    if (!String.IsNullOrEmpty(cnpjCpfObj))
                    {
                        if (cnpjCpfObj.Length <= 11)
                        {
                            clienteOcorrencia.CPF = cnpjCpfObj;
                        }
                        else
                        {
                            clienteOcorrencia.CNPJ = cnpjCpfObj;
                        }
                    }
                }

                if (!String.IsNullOrEmpty(conta.Endereco1CEP))
                {
                    enderecoContato.CEP = conta.Endereco1CEP.Replace("-", "").PadLeft(8, '0');
                }

                if (conta.Endereco1Municipioid != null)
                {
                    Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(conta.Endereco1Municipioid.Id);
                    enderecoContato.Cidade     = municipio.ChaveIntegracao;
                    enderecoContato.NomeCidade = municipio.Nome;
                }

                if (conta.Endereco1Estadoid != null)
                {
                    Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(conta.Endereco1Estadoid.Id);
                    if (estado != null)
                    {
                        enderecoContato.Estado = estado.ChaveIntegracao;
                        enderecoContato.UF     = estado.SiglaUF;
                    }
                    if (conta.Endereco1Pais == null)
                    {
                        conta.Endereco1Pais = estado.Pais;
                    }
                }

                if (conta.Endereco1Pais != null)
                {
                    Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(conta.Endereco1Pais.Id);
                    enderecoContato.NomePais = pais.Nome;
                    enderecoContato.Pais     = pais.ChaveIntegracao;;
                }
                if (!String.IsNullOrEmpty(conta.Endereco1CaixaPostal))
                {
                    enderecoContato.CaixaPostal = conta.Endereco1CaixaPostal;
                }
            }

            if (contato != null)
            {
                if (contato.AssociadoA != null)
                {
                    conta = new Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(contato.AssociadoA.Id);
                    if (conta != null)
                    {
                        clienteOcorrencia.CodigoCliente = Convert.ToInt32(conta.CodigoMatriz);
                    }
                }
                if (contato.Aniversario.HasValue)
                {
                    clienteOcorrencia.DataNascimento = contato.Aniversario.Value.ToLocalTime();
                }
                else
                {
                    clienteOcorrencia.DataNascimento = null;
                }

                if (!string.IsNullOrEmpty(contato.CpfCnpj))
                {
                    string cnpjCpfObj = contato.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();

                    if (!String.IsNullOrEmpty(cnpjCpfObj))
                    {
                        if (cnpjCpfObj.Length <= 11)
                        {
                            clienteOcorrencia.CPF = cnpjCpfObj;
                        }
                        else
                        {
                            clienteOcorrencia.CNPJ = cnpjCpfObj;
                        }
                    }
                }

                if (!String.IsNullOrEmpty(contato.Endereco1CEP))
                {
                    enderecoContato.CEP = contato.Endereco1CEP.Replace("-", "").PadLeft(8, '0');
                }

                if (contato.Endereco1Municipioid != null)
                {
                    Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(contato.Endereco1Municipioid.Id);
                    enderecoContato.Cidade     = municipio.ChaveIntegracao;
                    enderecoContato.NomeCidade = municipio.Nome;
                }

                if (contato.Endereco1Estadoid != null)
                {
                    Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(contato.Endereco1Estadoid.Id);
                    if (estado != null)
                    {
                        enderecoContato.Estado = estado.ChaveIntegracao;
                        enderecoContato.UF     = estado.SiglaUF;
                    }
                    if (contato.Endereco1Pais == null)
                    {
                        contato.Endereco1Pais = estado.Pais;
                    }
                }

                if (contato.Endereco1Pais != null)
                {
                    Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(contato.Endereco1Pais.Id);
                    enderecoContato.NomePais = pais.Nome;
                    enderecoContato.Pais     = pais.ChaveIntegracao;;
                }

                if (!String.IsNullOrEmpty(contato.Endereco1CaixaPostal))
                {
                    enderecoContato.CaixaPostal = contato.Endereco1CaixaPostal;
                }
            }

            clienteOcorrencia.NomeContato    = contato != null ? contato.PrimeiroNome : conta.Nome;
            clienteOcorrencia.SegundoNome    = contato != null ? contato.SegundoNome : null;
            clienteOcorrencia.Sobrenome      = contato != null ? contato.Sobrenome : null;
            clienteOcorrencia.Email          = contato != null ? contato.Email1 : conta.Email;
            clienteOcorrencia.Telefone       = contato != null ? contato.TelefoneComercial : conta.Telefone;
            clienteOcorrencia.Ramal          = contato != null ? contato.Ramal1 : conta.RamalTelefonePrincipal;
            clienteOcorrencia.Celular        = contato != null ? contato.TelefoneCelular : conta.Fax;
            clienteOcorrencia.Fax            = contato != null ? contato.Fax : null;
            clienteOcorrencia.RamalFax       = contato != null ? contato.RamalFax : null;
            clienteOcorrencia.Sexo           = contato != null ? contato.Sexo : null;
            clienteOcorrencia.RG             = contato != null ? contato.DocIdentidade : null;
            clienteOcorrencia.OrgaoExpeditor = contato != null ? contato.EmissorDocIdentidade : null;
            #endregion

            #region Endereco
            enderecoContato.Bairro       = contato != null ? contato.Endereco1Bairro : conta.Endereco1Bairro;
            enderecoContato.Numero       = contato != null ? contato.Endereco1Numero : conta.Endereco1Numero;
            enderecoContato.Complemento  = contato != null ? contato.Endereco1Complemento : conta.Endereco1Complemento;
            enderecoContato.Logradouro   = contato != null ? contato.Endereco1Rua : conta.Endereco1Rua;
            enderecoContato.NomeEndereco = contato != null ? contato.Endereco1Nome : null;
            enderecoContato.TipoEndereco = contato != null ? contato.Endereco1TipoEndereco : conta.TipoEndereco;

            if (enderecoContato != null)
            {
                clienteOcorrencia.EnderecoPrincipal = enderecoContato;
            }

            #endregion

            #region Lista de anexos da ocorrência
            var urlServico = SDKore.Configuration.ConfigurationManager.GetSettingValue("UrlSiteCRM");

            var strTextosAnotacoes = "";

            if (crm.Anexos != null && crm.Anexos.Count > 0)
            {
                List <Pollux.Entities.AnexoOcorrencia> lstAnexosOcorrencia = new List <Pollux.Entities.AnexoOcorrencia>();

                foreach (Anotacao crmItem in crm.Anexos)
                {
                    if (crmItem.TemArquivo)
                    {
                        Pollux.Entities.AnexoOcorrencia objPollux = new Pollux.Entities.AnexoOcorrencia();
                        objPollux.NomeArquivo = crmItem.NomeArquivos;
                        if (SDKore.Configuration.ConfigurationManager.GetSettingValue("Ambiente") == "Desenvolvimento")
                        {
                            objPollux.URL = urlServico + "/Activities/Attachment/download.aspx?AttachmentType=5&IsNotesTabAttachment=1&AttachmentId=" + crmItem.ID + "&CRMWRPCToken=N%2fF0lhjMEemA3ABQVqpIdBJpbKVyWAZQV4rPHHxT6tlRmtDGA0vqSwwW7tVLsMKh&CRMWRPCTokenTimeStamp=636845305936642215";
                        }
                        else
                        {
                            objPollux.URL = urlServico + "/Activities/Attachment/download.aspx?AttachmentType=5&IsNotesTabAttachment=1&AttachmentId=" + crmItem.ID;
                        }

                        lstAnexosOcorrencia.Add(objPollux);
                    }

                    strTextosAnotacoes += System.Environment.NewLine + "----------------------------------------------------------------------" + System.Environment.NewLine
                                          + crmItem.CriadoPor.Name.ToString() + " em " + crmItem.CriadoEm.Value.ToLocalTime() + ". " + (string.IsNullOrEmpty(crmItem.Assunto) ? "ASSUNTO: " + crmItem.Assunto : "") + System.Environment.NewLine
                                          + crmItem.Texto;
                }
                xml.ListaAnexosOcorrencia = lstAnexosOcorrencia;
            }
            #endregion

            if (!string.IsNullOrEmpty(strTextosAnotacoes))
            {
                xml.Observacao += strTextosAnotacoes;
            }
            else if (!string.IsNullOrEmpty(crm.Anexo))
            {
                xml.Observacao += System.Environment.NewLine + crm.Anexo;
            }

            xml.ClienteOcorrencia = clienteOcorrencia;

            return(xml);
        }
Ejemplo n.º 6
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
            case Domain.Enum.Plugin.MessageName.Create:

                var entidade             = (Entity)context.InputParameters["Target"];
                Domain.Model.Conta Conta = entidade.Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline);

                #region Sharepoint

                if (Conta != null && !string.IsNullOrEmpty(Conta.RazaoSocial))
                {
                    new SharepointServices(context.OrganizationName, context.IsExecutingOffline, adminService).CriarDiretorio <Domain.Model.Conta>(Conta.RazaoSocial, Conta.ID.Value);
                }

                var enderecoService = new EnderecoService(context.OrganizationName, context.IsExecutingOffline, adminService);
                enderecoService.AtualizaEnderecosAdicionaisDaConta(Conta);

                #endregion


                break;

            case Domain.Enum.Plugin.MessageName.Update:
                var repositoryService = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, adminService);
                var CanalPre          = ((Entity)context.PreEntityImages["imagem"]).Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService);
                var CanalPost         = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService);

                if (CanalPost.Classificacao != null && CanalPost.Classificacao.Id == SDKore.Configuration.ConfigurationManager.GetSettingValue <Guid>("Intelbras.Classificacao.Revenda"))
                {
                    if ((!CanalPre.ParticipantePrograma.HasValue || CanalPre.ParticipantePrograma.Value != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) && CanalPost.ParticipantePrograma.HasValue && CanalPost.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim)
                    {
                        var entityTarget = (Entity)context.InputParameters["Target"];
                        var contaService = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, adminService);
                        CanalPost.IntegrarNoPlugin = false;
                        AdesaoRevenda(CanalPost, repositoryService);
                    }
                }

                //Adesão ao programa
                if (CanalPre.ParticipantePrograma != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim &&
                    CanalPost.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim)
                {
                    new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).AdesaoAoPrograma(CanalPost);
                    var integraPontua  = (new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).validaIntegraPontuaFielo(CanalPre, CanalPost));
                    var contatos       = repositoryService.Contato.ListarAssociadosA(CanalPost.ID.ToString());
                    var contatoService = new Domain.Servicos.ContatoService(context.OrganizationName, context.IsExecutingOffline, adminService);
                    foreach (var contato in contatos)
                    {
                        contato.IntegraIntelbrasPontua = true;
                        contatoService.Persistir(contato);
                    }
                }

                //Envia contatos para Fielo na troca de categoria da revenda
                if (CanalPre.Categoria != CanalPost.Categoria && CanalPost.Categoria.Name != "Registrada")
                {
                    var contatos       = repositoryService.Contato.ListarAssociadosA(CanalPost.ID.ToString());
                    var contatoService = new Domain.Servicos.ContatoService(context.OrganizationName, context.IsExecutingOffline, adminService);
                    foreach (var contato in contatos)
                    {
                        contato.IntegraIntelbrasPontua = true;
                        contatoService.Persistir(contato);
                    }
                }


                //Descredenciamento ao programa
                if (CanalPre.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim &&
                    (CanalPost.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Nao ||
                     CanalPost.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Descredenciado))
                {
                    new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).DescredenciamentoAoPrograma(CanalPost);
                }

                //Envia Verba para Fielo
                if (CanalPost.StatusEnvioVMC == (int)Domain.Enum.Conta.StatusEnvioVMC.Enviando)
                {
                    string retorno      = new Domain.Servicos.VerbaVmcService(context.OrganizationName, context.IsExecutingOffline, adminService).EnviaVerbaFielo(CanalPost, CanalPost.CpfCnpj);
                    var    contaService = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, adminService);

                    Conta CanalUpdate = new Conta(context.OrganizationName, context.IsExecutingOffline);
                    CanalUpdate.ID = CanalPost.ID;

                    if (!retorno.Contains("false"))
                    {
                        CanalUpdate.StatusEnvioVMC     = (int)Domain.Enum.Conta.StatusEnvioVMC.Enviado;
                        CanalUpdate.DataUltimoEnvioVMC = DateTime.Now.AddHours(3);
                        CanalUpdate.TemDrireitoVMC     = false;
                        CanalUpdate.IntegrarNoPlugin   = true;
                        contaService.Persistir(CanalUpdate);
                    }
                    else
                    {
                        CanalUpdate.StatusEnvioVMC   = (int)Domain.Enum.Conta.StatusEnvioVMC.ErroAoEnviar;
                        CanalUpdate.TemDrireitoVMC   = false;
                        CanalUpdate.IntegrarNoPlugin = true;
                        contaService.Persistir(CanalUpdate);
                    }
                }
                break;
            }
        }