美文网首页
[内部]综合平台相关实体事件插件使用说明

[内部]综合平台相关实体事件插件使用说明

作者: BeautifulHao | 来源:发表于2017-12-05 09:18 被阅读0次

    1、构建插件类库,.net版本4.5.2,项目名称任意,比如Supcon.UnifiedPlatform.ExtendEventsTest

    2、添加平台相关依赖程序集,一般需三个:
    Castle.Core.dll、Supcon.Utilities.dll、
    SupconMes.dll、
    Supcon.UnifiedPlatform.ExtendEvents.dll
    不足请自行在附件lib下引用添加。

    3、构建插件注册类,实现AbpModule,该类主要告诉系统有插件模块存在,且实现了具体类的依赖注入注册:

    namespace Supcon.UnifiedPlatform.ExtendEventsTest
    {
        public class ExtendEventsTestModule:AbpModule
        {
            public override void Initialize()
            {
                 //实现事件类注册,见第四点
                IocManager.Register<ICustomEventHandle,MyEventHandle>();
            }
        }
    }
    

    4、实现事件调用类:

        public class MyEventHandle : ICustomEventHandle
        {
            public ILogger Logger { get; set; }
    
            public MyEventHandle()
            {
                this.Logger = NullLogger.Instance;
            }
    
            public void EventHandle(CustomEventData data)
            {
                //可以通过方法调用平台配置中心参数获取方法
                //var someCfg =data.CfgHelper.GetConfigValueByKey("cfgKey");
                //获取发生变化类型,新增、修改和删除
                // var changetype = data.ChangeType;
    
             
                if (data.EntityName.Equals("OrganizationEntity"))
                {
                    //如果是组织机构发生变化
    
                    //获取发生变化实体
                    OrganizationEventDto dto = data.Dto as OrganizationEventDto;
    
                }
                else if(data.EntityName.Equals("PositionEntity"))
                {
                    //职位发生变化
                    PositionEventDto dto = data.Dto as PositionEventDto;
                }
                else if (data.EntityName.Equals("JobEntity"))
                {
                    //岗位发生变化
                    JobEventDto dto = data.Dto as JobEventDto;
                }
                else if (data.EntityName.Equals("EmployeeMainEntity"))
                {
                    //人员发生变化
                    EmployeeEventDto dto = data.Dto as EmployeeEventDto;
                }
                else if (data.EntityName.Equals("UserEntity"))
                {
                    //账号发生变化
                    UserEventDto dto = data.Dto as UserEventDto;
                }
    
                Logger.Info("调试阶段可以输出日志到平台logs文件下");
            }
        }
    

    5、编译成程序集,拷贝到平台MESIP站点下Plugin文件夹,如果没有改文件夹则新建即可。

    6、测试可以通过日志输出查看是否发生了事件调用,如果需要关闭插件,请删除插件DLL即可。

    相关文章

      网友评论

          本文标题:[内部]综合平台相关实体事件插件使用说明

          本文链接:https://www.haomeiwen.com/subject/cxdqixtx.html