public EventAdvancedIndexProvisionRuntime ToRuntime()
 {
     var runtime = new EventAdvancedIndexProvisionRuntime();
     runtime.IndexExpressionTexts =
         ExprNodeUtilityPrint.ToExpressionStringMinPrecedenceAsArray(IndexDesc.IndexedExpressions);
     runtime.IndexProperties = GetPropertiesPerExpressionExpectSingle(IndexDesc.IndexedExpressions);
     runtime.IndexExpressionsOpt = IndexDesc.IndexedExpressions;
     runtime.IsIndexExpressionsAllProps = IsExpressionsAllPropsOnly(IndexDesc.IndexedExpressions);
     runtime.Factory = Factory.RuntimeFactory;
     runtime.ParameterExpressionTexts = ExprNodeUtilityPrint.ToExpressionStringsMinPrecedence(Parameters);
     runtime.ParameterEvaluators = GetEvaluatorsNoCompile(Parameters);
     runtime.ParameterExpressionsOpt = Parameters;
     runtime.ConfigStatement = ConfigStatement.ToRuntime();
     runtime.IndexTypeName = IndexDesc.IndexTypeName;
     return runtime;
 }
 public EventTableFactoryCustomIndex(
     string indexName,
     int indexedStreamNum,
     EventType eventType,
     bool unique,
     EventAdvancedIndexProvisionRuntime advancedIndexProvisionDesc)
 {
     this.eventType = eventType;
     this.advancedIndexProvisionDesc = advancedIndexProvisionDesc;
     this.organization = new EventTableOrganization(
         indexName,
         unique,
         false,
         indexedStreamNum,
         advancedIndexProvisionDesc.IndexExpressionTexts,
         EventTableOrganizationType.APPLICATION);
 }