Example #1
0
        private static DateTime GetDateToValue(DateTime?dateTo, DateRangeAdjustment rangeAdjustment)
        {
            var value = dateTo.GetValueOrDefault();

            return(rangeAdjustment == DateRangeAdjustment.Inclusive ? new DateTime(value.Year, value.Month, value.Day, 23, 59, 59, 999, value.Kind) : value);
        }
Example #2
0
        public static Sql FilterByDateRange(this Sql sql, string columnName, IDateRangeFilter filter, DateRangeAdjustment rangeAdjustment = DateRangeAdjustment.None)
        {
            if (filter == null)
            {
                return(sql);
            }

            if (filter.DateFrom.HasValue && filter.DateTo.HasValue)
            {
                return(sql.Where($"{columnName} BETWEEN @0 AND @1", GetDateFromValue(filter.DateFrom, rangeAdjustment), GetDateToValue(filter.DateTo, rangeAdjustment)));
            }

            if (filter.DateFrom.HasValue)
            {
                sql = sql.Where($"{columnName} >= @0", GetDateFromValue(filter.DateFrom, rangeAdjustment));
            }

            if (filter.DateTo.HasValue)
            {
                sql = sql.Where($"{columnName} <= @0", GetDateToValue(filter.DateTo, rangeAdjustment));
            }

            return(sql);
        }