@lucky4

Как вывести значения отдельно для всех?

Нашел "багу" в коде, которую никак не могу понять как решить. Возможно, очевидно где есть проблема - не могу дебагером даже понять чего перетирает всё значения первая запись.

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 не правильно идет выборка.636fe3ded34a0546575072.png

Я понимаю, что возможно, сложно понять в чем проблема и где. Но, я попытался поянсить свою проблему. Если что, могу уточнить! Спасибо!
  • Вопрос задан
  • 23 просмотра
Решения вопроса 1
@oleg_ods
Посмотри внимательно на эту строку =)
ReferenceFieldName = refItemList.First().Value.ReferenceFieldName


И на сколько я понял нужен еще один foreach по коллекции refItemList
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы