示例#1
0
        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());
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }