0

基本的に私が達成しようとしていることは次のとおりです。

  • from dateが入力された場合、date> = from date
  • 日付が入力されている場合、日付<=日付
  • 両方が入力された場合、日付>=日付と日付<=から日付まで

したがって、私のページには、ユーザーが日付と日付を選択できる2つの日付ボックスがあります。問題は、たとえば以下を入力すると、実際には2012年5月4日よりも大きい日付のアイテムが表示されることです。これは発生しないはずです。私の開始日は機能しているようですが、現在までのフィルターは常に現在までよりも大きい結果を返すため、機能しません。

if (finalApprovedFromDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(cl => cl.claimStatus.Any(cs => cs.createdDate >= DateTime.Parse("05/03/2012"))).ToList();
}
if (finalApprovedToDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(cl => cl.claimStatus.Any(cs => cs.createdDate <= DateTime.Parse("05/04/2012"))).ToList();
}

何か案は?

4

1 に答える 1

0

コメントごとのクエリの変更。これにより、statusId5のクレームステータスが5/3から5/4の間のクレームのみが返されます。

if (finalApprovedFromDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(
        cl => cl.claimStatus.Any(
            cs => cs.statusId == 5 cs.createdDate >= DateTime.Parse("05/03/2012")
        )
    ).ToList();
}
if (finalApprovedToDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(
        cl => cl.claimStatus.Any(
            cs => cs.statusId == 5 && cs.createdDate <= DateTime.Parse("05/04/2012")
        )
    ).ToList();
}
于 2012-05-08T04:35:54.733 に答える