void analysisEditor_DataSourceCreating(object sender, DataSourceCreatingEventArgs e) { CriteriaOperator userCriteria = null; if (e.AnalysisInfo != null) { if (!string.IsNullOrEmpty(e.AnalysisInfo.Criteria)) { using (ObjectSpace.CreateParseCriteriaScope()) { userCriteria = CriteriaWrapper.ParseCriteriaWithReadOnlyParameters(e.AnalysisInfo.Criteria, e.AnalysisInfo.DataType); } } var analysisEditorBase = (AnalysisEditorBase)sender; var criteriaOperatorArgs = new CriteriaOperatorArgs(analysisEditorBase, e.AnalysisInfo); var analysisEditorArgs = new AnalysisEditorArgs(analysisEditorBase, e.AnalysisInfo); InvokeDatasourceCreating(analysisEditorArgs); InvokeApplyingCollectionCriteria(criteriaOperatorArgs); e.DataSource = analysisEditorArgs.Handled ? analysisEditorArgs.DataSource : ObjectSpace.CreateCollection(e.AnalysisInfo.DataType, userCriteria & criteriaOperatorArgs.Criteria & _criteriaOperator); e.Handled = true; InvokeDataSourceCreated(analysisEditorArgs); } }
object GetObjectKey(ViewShortcut shortcut, Type type, IObjectSpace objectSpace) { var objectKey = GetObjectKey(objectSpace, type, shortcut); if (objectKey != null) { return(objectKey); } return(shortcut.ObjectKey.StartsWith("@") ? ParametersFactory.CreateParameter(shortcut.ObjectKey.Substring(1)).CurrentValue : CriteriaWrapper.ParseCriteriaWithReadOnlyParameters(shortcut.ObjectKey, type)); }
private bool?IsObjectFitForCriteria(IModelDatabaseMaintanance databaseMaintanance, IObjectSpace objectSpace) { var user = objectSpace.GetObject(SecuritySystem.CurrentUser); CriteriaOperator criteriaOperator; var typeInfo = databaseMaintanance.UserModelClass?.TypeInfo; var targetObjectType = typeInfo?.Type; using (objectSpace.CreateParseCriteriaScope()){ criteriaOperator = CriteriaWrapper.ParseCriteriaWithReadOnlyParameters(databaseMaintanance.UserCriteria, targetObjectType); } var fit = objectSpace.GetExpressionEvaluator(new EvaluatorContextDescriptorDefault(typeInfo == null?typeof(object):targetObjectType), criteriaOperator).Fit(typeInfo == null?new object():user); return(fit); }
public override CriteriaOperator GetCriteria() { return(CriteriaWrapper.ParseCriteriaWithReadOnlyParameters( "[Oid] = '@CurrentCompanyOid'", ReportDataType)); }