public void Execute(IPluginExecutionContext context) { DateTime inicioExecucao = DateTime.Now; try { if (context.PostEntityImages.Contains("postimage")) { var postimage = (DynamicEntity)context.PostEntityImages["postimage"]; if (postimage == null) return; PluginHelper.LogEmArquivo(context, "INICIO;", inicioExecucao.ToString(), ""); //alterar status da ocorrencia if (postimage.Properties.Contains("new_ocorrenciaid")) { OcorrenciaService service = new OcorrenciaService(((Lookup)postimage["new_ocorrenciaid"]).Value); service.AlterarStatusDaOcorrenciaParaOMenorStatusDosDiagnosticosRelacionados(); } PluginHelper.LogEmArquivo(context, "FIM;", inicioExecucao.ToString(), DateTime.Now.ToString()); } } catch (Exception ex) { PluginHelper.TratarExcecao(ex, TipoDeLog.PluginIncident); PluginHelper.LogEmArquivo(context, "ERRO;", inicioExecucao.ToString(), DateTime.Now.ToString()); } }
public void Execute(IPluginExecutionContext context) { DateTime inicioExecucao = DateTime.Now; try { if ((context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity)) { var entidade = context.InputParameters.Properties["Target"] as DynamicEntity; if (entidade == null) { return; } this.Organizacao = context.OrganizationName; DynamicEntity postimage = null; if (context.PostEntityImages.Contains("postimage")) { postimage = (DynamicEntity)context.PostEntityImages["postimage"]; } if (postimage == null) { return; } //alterar status da ocorrencia if (postimage.Properties.Contains("new_ocorrenciaid") && entidade.Properties.Contains("statuscode")) { OcorrenciaService service = new OcorrenciaService(((Lookup)postimage["new_ocorrenciaid"]).Value); service.AlterarStatusDaOcorrenciaParaOMenorStatusDosDiagnosticosRelacionados(); } if (entidade.Properties.Contains("new_produtoid") || entidade.Properties.Contains("new_geratroca") || entidade.Properties.Contains("new_qtd_solicitada")) { Guid diagnosticoId = PluginHelper.GetEntityId(context); var diagnostico = DomainService.RepositoryDiagnostico.Retrieve(diagnosticoId); this.VerificaIntervencao(diagnostico, context); } } } catch (Exception ex) { PluginHelper.TratarExcecao(ex, TipoDeLog.PluginNew_diagnostico_ocorrencia); } }
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)) { case Domain.Enum.Plugin.MessageName.Create: if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { var entidade = (Entity)context.InputParameters["Target"]; Domain.Model.Diagnostico diagnosticoCreate = entidade.Parse <Domain.Model.Diagnostico>(context.OrganizationName, context.IsExecutingOffline, service); OcorrenciaService ocorrenciaService = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline, service); ocorrenciaService.Ocorrencia = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, service).Ocorrencia.Retrieve(diagnosticoCreate.OcorrenciaId.Id); ocorrenciaService.AlterarStatusDaOcorrenciaParaOMenorStatusDosDiagnosticosRelacionados(); //this.VerificaIntervencao(diagnosticoCreate, context, service); } break; case Domain.Enum.Plugin.MessageName.Update: if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity) { var entidade = context.PostEntityImages["imagem"]; Domain.Model.Diagnostico diagnosticoUpdate = entidade.Parse <Domain.Model.Diagnostico>(context.OrganizationName, context.IsExecutingOffline, service); OcorrenciaService ocorrenciaService = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline, service); ocorrenciaService.Ocorrencia = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, service).Ocorrencia.Retrieve(diagnosticoUpdate.OcorrenciaId.Id); ocorrenciaService.AlterarStatusDaOcorrenciaParaOMenorStatusDosDiagnosticosRelacionados(); //this.VerificaIntervencao(diagnosticoUpdate, context, service); } break; case Domain.Enum.Plugin.MessageName.Delete: if (context.PreEntityImages.Contains("imagem") && context.PreEntityImages["imagem"] is Entity) { var entidade = context.PreEntityImages["imagem"]; Domain.Model.Diagnostico diagnosticoUpdate = entidade.Parse <Domain.Model.Diagnostico>(context.OrganizationName, context.IsExecutingOffline, service); OcorrenciaService ocorrenciaService = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline, service); ocorrenciaService.Ocorrencia = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, service).Ocorrencia.Retrieve(diagnosticoUpdate.OcorrenciaId.Id); ocorrenciaService.AlterarStatusDaOcorrenciaParaOMenorStatusDosDiagnosticosRelacionados(); } break; case Domain.Enum.Plugin.MessageName.SetStateDynamicEntity: if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity) { var entidade = context.PostEntityImages["imagem"]; Domain.Model.Diagnostico diagnosticoUpdate = entidade.Parse <Domain.Model.Diagnostico>(context.OrganizationName, context.IsExecutingOffline, service); Diagnostico diagnostico = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, service).Diagnostico.Retrieve(diagnosticoUpdate.Id); OcorrenciaService ocorrenciaService = new OcorrenciaService(context.OrganizationName, context.IsExecutingOffline, service); ocorrenciaService.Ocorrencia = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, service).Ocorrencia.Retrieve(diagnostico.OcorrenciaId.Id); ocorrenciaService.AlterarStatusDaOcorrenciaParaOMenorStatusDosDiagnosticosRelacionados(); } break; } } catch (Exception ex) { trace.Trace(String.Format("EXCEPTION PLUGIN {0} {1} [{2}]", context.MessageName.ToLower(), "new_diagnostico_ocorrencia", DateTime.Now)); trace.Trace(SDKore.Helper.Error.GetMessageError(ex)); throw new InvalidPluginExecutionException(ex.Message); } }