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; } }
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); }
public IActionResult UpdateScriptDataSource(int id) { return(View(ResponseModel.Success(_dataSourceService.GetById(id)))); }
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)); } }