Во-первых, я получаю дебеты (не сгруппированные) из базы данных.
var groupingData = await adminService.GetDebitsGrouping();
А затем я группирую дебеты по типам (денежный перевод или невозвращение).
//Grouping non-remittance records
var groupedCustomerList = groupingData
.GroupBy(u => new { u.MemberId, u.CurrencyType, u.AccountToPay, u.SortCodeOrBIC })
.Select(grp => new DebitsGroupingViewModel
{
PaymentOutId = grp.FirstOrDefault().PaymentOutId,
Sector = grp.FirstOrDefault().Sector,
MemberId = grp.FirstOrDefault().MemberId,
MemberName = grp.FirstOrDefault().MemberName,
SupplierName = grp.FirstOrDefault().SupplierName,
AccountToPay = grp.FirstOrDefault().AccountToPay,
SortCodeOrBIC = grp.FirstOrDefault().SortCodeOrBIC,
Transactions = grp.Sum(x => x.Transactions),
TotalToPay = grp.Sum(x => x.TotalToPay),
CurrencyType = grp.FirstOrDefault().CurrencyType,
ClientCurrency = grp.FirstOrDefault().ClientCurrency,
AccountName = grp.FirstOrDefault().AccountName,
SupplierId = grp.FirstOrDefault().SupplierId,
SupplierTypeId = grp.FirstOrDefault().SupplierTypeId,
PayTypeMasterId = grp.FirstOrDefault().PayTypeMasterId,
ClientReferenceNumber = grp.FirstOrDefault().ClientReferenceNumber
})
.Where(x => x.PayTypeMasterId.GetValueOrDefault() != -1)
.ToList();
Но, похоже, предложение WHERE
не работает должным образом.Он также включает в себя некоторые записи о безналичных переводах.
Я также пытался найти в Интернете, прежде чем спрашивать, но не нашел правильную причину / ответ.
ПРИМЕЧАНИЕ : ВсеЗаписи без денежных переводов имеют идентификатор, отличный от -1.