コード例 #1
0
        //sample: filtered list method for the Workflow General/Process Instance SmartObject
        static void ExecuteFilteredListMethodWCF()
        {
            Console.WriteLine("Executing filtered List method via WCF (Active instances only)");
            //set up the service client
            WorkflowGeneralReport_WCFService.Process_InstanceSvcClient processInstanceSvcClient = new Process_InstanceSvcClient();
            processInstanceSvcClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;

            //set up a filter object (you could also constrcut the filter directly in XML if you prefer)
            Equals             statusEquals      = new Equals();
            PropertyExpression statusPropertyExp = new PropertyExpression("Status", PropertyType.Text);
            ValueExpression    statusValueExp    = new ValueExpression("Active", PropertyType.Text);

            statusEquals.Left  = statusPropertyExp;
            statusEquals.Right = statusValueExp;

            // Serialize the filter to XML
            FilterExp   filterExpression = new FilterExp(statusEquals);
            XmlDocument filterXml        = filterExpression.GetFilterXml();
            string      filterXmlString  = filterXml.InnerXml;

            //call the filter method, passing in the filter XML
            WorkflowGeneralReport_WCFService.Process_Instance[] processInstanceList = processInstanceSvcClient.Process_InstanceSvc_List_Filtered(filterXmlString);
            foreach (Process_Instance processInstance in processInstanceList)
            {
                Console.WriteLine("Folio: " + processInstance.Folio + " | ProcInstID: " + processInstance.ProcessInstanceID.ToString());
            }
            Console.WriteLine("Completed execution of filtered List method via WCF (Active instances only)");
            Console.ReadLine();
        }
コード例 #2
0
        protected virtual Delegate Visit(FilterExp filterExp, Type newRootType)
        {
            var paramname = filterExp.fieldExp.BaseToken.Source;

            context.Set(newRootType, paramname);
            rootParam.Push(Expression.Parameter(newRootType, paramname));
            var filter = Visit(filterExp.body);

            context.Get();
            rootParam.Pop();
            return(filter.Compile());
        }
コード例 #3
0
        private void ConvertFilters(Report report)
        {
            foreach (var condition in Base.Wheres.Select().RowCast <GIWhere>()
                     .Where(c => c.IsActive == true && !String.IsNullOrEmpty(c.DataFieldName) && !String.IsNullOrEmpty(c.Condition)))
            {
                var reportCondition = new FilterExp(ReplaceParameters(NormalizeFieldName(condition.DataFieldName)),
                                                    GetFilterCondition(condition.Condition))
                {
                    OpenBraces  = condition.OpenBrackets?.Trim()?.Length ?? 0,
                    CloseBraces = condition.CloseBrackets?.Trim()?.Length ?? 0,
                    Operator    = String.Equals(condition.Operation?.Trim(), "O", StringComparison.OrdinalIgnoreCase)
                                                ? FilterOperator.Or
                                                : FilterOperator.And,
                    Value  = ReplaceParameters(condition.Value1),
                    Value2 = ReplaceParameters(condition.Value2)
                };

                report.Filters.Add(reportCondition);
            }
        }
コード例 #4
0
 protected virtual void Visit(FilterExp filterExp)
 {
     Visit(filterExp.body);
 }
コード例 #5
0
 public URMFilter(FilterExp filter)
     : base(filter)
 {
     this.filter = new Dictionary<string, string>();
 }
コード例 #6
0
 public URMFilter(FilterExp filter)
     : base(filter)
 {
     this.filter = new Dictionary <string, string>();
 }