示例#1
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            try
            {
                switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
                {
                    #region Create
                case Domain.Enum.Plugin.MessageName.Create:

                    var parameter     = (Entity)context.InputParameters["Target"];
                    var endereco      = parameter.Parse <Endereco>(context.OrganizationName, context.IsExecutingOffline, adminService);
                    var contextCreate = context.GetContextEntity();

                    preencheDados(endereco, ref context, adminService);

                    break;
                    #endregion

                    #region Update
                case Domain.Enum.Plugin.MessageName.Update:

                    var targetUpdate             = (Entity)context.InputParameters["Target"];
                    var enderecoUpdate           = targetUpdate.Parse <Endereco>(context.OrganizationName, context.IsExecutingOffline, adminService);
                    var entidadeComValoresFinais = (Entity)context.GetContextEntityMerge("imagem");

                    enderecoUpdate.IntegrarNoPlugin = entidadeComValoresFinais.GetAttributeValue <bool>("itbc_acaocrm");
                    enderecoUpdate.Identificacao    = entidadeComValoresFinais.GetAttributeValue <string>("new_cnpj").GetOnlyNumbers();
                    preencheDados(enderecoUpdate, ref context, adminService);

                    break;
                    #endregion

                    #region Delete
                case Domain.Enum.Plugin.MessageName.Delete:

                    var image          = context.PreEntityImages["imagem"];
                    var enderecoDelete = image.Parse <Endereco>(context.OrganizationName, context.IsExecutingOffline, adminService);

                    enderecoDelete.StatusAtivo = false;
                    if (enderecoDelete.IntegrarNoPlugin)
                    {
                        string xmlResposta = new EnderecoService(context.OrganizationName, context.IsExecutingOffline, adminService).IntegracaoBarramento(enderecoDelete);
                    }

                    break;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.Message);
            }
        }
示例#2
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            var historicoDistribuidorService = new Domain.Servicos.HistoricoDistribuidorService(context.OrganizationName, context.IsExecutingOffline, adminService);

            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
            case Domain.Enum.Plugin.MessageName.Create:

                var entityTargetCreate = context.GetContextEntity();
                var targetCreate       = entityTargetCreate.Parse <Domain.Model.HistoricoDistribuidor>(context.OrganizationName, context.IsExecutingOffline, adminService);
                targetCreate.Status = (int)Domain.Enum.HistoricoDistribuidor.Statecode.Ativo;
                historicoDistribuidorService.ValidaCamposObrigatorios(targetCreate);
                historicoDistribuidorService.ValidaDuplicidade(targetCreate, true);

                var revenda      = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetCreate.Revenda.Id);
                var distribuidor = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetCreate.Distribuidor.Id);

                PreencheNome(ref entityTargetCreate, ref revenda, ref distribuidor);

                break;

            case Domain.Enum.Plugin.MessageName.Update:

                var entityTargetMerge  = context.GetContextEntityMerge("imagem");
                var entityTargetUpdate = context.GetContextEntity();
                var targetUpdate       = entityTargetMerge.Parse <Domain.Model.HistoricoDistribuidor>(context.OrganizationName, context.IsExecutingOffline, adminService);
                var entityTarget       = (Entity)context.InputParameters["Target"];
                var contaUp            = entityTarget.Parse <Domain.Model.HistoricoDistribuidor>(context.OrganizationName, context.IsExecutingOffline, adminService);

                entityTargetUpdate.Attributes["itbc_datafim"] = contaUp.DataFim;

                if (targetUpdate.Status.Value == (int)Domain.Enum.HistoricoDistribuidor.Statecode.Ativo)
                {
                    historicoDistribuidorService.ValidaCamposObrigatorios(targetUpdate);
                    historicoDistribuidorService.ValidaDuplicidade(targetUpdate, false);
                }

                var revendaUpdate      = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetUpdate.Revenda.Id);
                var distribuidorUpdate = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetUpdate.Distribuidor.Id);

                PreencheNome(ref entityTargetUpdate, ref revendaUpdate, ref distribuidorUpdate);
                break;
            }
        }
示例#3
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            var cnaeService = new Domain.Servicos.CnaeService(context.OrganizationName, context.IsExecutingOffline, adminService);

            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
            case Domain.Enum.Plugin.MessageName.Create:
                var entityTargetCreate = context.GetContextEntity();
                var cnae = entityTargetCreate.Parse <Domain.Model.CNAE>(context.OrganizationName, context.IsExecutingOffline, adminService);

                PreencheNome(ref cnae, ref entityTargetCreate);
                break;

            case Domain.Enum.Plugin.MessageName.Update:
                var entityTargetUpdate = context.GetContextEntity();
                var entityMergeUpdate  = context.GetContextEntityMerge("imagem");

                var cnaeUpdate = entityMergeUpdate.Parse <Domain.Model.CNAE>(context.OrganizationName, context.IsExecutingOffline, adminService);

                PreencheNome(ref cnaeUpdate, ref entityTargetUpdate);
                break;
            }
        }
示例#4
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            try
            {
                switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
                {
                    #region Create
                case Domain.Enum.Plugin.MessageName.Create:
                    var        parameterCreate  = (Entity)context.InputParameters["Target"];
                    Ocorrencia ocorrenciaCreate = parameterCreate.Parse <Ocorrencia>(context.OrganizationName, context.IsExecutingOffline, adminService);

                    var ocorrenciaService = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline);

                    /*
                     * Caso a linha de contrato seja do tipo instalação e tenha valor no campo limite
                     * caso ultrapssse o limite definido da erro, e não deixa criar a ocorrencia
                     */
                    if (ocorrenciaCreate.LinhaDeContratoId != null)
                    {
                        RepositoryService repository = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline);
                        var linhaDeContrato          = repository.LinhaDoContrato.Retrieve(ocorrenciaCreate.LinhaDeContratoId.Id);
                        if (linhaDeContrato != null && linhaDeContrato.TipoDeOcorrencia == (int)Domain.Enum.TipoDeOcorrencia.Instalacao && linhaDeContrato.LimiteOcorrencias > 0)
                        {
                            var listOcorrencias = ocorrenciaService.ListarOcorrenciasPorLinhaDoContrato(ocorrenciaCreate.LinhaDeContratoId.Id);
                            if (listOcorrencias.Count >= linhaDeContrato.LimiteOcorrencias)
                            {
                                throw new ArgumentException("Erro ao criar Ocorrência. Limite de instalações atingido.");
                            }
                        }
                    }
                    ocorrenciaService.Ocorrencia = ocorrenciaCreate;
                    ocorrenciaService.Criar();

                    AtualizaCampos(ref parameterCreate, ocorrenciaService.Ocorrencia);

                    if (ocorrenciaCreate.Origem != null && (ocorrenciaCreate.Origem == (int)Domain.Enum.OrigemDaOcorrencia.PortalAssistenciaTencica || ocorrenciaCreate.Origem == (int)Domain.Enum.OrigemDaOcorrencia.OSIntegrada))
                    {
                        var usuario = new Guid(SDKore.Configuration.ConfigurationManager.GetSettingValue("guid_proprietario_portal_astec"));
                        parameterCreate.Attributes["ownerid"] = new EntityReference("systemuser", usuario);
                    }

                    break;
                    #endregion

                    #region Update
                case Domain.Enum.Plugin.MessageName.Update:
                    var        parameterUpdate          = (Entity)context.InputParameters["Target"];
                    var        entidadeComValoresFinais = (Entity)context.GetContextEntityMerge("imagem");
                    Ocorrencia ocorrenciaUpdate         = entidadeComValoresFinais.Parse <Ocorrencia>(context.OrganizationName, context.IsExecutingOffline, adminService);
                    var        ocorrenciaServiceUpdate  = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline);

                    if (ocorrenciaUpdate.LinhaDeContratoId != null)
                    {
                        RepositoryService repository = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline);
                        var linhaDeContrato          = repository.LinhaDoContrato.Retrieve(ocorrenciaUpdate.LinhaDeContratoId.Id);
                        if (linhaDeContrato != null && linhaDeContrato.TipoDeOcorrencia == (int)Domain.Enum.TipoDeOcorrencia.Instalacao && linhaDeContrato.LimiteOcorrencias > 0)
                        {
                            var listOcorrencias = ocorrenciaServiceUpdate.ListarOcorrenciasPorLinhaDoContrato(ocorrenciaUpdate.LinhaDeContratoId.Id);
                            if (listOcorrencias.Count >= linhaDeContrato.LimiteOcorrencias)
                            {
                                var flag = true;

                                foreach (var ocorrencia in listOcorrencias)
                                {
                                    if (ocorrencia.Id.Equals(ocorrenciaUpdate.Id))
                                    {
                                        flag = false;
                                        break;
                                    }
                                }

                                if (flag)
                                {
                                    throw new ArgumentException("Erro ao atualizar Ocorrência. Limite de instalações atingido.");
                                }
                            }
                        }
                    }

                    ocorrenciaServiceUpdate.Ocorrencia = ocorrenciaUpdate;
                    ocorrenciaServiceUpdate.Atualizar();
                    if (parameterUpdate.Attributes.Contains("statuscode"))
                    {
                        ocorrenciaServiceUpdate.AtualizarValorDoServicoASTEC();
                    }

                    AtualizaCampos(ref parameterUpdate, ocorrenciaServiceUpdate.Ocorrencia);

                    break;
                    #endregion

                    #region SetState
                case Domain.Enum.Plugin.MessageName.SetStateDynamicEntity:

                    var state  = (OptionSetValue)context.InputParameters["State"];
                    var status = (OptionSetValue)context.InputParameters["Status"];

                    var        parameter          = context.GetContextEntity("imagem");
                    Ocorrencia ocorrenciaSetState = parameter.Parse <Ocorrencia>(context.OrganizationName, context.IsExecutingOffline, adminService);

                    ocorrenciaSetState.Status = state.Value;
                    if (status.Value == 200040)
                    {
                        ocorrenciaSetState.StatusDaOcorrencia = Domain.Enum.StatusDaOcorrencia.Auditoria;
                        ocorrenciaSetState.RazaoStatus        = status.Value;

                        var ocorrenciaServiceSetState = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline);
                        ocorrenciaServiceSetState.Ocorrencia = ocorrenciaSetState;

                        if (context.InputParameters.Contains("Status"))
                        {
                            ocorrenciaServiceSetState.AtualizarValorDoServicoASTEC();

                            new RepositoryService(context.OrganizationName, context.IsExecutingOffline, adminService).Ocorrencia.Update(ocorrenciaServiceSetState.Ocorrencia);
                        }
                    }

                    break;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.Message);
            }
        }
示例#5
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            //if (context.GetStage() != Stage.PreValidation)
            //    return;
            var e        = context.GetContextEntity();
            var _service = new Intelbras.CRM2013.Domain.Servicos.AcessoKonvivaService(context.OrganizationName, context.IsExecutingOffline, null);

            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
            case Domain.Enum.Plugin.MessageName.Create:
            {
                Domain.Model.AcessoKonviva mAcessoKonviva = e.Parse <Domain.Model.AcessoKonviva>(context.OrganizationName, context.IsExecutingOffline, userService);

                //Adicionado verificação preEvent pra poder mudar o nome da entidade
                if (mAcessoKonviva.Contato == null)
                {
                    throw new ArgumentException("(CRM) Contato obrigatório");
                }

                Domain.Model.Contato mContato = new Intelbras.CRM2013.Domain.Servicos.ContatoService(context.OrganizationName, context.IsExecutingOffline).BuscaContato(mAcessoKonviva.Contato.Id);

                if (mContato == null)
                {
                    throw new ArgumentException("(CRM) Contato não encontrado");
                }

                if (!new AcessoExtranetContatoService(context.OrganizationName, context.IsExecutingOffline, userService).ValidarExistenciaAcessoExtranet(mAcessoKonviva.Contato.Id))
                {
                    throw new ApplicationException("(CRM) Contato não possui acesso na extranet");
                }

                if (!_service.ValidarTipoAcesso(mAcessoKonviva))
                {
                    throw new ApplicationException("(CRM) Usuários sem vínculo com a Intelbras não podem criar Acesso no Konviva com Perfil Administrador");
                }

                //Já validamos se o contato existe mesmo na service com o método validarTipoAcesso
                e.Attributes["itbc_name"] = mContato.NomeCompleto;

                if (!e.Attributes.Contains("itbc_acaocrm") || e.GetAttributeValue <bool>("itbc_acaocrm") == false)
                {
                    context.SharedVariables.Add("IntegraKonviva", true);
                }
                e.Attributes.Remove("itbc_acaocrm");

                break;
            }

            case Domain.Enum.Plugin.MessageName.Update:
            {
                Guid contatoId;
                //Domain.Model.AcessoKonviva acessoKonvivaImagem = ((Entity)context.PreEntityImages["imagem"]).Parse<Domain.Model.AcessoKonviva>(context.OrganizationName, context.IsExecutingOffline, context.UserId);
                Domain.Model.AcessoKonviva acessoKonvivaImagem  = ((Entity)context.GetContextEntityMerge("imagem")).Parse <Domain.Model.AcessoKonviva>(context.OrganizationName, context.IsExecutingOffline, context.UserId);
                Domain.Model.AcessoKonviva mAcessoKonvivaUpdate = e.Parse <Domain.Model.AcessoKonviva>(context.OrganizationName, context.IsExecutingOffline, userService);

                //Adicionado verificação preEvent pra poder mudar o nome da entidade
                if (acessoKonvivaImagem.Contato == null && mAcessoKonvivaUpdate.Contato == null)
                {
                    throw new ArgumentException("(CRM) Contato obrigatório");
                }

                if (mAcessoKonvivaUpdate.Contato == null)
                {
                    contatoId = acessoKonvivaImagem.Contato.Id;
                }
                else
                {
                    contatoId = mAcessoKonvivaUpdate.Contato.Id;
                }

                Domain.Model.Contato mContatoUpdate = new Intelbras.CRM2013.Domain.Servicos.ContatoService(context.OrganizationName, context.IsExecutingOffline).BuscaContato(contatoId);

                if (mContatoUpdate == null)
                {
                    throw new ArgumentException("(CRM) Contato não encontrado");
                }

                if (!_service.ValidarTipoAcesso(acessoKonvivaImagem))
                {
                    throw new ApplicationException("(CRM) Usuários sem vínculo com a Intelbras não podem criar Acesso no Konviva com Perfil Administrador");
                }

                //Já validamos se o contato existe mesmo na service validarTipoAcesso
                e.Attributes["itbc_name"] = mContatoUpdate.NomeCompleto;

                // SharedVariable para a Integração
                if (!e.Attributes.Contains("itbc_acaocrm") || e.GetAttributeValue <bool>("itbc_acaocrm") == false)
                {
                    context.SharedVariables.Add("IntegraKonviva", true);
                }
                e.Attributes.Remove("itbc_acaocrm");
                break;
            }
            }
        }
示例#6
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            var contaService = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, adminService);

            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
                #region Create
            case Domain.Enum.Plugin.MessageName.Create:

                var e     = (Entity)context.InputParameters["Target"];
                var conta = e.Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService);
                if (e.Contains("itbc_cpfoucnpj") && conta.CpfCnpj != null)
                {
                    if (contaService.BuscaContaPorCpfCnpj(conta.CpfCnpj, conta.TipoConstituicao.Value) != null)
                    {
                        throw new ArgumentException("(CRM) Ja Existe uma Conta com esse mesmo CPF/CNPJ.");
                    }
                    if (conta.TipoConstituicao != (int)Domain.Enum.Conta.TipoConstituicao.Estrangeiro)
                    {
                        e.Attributes["new_sem_masc_cnpj_cpf"] = conta.CpfCnpj.GetOnlyNumbers();
                        e.Attributes["itbc_cpfoucnpj"]        = conta.CpfCnpj.InputMask();
                    }
                }
                else
                {
                    throw new ArgumentException("(CRM) Campo CPF ou CNPJ não esta preenchido.");
                }

                PreenchimentoDeCampos(ref context, adminService);

                if (conta.AssistenciaTecnica == null)
                {
                    e.Attributes["itbc_isastec"] = false;
                }

                //Atualiza endereço Padrão
                if (conta.EnderecoPadrao == "e")
                {
                    e.Attributes["new_altera_endereco_padrao"] = "n";
                }

                break;
                #endregion

                #region Update

            case Domain.Enum.Plugin.MessageName.Update:
                PreenchimentoDeCampos(ref context, adminService);
                var entityTarget      = (Entity)context.InputParameters["Target"];
                var entityPre         = context.PreEntityImages["imagem"];
                var entityMerge       = context.GetContextEntityMerge("imagem");
                var canalMerge        = ((Entity)entityMerge).Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService);
                var canalPre          = new Domain.Servicos.CanalServices(context.OrganizationName, context.IsExecutingOffline, adminService).ObterCanalPorId(canalMerge.ID.Value);
                var repositoryService = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, adminService);
                var contaUp           = entityTarget.Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService);

                if (entityTarget.Contains("itbc_cpfoucnpj") && (canalPre.CpfCnpj.GetOnlyNumbers() != canalMerge.CpfCnpj.GetOnlyNumbers() || canalMerge.TipoConstituicao == (int)Domain.Enum.Conta.TipoConstituicao.Estrangeiro))
                {
                    if (contaService.BuscaOutraContaPorCpfCnpj(contaUp.CpfCnpj, contaUp.ID.Value, canalMerge.TipoConstituicao.Value) != null)
                    {
                        throw new ArgumentException("(CRM) Ja Existe uma Conta com esse mesmo CPF/CNPJ.");
                    }
                    entityTarget.Attributes["new_sem_masc_cnpj_cpf"] = contaUp.CpfCnpj.GetOnlyNumbers();
                }

                foreach (var item in entityTarget.Attributes)
                {
                    entityMerge.Attributes[item.Key] = item.Value;
                }

                if (canalMerge.AssistenciaTecnica == null)
                {
                    entityTarget.Attributes["itbc_isastec"] = false;
                }

                //Atualiza endereço Padrão
                if (canalMerge.EnderecoPadrao == "e")
                {
                    new Intelbras.CRM2013.Domain.Servicos.EnderecoService(context.OrganizationName, context.IsExecutingOffline, adminService).AtualizaEnderecosAdicionaisDaConta(canalMerge);
                    entityTarget.Attributes["new_altera_endereco_padrao"] = "n";
                }

                //Atualizando informações de endereço
                entityTarget.Attributes["address1_line1"]  = canalMerge.Endereco1Rua;
                entityTarget.Attributes["address1_city"]   = canalMerge.Endereco1Cidade;
                entityTarget.Attributes["address2_city"]   = canalMerge.Endereco1Cidade;
                entityTarget.Attributes["address1_county"] = canalMerge.Endereco1Bairro;
                entityTarget.Attributes["address2_county"] = canalMerge.Endereco2Bairro;

                entityTarget.Attributes["address1_stateorprovince"] = canalMerge.Endereco1Estado;
                entityTarget.Attributes["new_sem_masc_cnpj_cpf"]    = canalMerge.CpfCnpj.GetOnlyNumbers();

                if (canalMerge.Classificacao != null && canalMerge.Classificacao.Id == SDKore.Configuration.ConfigurationManager.GetSettingValue <Guid>("Intelbras.Classificacao.Revenda"))
                {
                    if ((!canalPre.ParticipantePrograma.HasValue || canalPre.ParticipantePrograma.Value != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) && canalMerge.ParticipantePrograma.HasValue && canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim)
                    {
                        canalMerge.IntegrarNoPlugin = true;
                    }
                }

                //Valida Credenciamento
                if (canalMerge.Classificacao != null && canalMerge.Classificacao.Id != SDKore.Configuration.ConfigurationManager.GetSettingValue <Guid>("Intelbras.Classificacao.Revenda"))
                {
                    if (canalPre.ParticipantePrograma.HasValue &&
                        canalMerge.ParticipantePrograma.HasValue &&
                        canalPre.ParticipantePrograma.Value != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim &&
                        canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim)
                    {
                        new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).validaAdesaoaoPrograma(canalMerge);
                        entityTarget.Attributes["itbc_integraintelbraspontua"] = true;
                        canalMerge.IntegraIntelbrasPontua = true;
                    }
                }

                //Envia conta para Fielo
                var IntegraPontua = (new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).validaIntegraPontuaFielo(canalPre, canalMerge));
                entityTarget.Attributes["itbc_integraintelbraspontua"] = IntegraPontua;
                canalMerge.IntegraIntelbrasPontua = IntegraPontua;

                // Valida Descredenciamento ao programa
                if (canalPre.ParticipantePrograma.HasValue &&
                    canalMerge.ParticipantePrograma.HasValue &&
                    canalPre.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim &&
                    (canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Nao ||
                     canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Descredenciado))
                {
                    // Se usuário tentando descredenciar.
                    if (context.Depth == 1)
                    {
                        new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).ValidarDescredenciamentoAoPrograma(canalMerge);
                        entityTarget.Attributes["itbc_integraintelbraspontua"] = true;
                        canalMerge.IntegraIntelbrasPontua = true;
                    }
                }

                //Envia Verba para Fielo
                if (canalMerge.StatusEnvioVMC == (int)Domain.Enum.Conta.StatusEnvioVMC.AguardandoEnvio)
                {
                    entityTarget.Attributes["itbc_statusenviovmc"] = (int)Domain.Enum.Conta.StatusEnvioVMC.Enviando;
                    canalMerge.IntegrarNoPlugin = true;
                }

                if (!canalMerge.IntegrarNoPlugin || canalMerge.IntegrarNoPlugin == null || canalMerge.IntegrarNoPlugin.ToString().Equals(""))
                {
                    contaService.IntegracaoBarramento(canalMerge, ref entityTarget);
                }

                break;

                #endregion
            }
        }