public ViewResult All()
{
var categoryWithEmptyTag =
new CategoryViewModel
{
Tag = new TagViewModel { Name = "" },
Inquiries = repository
.Query<Inquiry>(x=>x.Client,x=>x.Tags)
.Where(x => !x.Tags.Any() && x.ReferenceDate.HasValue)
.Select(inquiry => new TaggedInquiryViewModel
{
Id = inquiry.Id,
FirstName = inquiry.Client.FirstName,
LastName = inquiry.Client.LastName,
Subject = inquiry.Subject
})
.ToList()
};
var categories = repository
.Query<Tag>()
.Where(x => x.Inquiries.Any(z => z.ReferenceDate.HasValue))
.Select(tag => new CategoryViewModel
{
Tag = new TagViewModel
{
Name = tag.Name,
},
Inquiries = tag.Inquiries
.Where(x => x.ReferenceDate.HasValue)
.Select(x => new TaggedInquiryViewModel
{
Id = x.Id,
FirstName = x.Client.FirstName,
LastName = x.Client.LastName,
Subject = x.Subject
})
})
.ToList();
if (categoryWithEmptyTag.Inquiries.Any())
{
categories.Add(categoryWithEmptyTag);
}
return View(new AllInquiriesViewModel
{
InquiryDetailsUrl = Url.Action("Details", "Inquiries"),
Categories = categories
});
}