OrderBy разница между двумя обнуляемыми датами - PullRequest
0 голосов
/ 09 мая 2019

У меня есть две обнуляемые даты, и я бы хотел заказать количество дней между ними, если у двух из них есть значение, иначе выкинуть их в начале или в конце

Вот моя текущая идея, которая отлично переводится на 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;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...