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); } }
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(); }
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); }
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); } }
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); }
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; } }