コード例 #1
0
        private void ApplyFilterParameterByDateQueryFunction(DateTime currentDate, EntitySchemaQueryFilterCollection filters)
        {
            EntitySchemaQueryFilter     firstFilter      = (EntitySchemaQueryFilter)filters[0];
            EntitySchemaQueryFilter     secondFilter     = (EntitySchemaQueryFilter)filters[1];
            EntitySchemaQueryExpression firstExpression  = firstFilter.RightExpressions[0];
            EntitySchemaQueryExpression secondExpression = secondFilter.RightExpressions[0];
            var firstFunction  = firstExpression.Function as EntitySchemaBaseCurrentDateQueryFunction;
            var secondFunction = secondExpression.Function as EntitySchemaBaseCurrentDateQueryFunction;

            if (firstExpression.Function.GetType() == typeof(EntitySchemaCurrentDateQueryFunction))
            {
                SetRigthExpression(firstFilter, DateTimeUtilities.DateTimeToDate(currentDate, firstFunction.Offset));
                SetRigthExpression(secondFilter, DateTimeUtilities.DateTimeToDate(currentDate, secondFunction.Offset));
            }
            else if (firstExpression.Function.GetType() == typeof(EntitySchemaStartOfCurrentWeekQueryFunction))
            {
                SetRigthExpression(firstFilter, DateTimeUtilities.StartOfWeek(currentDate, firstFunction.Offset));
                SetRigthExpression(secondFilter, DateTimeUtilities.StartOfWeek(currentDate, secondFunction.Offset));
            }
            else if (firstExpression.Function.GetType() == typeof(EntitySchemaStartOfCurrentMonthQueryFunction))
            {
                SetRigthExpression(firstFilter, DateTimeUtilities.StartOfMonth(currentDate, firstFunction.Offset));
                SetRigthExpression(secondFilter, DateTimeUtilities.StartOfMonth(currentDate, secondFunction.Offset));
            }
            else if (firstExpression.Function.GetType() == typeof(EntitySchemaStartOfCurrentQuarterQueryFunction))
            {
                SetRigthExpression(firstFilter, DateTimeUtilities.StartOfQuarter(currentDate, firstFunction.Offset));
                SetRigthExpression(secondFilter, DateTimeUtilities.StartOfQuarter(currentDate, secondFunction.Offset));
            }
            else if (firstExpression.Function.GetType() == typeof(EntitySchemaStartOfCurrentHalfYearQueryFunction))
            {
                SetRigthExpression(firstFilter, DateTimeUtilities.StartOfHalfYear(currentDate, firstFunction.Offset));
                SetRigthExpression(secondFilter, DateTimeUtilities.StartOfHalfYear(currentDate, secondFunction.Offset));
            }
            else if (firstExpression.Function.GetType() == typeof(EntitySchemaStartOfCurrentYearQueryFunction))
            {
                SetRigthExpression(firstFilter, DateTimeUtilities.StartOfYear(currentDate, firstFunction.Offset));
                SetRigthExpression(secondFilter, DateTimeUtilities.StartOfYear(currentDate, secondFunction.Offset));
            }
        }