public IActionResult Update(DataSourceDTO dataSourceDTO, int Id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessage()));
            }
            else
            {
                IDataResult <DataSource> result = _iDataSourceService.GetById(Id);
                if (result == null)
                {
                    return(BadRequest(result.Message));
                }
                else
                {
                    _iMapper = DataSourceMapping.GetMapper().CreateMapper();
                    DataSource dataSource = _iMapper.Map <DataSourceDTO, DataSource>(dataSourceDTO);

                    IResult updateResult = _iDataSourceService.Update(dataSource);

                    if (updateResult.Success)
                    {
                        return(Ok(updateResult.Message));
                    }
                    return(BadRequest(updateResult.Message));
                }
            }
        }
        private void SetInterfacePropertyNameByPropertyId(ref InterfaceAggregation entity)
        {
            switch ((InterfaceType)entity.InterfaceType)
            {
            case InterfaceType.Add:
            case InterfaceType.BatchAdd:
                entity.FormName = _formService.GetById(entity.FormId)?.Name;
                break;

            case InterfaceType.Update:
                entity.FormName            = _formService.GetById(entity.FormId)?.Name;
                entity.SearchConditionName = searchConditionService.GetById(entity.SearchConditionId)?.Name;
                break;

            case InterfaceType.Delete:
                entity.SearchConditionName = searchConditionService.GetById(entity.SearchConditionId)?.Name;
                break;

            case InterfaceType.SingleObject:
            case InterfaceType.TableList:
                entity.FieldListName       = _fieldListService.GetById(entity.FieldListId)?.Name;
                entity.SearchConditionName = searchConditionService.GetById(entity.SearchConditionId)?.Name;
                break;

            case InterfaceType.Count:
                entity.SearchConditionName = searchConditionService.GetById(entity.SearchConditionId)?.Name;
                break;

            case InterfaceType.JsonDataSource:
            case InterfaceType.ExecutableScriptDataSource:
                entity.DataSourceName = _dataSourceService.GetById(entity.DataSourceId)?.Name;
                break;

            default:
                break;
            }
        }
Пример #3
0
        public object RunDataSourceScript(QueryPiplineContext queryPiplineContext, params object[] parameters)
        {
            var dataSource = _dataSourceService.GetById(queryPiplineContext.DataSourceId);

            if (dataSource != null)
            {
                var dynamicScript = new DynamicScript();
                dynamicScript.Script       = dataSource.Script;
                dynamicScript.Language     = DynamicScriptLanguage.CSharp;
                dynamicScript.FunctionName = FunctionName_DataSource;
                dynamicScript.ProjectName  = queryPiplineContext.ApplicationCode;
                dynamicScript.Parameters   = parameters;
                var executeResult = _scriptEngineProvider.RunScript <object>(dynamicScript);
                if (executeResult.IsSuccess)
                {
                    return(executeResult.Data);
                }
                else
                {
                    throw new Exception(executeResult.Message);
                }
            }
            return(null);
        }
Пример #4
0
 public IActionResult UpdateScriptDataSource(int id)
 {
     return(View(ResponseModel.Success(_dataSourceService.GetById(id))));
 }
Пример #5
0
        public IActionResult Get([FromQuery] QueryArgs queryArgs)
        {
            try
            {
                //Pretreatment create queryContext
                QueryPiplineContext queryContext = PretreatmentAndCreateQueryPiplineContext(queryArgs);

                //查询条件
                FilterDefinition <BsonDocument> filter = FilterDefinition <BsonDocument> .Empty;

                //【SingleObject,TableList,Count】预处理一些逻辑
                if (new InterfaceType[] { InterfaceType.SingleObject, InterfaceType.TableList, InterfaceType.Count }.Contains(queryContext.InterfaceType))
                {
                    //缓存对象下的全部未删除字段信息
                    queryContext.MetaFieldsUnDeleted = metaFieldService.GetEntitiesUnDeletedByMetaObjectId(queryContext.MetaObjectId);
                    //组织查询条件
                    filter = conditionAggregationService.AnalysisConditionToFilterDefinitionByConditionId(queryContext, queryContext.ArgumentsDic);
                    //缓存列字段信息
                    if (queryContext.InterfaceType == InterfaceType.SingleObject || queryContext.InterfaceType == InterfaceType.TableList)
                    {
                        queryContext.FieldListMetaFieldsOfFieldListId = _fieldListMetaFieldService.GetByFieldListId(queryContext.FieldListId);
                    }
                }

                switch (queryContext.InterfaceType)
                {
                case InterfaceType.SingleObject:
                    //缓存某个服务下的全部触发器脚本,包括before和after
                    queryContext.TriggerScriptsOfOneServiceType = _triggerScriptService.GetTriggerScriptsUnDeletedByMetaObjectIdAndServiceType(queryContext.MetaObjectId, (int)ServiceType.Interface_SingleObject);
                    filter = _triggerScriptService.RunTriggerScript(queryContext, TriggerPoint.Before, TriggerScriptService.FunctionName_MetaObject_Interface_SingleObject_Before, filter, CurrentApplicationContext, queryContext.InterfaceCode, filter);
                    var singleObjectComponent = dataAccessService.GetSingleObjectComponent(queryContext, filter);
                    singleObjectComponent = _triggerScriptService.RunTriggerScript(queryContext, TriggerPoint.After, TriggerScriptService.FunctionName_MetaObject_Interface_SingleObject_After, singleObjectComponent, CurrentApplicationContext, queryContext.InterfaceCode, singleObjectComponent);
                    return(JsonResultModel.Success("get single data success", singleObjectComponent));

                case InterfaceType.TableList:
                    //缓存某个服务下的全部触发器脚本,包括before和after
                    queryContext.TriggerScriptsOfOneServiceType = _triggerScriptService.GetTriggerScriptsUnDeletedByMetaObjectIdAndServiceType(queryContext.MetaObjectId, (int)ServiceType.Interface_TableList);
                    filter = _triggerScriptService.RunTriggerScript(queryContext, TriggerPoint.Before, TriggerScriptService.FunctionName_MetaObject_Interface_TableList_Before, filter, CurrentApplicationContext, queryContext.InterfaceCode, filter);
                    var sort = metaFieldService.GetSortDefinitionBySortFields(queryContext, new[] { new SortField {
                                                                                                        Column = "ModifyTime", IsDesc = true
                                                                                                    } });
                    var tableListComponent = dataAccessService.GetTableListComponent(queryContext, filter, queryArgs._pageIndex, queryArgs._pageSize, sort, out int totalCount);
                    tableListComponent = _triggerScriptService.RunTriggerScript(queryContext, TriggerPoint.After, TriggerScriptService.FunctionName_MetaObject_Interface_TableList_After, tableListComponent, CurrentApplicationContext, queryContext.InterfaceCode, tableListComponent);
                    return(JsonResultModel.Success("get data list success", tableListComponent));

                case InterfaceType.Count:
                    //缓存某个服务下的全部触发器脚本,包括before和after
                    queryContext.TriggerScriptsOfOneServiceType = _triggerScriptService.GetTriggerScriptsUnDeletedByMetaObjectIdAndServiceType(queryContext.MetaObjectId, (int)ServiceType.Interface_Count);
                    filter = _triggerScriptService.RunTriggerScript(queryContext, TriggerPoint.Before, TriggerScriptService.FunctionName_MetaObject_Interface_Count_Before, filter, CurrentApplicationContext, queryContext.InterfaceCode, filter);
                    var count = dataAccessService.GetCount(queryContext.TenantId, queryContext.MetaObjectId, filter);
                    count = _triggerScriptService.RunTriggerScript(queryContext, TriggerPoint.After, TriggerScriptService.FunctionName_MetaObject_Interface_Count_After, count, CurrentApplicationContext, queryContext.InterfaceCode, filter, count);
                    return(JsonResultModel.Success("get data count success", count));

                case InterfaceType.JsonDataSource:
                    return(new JsonResult(Newtonsoft.Json.JsonConvert.DeserializeObject(_dataSourceService.GetById(queryContext.DataSourceId).Script)));

                case InterfaceType.ExecutableScriptDataSource:
                    object triggerScriptDataSourceResult = _triggerScriptService.RunDataSourceScript(queryContext, CurrentApplicationContext, queryContext.InterfaceCode, queryContext.ArgumentsDic);
                    return(JsonResultModel.Success("get trigger script result success", triggerScriptDataSourceResult));

                default:
                    break;
                }

                return(JsonResultModel.Success("success,no data"));
            }
            catch (ArgumentNullException argNullEx)
            {
                return(JsonResultModel.Error(argNullEx.Message));
            }
            catch (ArgumentException argEx)
            {
                return(JsonResultModel.Error(argEx.Message));
            }
            catch (Exception ex)
            {
                return(JsonResultModel.Error(ex.Message));
            }
        }