У меня есть две обнуляемые даты, и я бы хотел заказать количество дней между ними, если у двух из них есть значение, иначе выкинуть их в начале или в конце
Вот моя текущая идея, которая отлично переводится на SQL, но как я могу ее улучшить?
public static IQueryable<Order> ApplyOrderBy(this IQueryable<Order> input, Rules rules)
{
switch (rules.OrderBy)
{
case "Date":
{
input = rules.Direction == "asc"
?
input.OrderBy
(
x =>
(x.SentDate == null ? new DateTime(1990,1,1).Date : x.SentDate.Value.Date)
-
(x.ReceivedDate == null ? new DateTime.Now(1990,1,1).Date : x.ReceivedDate.Value.Date)
)
:
input.OrderByDescending
(
x =>
(x.SentDate == null ? new DateTime(2990,1,1).Date : x.SentDate.Value.Date)
-
(x.ReceivedDate == null ? new DateTime.Now(1990,1,1).Date : x.ReceivedDate.Value.Date)
);
break;
}
}
}