diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/BooleanFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/BooleanFieldTypeEditor.cs index a905b7b3d..02ff2f9d9 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/BooleanFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/BooleanFieldTypeEditor.cs @@ -25,7 +25,9 @@ namespace Orchard.Projections.FieldTypeEditors { } public Action GetFilterPredicate(dynamic formState) { - return BooleanFilterForm.GetFilterPredicate(formState, ((QueryVersionScopeOptions)formState.VersionScope).ToVersionedFieldIndexColumnName()); + return BooleanFilterForm.GetFilterPredicate( + formState, + this.GetQueryVersionScope((string)formState.VersionScope).ToVersionedFieldIndexColumnName()); } public LocalizedString DisplayFilter(string fieldName, string storageName, dynamic formState) { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DateTimeFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DateTimeFieldTypeEditor.cs index c8802ab18..b24134d14 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DateTimeFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DateTimeFieldTypeEditor.cs @@ -29,7 +29,11 @@ namespace Orchard.Projections.FieldTypeEditors { } public Action GetFilterPredicate(dynamic formState) { - return DateTimeFilterForm.GetFilterPredicate(formState, ((QueryVersionScopeOptions)formState.VersionScope).ToVersionedFieldIndexColumnName(), _clock.UtcNow, true); + return DateTimeFilterForm.GetFilterPredicate( + formState, + this.GetQueryVersionScope((string)formState.VersionScope).ToVersionedFieldIndexColumnName(), + _clock.UtcNow, + true); } public LocalizedString DisplayFilter(string fieldName, string storageName, dynamic formState) { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DecimalFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DecimalFieldTypeEditor.cs index 5185b1223..290d81f3c 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DecimalFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/DecimalFieldTypeEditor.cs @@ -27,7 +27,9 @@ namespace Orchard.Projections.FieldTypeEditors { } public Action GetFilterPredicate(dynamic formState) { - return NumericFilterForm.GetFilterPredicate(formState, ((QueryVersionScopeOptions)formState.VersionScope).ToVersionedFieldIndexColumnName()); + return NumericFilterForm.GetFilterPredicate( + formState, + this.GetQueryVersionScope((string)formState.VersionScope).ToVersionedFieldIndexColumnName()); } public LocalizedString DisplayFilter(string fieldName, string storageName, dynamic formState) { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/FloatFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/FloatFieldTypeEditor.cs index 2d8161b2c..58c0d4885 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/FloatFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/FloatFieldTypeEditor.cs @@ -28,7 +28,9 @@ namespace Orchard.Projections.FieldTypeEditors { } public Action GetFilterPredicate(dynamic formState) { - return NumericFilterForm.GetFilterPredicate(formState, ((QueryVersionScopeOptions)formState.VersionScope).ToVersionedFieldIndexColumnName()); + return NumericFilterForm.GetFilterPredicate( + formState, + this.GetQueryVersionScope((string)formState.VersionScope).ToVersionedFieldIndexColumnName()); } public LocalizedString DisplayFilter(string fieldName, string storageName, dynamic formState) { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs index 723d098d8..4668a77ca 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs @@ -33,7 +33,15 @@ namespace Orchard.Projections.FieldTypeEditors { /// Defines the relationship to the corresponding field indexing table for this editor /// Action GetFilterRelationship(string aliasName); - } + + public static class FieldTypeEditorExtensions { + public static QueryVersionScopeOptions GetQueryVersionScope(this IFieldTypeEditor editor, string value) { + if (!Enum.TryParse(value, out QueryVersionScopeOptions versionScope)) + versionScope = QueryVersionScopeOptions.Published; + + return versionScope; + } + } } diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IntegerFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IntegerFieldTypeEditor.cs index 077ac3859..aafe5a8b0 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IntegerFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IntegerFieldTypeEditor.cs @@ -34,7 +34,9 @@ namespace Orchard.Projections.FieldTypeEditors { } public Action GetFilterPredicate(dynamic formState) { - return NumericFilterForm.GetFilterPredicate(formState, ((QueryVersionScopeOptions)formState.VersionScope).ToVersionedFieldIndexColumnName()); + return NumericFilterForm.GetFilterPredicate( + formState, + this.GetQueryVersionScope((string)formState.VersionScope).ToVersionedFieldIndexColumnName()); } public LocalizedString DisplayFilter(string fieldName, string storageName, dynamic formState) { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/StringFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/StringFieldTypeEditor.cs index 0b6a5677d..db9262954 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/StringFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/StringFieldTypeEditor.cs @@ -25,7 +25,9 @@ namespace Orchard.Projections.FieldTypeEditors { } public Action GetFilterPredicate(dynamic formState) { - return StringFilterForm.GetFilterPredicate(formState, ((QueryVersionScopeOptions)formState.VersionScope).ToVersionedFieldIndexColumnName()); + return StringFilterForm.GetFilterPredicate( + formState, + this.GetQueryVersionScope((string)formState.VersionScope).ToVersionedFieldIndexColumnName()); } public LocalizedString DisplayFilter(string fieldName, string storageName, dynamic formState) {