From fb922c8395a3c4ebaf50853a23216e1e50646b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20Bu=C4=9Fra=20K=C3=B6sen?= Date: Thu, 31 Oct 2024 16:28:24 +0300 Subject: [PATCH] fix: Null bug fix. --- .../Unit/Operations/DateEqualToTests.cs | 6 +++--- ExpressionBuilder/ExpressionBuilder.csproj | 2 +- ExpressionBuilder/Operations/DateEqualTo.cs | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ExpressionBuilder.Test.NetCore/Unit/Operations/DateEqualToTests.cs b/ExpressionBuilder.Test.NetCore/Unit/Operations/DateEqualToTests.cs index 19eb7be..6d7bcee 100644 --- a/ExpressionBuilder.Test.NetCore/Unit/Operations/DateEqualToTests.cs +++ b/ExpressionBuilder.Test.NetCore/Unit/Operations/DateEqualToTests.cs @@ -28,9 +28,9 @@ public DateEqualToTests() public void GetExpressionDateTimeValueTest(string propertyName, object value, bool useUtcConversionInDateTypes) { Settings.UseUtcConversionInDateTypes = useUtcConversionInDateTypes; - var dateValue = DateTime.Parse(value.ToString()); - var startDate = Settings.UseUtcConversionInDateTypes ? dateValue.ToUniversalTime() : dateValue; - var endDate = startDate.AddDays(1).AddTicks(-1); + DateTime? dateValue = null; + var startDate = Settings.UseUtcConversionInDateTypes ? dateValue : dateValue; + var endDate = startDate.Value.AddDays(1).AddTicks(-1); var operation = new DateEqualTo(); var param = Expression.Parameter(typeof(Person), "x"); var member = Expression.Property(param, propertyName); diff --git a/ExpressionBuilder/ExpressionBuilder.csproj b/ExpressionBuilder/ExpressionBuilder.csproj index 1a5e8a1..2773902 100644 --- a/ExpressionBuilder/ExpressionBuilder.csproj +++ b/ExpressionBuilder/ExpressionBuilder.csproj @@ -18,7 +18,7 @@ 1.0.0.0 true - 1.0.15 + 1.0.16 false Milvasoft.ExpressionBuilder diff --git a/ExpressionBuilder/Operations/DateEqualTo.cs b/ExpressionBuilder/Operations/DateEqualTo.cs index 606c598..88f67f8 100644 --- a/ExpressionBuilder/Operations/DateEqualTo.cs +++ b/ExpressionBuilder/Operations/DateEqualTo.cs @@ -17,8 +17,8 @@ public DateEqualTo() : base(nameof(DateEqualTo), ValueCount, TypeGroup.Date) { } /// public override Expression GetExpression(MemberExpression member, ConstantExpression constant1, ConstantExpression constant2) { - if (!IsDateType(constant1)) - throw new InvalidDataException("DateEqualTo can be used with only date types"); + if (!IsDateType(member)) + throw new InvalidDataException("DateEqualTo can be used with only date types!"); if (constant1.Value == null) return Expression.Equal(member, constant1); @@ -81,8 +81,8 @@ private static (ConstantExpression, ConstantExpression) GetStartAndEndDates(Cons return (startDateExpression, endDateExpression); } - private static bool IsDateType(ConstantExpression constant) => constant.Type == typeof(DateTime) - || constant.Type == typeof(DateTime?) - || constant.Type == typeof(DateTimeOffset) - || constant.Type == typeof(DateTimeOffset?); + private static bool IsDateType(MemberExpression member) => member.Type == typeof(DateTime) + || member.Type == typeof(DateTime?) + || member.Type == typeof(DateTimeOffset) + || member.Type == typeof(DateTimeOffset?); } \ No newline at end of file