Reputation: 399
Hi I'm trying to filter my result with a date.
What I tried so far:
var lastYear = (DateTime.Now.Year) - 1;
var salesLastYear = _documentService.GetDocuments(
d => d.DocumentTypeId == saleDocumentId &&
d.EffectiveOnUtc.Contains(lastYear))
.Select(d => d.Id).ToList();
var salesLastYear = _documentService.GetDocuments(
d => d.DocumentTypeId == saleDocumentId &&
(d.EffectiveOnUtc.Year == lastYear))
.Select(d => d.Id).ToList();
Both gave no errors in visual studio, but did raise an exeption during execution. Also tried to convert both the values to a string, but that also failed.
Upvotes: 0
Views: 51
Reputation: 31198
Working on the assumption that your EffectiveOnUtc
is a DateTime
, and you want to filter to records within the previous calendar year:
int lastYear = DateTime.Now.Year - 1;
DateTime minDate = new DateTime(lastYear, 1, 1);
DateTime maxDate = minDate.AddYears(1);
var salesLastYear = _documentService.GetDocuments(
d => d.DocumentTypeId == saleDocumentId
&& d.EffectiveOnUtc >= minDate
&& d.EffectiveOnUtc < maxDate)
Select(d => d.Id).ToList();
Upvotes: 2