Я сгруппировал данные, которые теперь выглядят следующим образом:
<tr>
<th>Id</th>
<th>Type</th>
<th>Amount</th>
</tr>
<tr>
<td>1</td>
<td>Delivered</td>
<td>100</td>
</tr>
<tr>
<td>2</td>
<td>Sent</td>
<td>150</td>
</tr>
<tr>
<td>3</td>
<td>Received</td>
<td>110</td>
</tr>
<tr>
<td>4</td>
<td>Delivered</td>
<td>79</td>
</tr>
<tr>
<td>5</td>
<td>Sent</td>
<td>30</td>
</tr>
Вот код, как я получаю это:
var query = await _context.product.AsNoTracking().Where(x => (x.productDate.Date >= DateTime.Now.AddDays(-30) && x.productDate.Date <= DateTime.Now.Date).ToListAsync();
if (query == null) return null;
var data = query.GroupBy(x => x.productStatusId)
.Select(product => new productsChartDTO
{
Type =
(
product.FirstOrDefault().productStatusId == (int)Enums.productStatus.Delivered || product.FirstOrDefault().productStatusId == (int)Enums.productStatus.InProcess ? "Delivered" :
product.FirstOrDefault().productStatusId == (int)Enums.productStatus.Sent || product.FirstOrDefault().productStatusId == (int)Enums.productStatus.InProcess ? "Sent" :
product.FirstOrDefault().productStatusId == (int)Enums.productStatus.Received ? "Received" : "Unknown"
),
Amount = product.Sum(x => x.Amount)
});
return data;
Как можно видеть парней, даже если ягруппировка по productStatusId
, если productStatus
в 'InProcess
' или в 'Delivered
', будет тип "Delivered
", поэтому после этого запроса я вижу результаты с типом "Delivered
"дважды, как я написал в примере.
Я думаю, что после этого выполнения я должен снова сгруппировать данные?
Как мне этого добиться?
Можно ли продолжить группировку по этому запросу или должен быть другой, который бы снова группировал?
Спасибо
Приветствия