public void Execute(IServiceProvider serviceProvider)
        {
            ITracingService             tracer  = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            IPluginExecutionContext     context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService        service = factory.CreateOrganizationService(context.UserId);

            try
            {
                var    _parametros = new Parametros();
                Entity entity      = (Entity)context.InputParameters["Target"];

                using (CrmServiceContext _context = new CrmServiceContext(service))
                {
                    _parametros.o_Entity = (from auto in _context.dx_confignumberSet
                                            where auto.dx_entityname == context.PrimaryEntityName
                                            select auto).FirstOrDefault();
                }

                var _prefix        = _parametros.o_Entity.dx_prefix.ToString();
                var _subffix       = _parametros.o_Entity.dx_suffix.ToString();
                var _incremen      = _parametros.o_Entity.dx_increment.Value;
                var _length        = _parametros.o_Entity.dx_length.Value;
                var _currentNumber = _parametros.o_Entity.dx_currentnumber.ToString();

                var _nextnumber = 0;
                if (_parametros.o_Entity.dx_nextnumber != null)
                {
                    _nextnumber = _parametros.o_Entity.dx_nextnumber.Value + _incremen;
                }
                else
                {
                    _nextnumber += _incremen;
                }

                var _completeNumber = $"{_prefix}{_nextnumber.ToString().PadLeft(_length, '0')}{_subffix}";

                _parametros.o_Entity.Attributes[_parametros.o_Entity.dx_fieldname] = _completeNumber;
                service.Update(_parametros.o_Entity);
            }
            catch (Exception e)
            {
                throw new InvalidPluginExecutionException(e.Message);
            }
        }
        public void Execute(IServiceProvider serviceProvider)
        {
            ITracingService             tracer  = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            IPluginExecutionContext     context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService        service = factory.CreateOrganizationService(context.UserId);

            try
            {
                var _parametros = new Parametros();

                Entity entity = (Entity)context.InputParameters["Target"];


                if (!entity.Contains("dx_entityname"))
                {
                    return;
                }

                var _pluginName = $"{_MasterPluginName}{entity.Attributes["dx_entityname"].ToString()}";


                using (CrmServiceContext _context = new CrmServiceContext(service))
                {
                    if (_context.CreateQuery("sdkmessageprocessingstep").
                        Where(s => s.GetAttributeValue <string>("name").Equals(_pluginName)).ToList().Any())
                    {
                        return;
                    }

                    _parametros.o_Config = new ConfigAutonumber()
                    {
                        s_EntityName = entity.Attributes["dx_entityname"].ToString(),
                        s_EventName  = ((OptionSetValue)entity.Attributes["dx_event"]).Value == 425420000 ? "Create" : "Update"
                    };

                    _parametros.g_PluginTypeId = _context.CreateQuery("plugintype")
                                                 .Where(s => s.GetAttributeValue <string>("name").Equals(typeof(POST_CRE_Set_Number).FullName))
                                                 .Select(s => s.GetAttributeValue <Guid>("plugintypeid"))
                                                 .First();

                    _parametros.g_MessageId = _context.CreateQuery("sdkmessage")
                                              .Where(s => s.GetAttributeValue <string>("name").Equals(_parametros.o_Config.s_EventName))
                                              .Select(s => s.GetAttributeValue <Guid>("sdkmessageid"))
                                              .First();

                    _parametros.g_FilterId = _context.CreateQuery("sdkmessagefilter")
                                             .Where(s => s.GetAttributeValue <string>("primaryobjecttypecode").Equals(_parametros.o_Config.s_EntityName) &&
                                                    s.GetAttributeValue <EntityReference>("sdkmessageid").Id.Equals(_parametros.g_MessageId))
                                             .Select(s => s.GetAttributeValue <Guid>("sdkmessagefilterid"))
                                             .First();
                }

                Entity _entity = new Entity("sdkmessageprocessingstep");
                _entity.Attributes["name"]                = _pluginName;
                _entity.Attributes["description"]         = _pluginName;
                _entity.Attributes["plugintypeid"]        = new EntityReference("plugintype", _parametros.g_PluginTypeId);
                _entity.Attributes["sdkmessageid"]        = new EntityReference("sdkmessage", _parametros.g_MessageId);
                _entity.Attributes["configuration"]       = _parametros.o_Config.ToJson();
                _entity.Attributes["stage"]               = _parametros.o_Config.s_EventName == "Create" ? PipelineStage.PostOperation.ToOptionSetValue() : PipelineStage.PreOperation.ToOptionSetValue();
                _entity.Attributes["rank"]                = 1;
                _entity.Attributes["impersonatinguserid"] = new EntityReference("systemuser", context.UserId);
                _entity.Attributes["sdkmessagefilterid"]  = new EntityReference("sdkmessagefilter", _parametros.g_FilterId);

                var g_newconfig = service.Create(_entity);
            }
            catch (Exception e)
            {
            }
        }