public void Execute(IServiceProvider serviceProvider) { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); 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: if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { var entidade = (Entity)context.InputParameters["Target"]; Anexo anexo = entidade.Parse <Anexo>(context.OrganizationName, context.IsExecutingOffline); var ocorrenciaService = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline, service); OcorrenciaBase ocorrenciaBase = ocorrenciaService.BuscaOcorrenca(anexo.EntidadeRelacionada.Id); if (ocorrenciaService.IsContractBradesco(ocorrenciaBase) && ocorrenciaBase.ReplicadoBradesco == false && ocorrenciaBase.Id == anexo.EntidadeRelacionada.Id) { /*Está condição serve para realizar uma nova tentatica de criação do incidente no HPSM caso * tenha algum problema de integração durante a execução do create Incidente*/ if (ocorrenciaBase.OsCliente == null) { trace.Trace("Inicio integração HPSM - Operação: REGISTRAR INCIDENTE - posCreate"); ocorrenciaBase.TipoOperacao = "REGISTRAR INCIDENTE"; ocorrenciaService.IntegracaoBradesco(ocorrenciaBase); trace.Trace("Fim integração HPSM - Operação: REGISTRAR INCIDENTE - posCreate"); } if (anexo.NomeArquivos == null && anexo.Texto != "") { trace.Trace("Inicio integração HPSM - Operação: REGISTRAR INFORMACAO COMPLEMENTAR - posCreate"); ocorrenciaBase.TipoOperacao = "REGISTRAR INFORMACAO COMPLEMENTAR"; ocorrenciaService.IntegracaoBradesco(ocorrenciaBase, anexo); trace.Trace("Fim integração HPSM - Operação: REGISTRAR INFORMACAO COMPLEMENTAR - posCreate"); } } } break; #endregion } } catch (Exception ex) { trace.Trace(String.Format("EXCEPTION PLUGIN {0} {1} [{2}]", context.MessageName.ToLower(), "annotation", DateTime.Now)); trace.Trace(SDKore.Helper.Error.GetMessageError(ex)); throw new InvalidPluginExecutionException(ex.Message); } }