Нашел "багу" в коде, которую никак не могу понять как решить. Возможно, очевидно где есть проблема - не могу дебагером даже понять чего перетирает всё значения первая запись.
var referenceFields = await this.bookingsDbDataProvider.GetBookingReferenceFieldsByBookingIds(request.Select(x => x.BookingId).ToArray());
foreach (var requestItem in request)
{
var customerId = requestItem.CustomerId;
var localReferenceFields = customerReferenceFields.Where(x => x.CustomerId == customerId).ToList();
foreach (var localReferenceField in localReferenceFields)
{
var refItemList = referenceFields.Where(x => x.Value.ClientReferenceFieldId == localReferenceField.Id);
if (refItemList.Any())
{
var item = new KeyValuePair<long, BookingReferenceField>(
requestItem.BookingId,
new BookingReferenceField
{
ReferenceFieldName = refItemList.First().Value.ReferenceFieldName,
Value = refItemList.First().Value.Value
});
responseList.Add(item);
}
....
Request => 3 записи. То есть, 1й цикл проходит 3 раза.
В localReferenceFields => он грубо говря всегда одно и тоже значение[8 записей].
В referenceFields => приходит значения под отперделенный букинг
К примеру, в referenceFields [0] => [0] => ref1, ref2,ref3....; referenceFields [1] => firstRef, secondRef....; и referenceFields [2] = one, two, three....
В значение refItemList => приходит при первой итерации первые refFields для кадого букинга.
Сейчас проблема в том, что когда возвращаю responseList, у меня все эти букинги отображаются только лишь по первому referenceFields [0]. То есть, он дублируется на все отсльные букинги(записи).
Есть очущение, что вот в KeyValuePair не правильно идет выборка.
Я понимаю, что возможно, сложно понять в чем проблема и где. Но, я попытался поянсить свою проблему. Если что, могу уточнить! Спасибо!