Example #1
0
        public DefaultScriptBase GetDefaultMetaObjectTriggerScript(MetaObjectInterfaceServiceTypeEnum metaObjectInterfaceServiceTypeEnum)
        {
            switch (metaObjectInterfaceServiceTypeEnum)
            {
            case MetaObjectInterfaceServiceTypeEnum.UnKnown:
                return(null);

            case MetaObjectInterfaceServiceTypeEnum.Add_Before:
                return(new MetaObjectInterface_Add_Before());

            case MetaObjectInterfaceServiceTypeEnum.Add_After:
                return(new MetaObjectInterface_Add_After());

            case MetaObjectInterfaceServiceTypeEnum.BatchAdd_Before:
                return(new MetaObjectInterface_BatchAdd_Before());

            case MetaObjectInterfaceServiceTypeEnum.BatchAdd_After:
                return(new MetaObjectInterface_BatchAdd_After());

            case MetaObjectInterfaceServiceTypeEnum.Update_Before:
                return(new MetaObjectInterface_Update_Before());

            case MetaObjectInterfaceServiceTypeEnum.Update_After:
                return(new MetaObjectInterface_Update_After());

            case MetaObjectInterfaceServiceTypeEnum.Delete_Before:
                return(new MetaObjectInterface_Delete_Before());

            case MetaObjectInterfaceServiceTypeEnum.Delete_After:
                return(new MetaObjectInterface_Delete_After());

            case MetaObjectInterfaceServiceTypeEnum.QueryCount_Before:
                return(new MetaObjectInterface_QueryCount_Before());

            case MetaObjectInterfaceServiceTypeEnum.QueryCount_After:
                return(new MetaObjectInterface_QueryCount_After());

            case MetaObjectInterfaceServiceTypeEnum.QuerySingle_Before:
                return(new MetaObjectInterface_QuerySingle_Before());

            case MetaObjectInterfaceServiceTypeEnum.QuerySingle_After:
                return(new MetaObjectInterface_QuerySingle_After());

            case MetaObjectInterfaceServiceTypeEnum.QueryList_Before:
                return(new MetaObjectInterface_QueryList_Before());

            case MetaObjectInterfaceServiceTypeEnum.QueryList_After:
                return(new MetaObjectInterface_QueryList_After());

            default:
                break;
            }
            return(null);
        }
Example #2
0
        /// <summary>
        /// 尝试执行服务对应的动态脚本,如果没有,则采用默认值
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="metaObjectInterfaceServiceTypeEnum"></param>
        /// <param name="parameters"></param>
        /// <param name="ifNoScriptReturnDefaultValue">默认值</param>
        /// <returns></returns>
        protected TResult TryExecuteTriggerByServiceType <TResult>(MetaObjectInterfaceServiceTypeEnum metaObjectInterfaceServiceTypeEnum, object[] parameters, TResult ifNoScriptReturnDefaultValue)
        {
            //拿到当前服务类型对应的脚本
            var triggerScript = _queryContext.TriggerScripts?.FirstOrDefault(t => t.MetaObjectInterfaceServiceType == (int)metaObjectInterfaceServiceTypeEnum);

            if (triggerScript == null)
            {
                return(ifNoScriptReturnDefaultValue);
            }

            //执行脚本
            var executeResult = _triggerScriptService.ExecuteTriggerScript <TResult>(triggerScript, parameters);

            if (!executeResult.IsSuccess)
            {
                throw new InvalidOperationException(executeResult.Message);
            }

            return(executeResult.Data);
        }
Example #3
0
 public IActionResult GetDefaultMetaObjectTriggerScript(MetaObjectInterfaceServiceTypeEnum metaObjectInterfaceServiceTypeEnum)
 {
     return(Result <DefaultScriptBase> .Success(data : _triggerScriptService.GetDefaultMetaObjectTriggerScript(metaObjectInterfaceServiceTypeEnum)).ToJsonResult());
 }
        public bool CheckMetaObjectInterfaceServiceTypeExistIfMetaObjectTrigger(Guid metaObjectId, MetaObjectInterfaceServiceTypeEnum metaObjectInterfaceServiceTypeEnum)
        {
            var scriptType            = (int)ScriptTypeEnum.MetaObjectInterfaceTrigger;
            var metaObjectTriggerType = (int)metaObjectInterfaceServiceTypeEnum;

            return(_dbContext.Queryable <TriggerScript>().Where(t => t.MetaObjectId.Equals(metaObjectId) && t.ScriptType.Equals(scriptType) && t.IsDeleted == 0 && t.MetaObjectInterfaceServiceType == metaObjectTriggerType).Any());
        }