Member 13958707 Ответов: 1

Как отобразить все сохраненные изображения по его url-адресу?


Я хочу получить имя файла из базы данных и объединить имя файла для пути к изображению из логики и отобразить несколько изображений, сохраненных в базе данных с одним и тем же идентификатором.Я реализовал эту логику, но мне удалось получить только последнее вставленное имя файла.

Что я уже пробовал:

public GetHelpDeskByIdResponse GetHelpDeskById(GetHelpDeskByIdRequest request)
       {
           var result = _helpDeskRepository.GetHelpDeskById(request.Id, request.AgentId);
           if (result == null) return null;

           var type = _helpDeskRepository.GetSupportTypes(request.AgentId);
           var status = _helpDeskRepository.GetAllSupportStatus(request.AgentId);
           var attachment = _helpDeskRepository.GetAttachmentById(request.Id);

           var response = result.MapToSingle<GetHelpDeskByIdResponse, Data.Entity.HelpDesk>();


           if (attachment != null)
           {

                   foreach (var item in attachment)
                   {
                       response.FileUrl = string.Format("{0}/HelpDesk/{1}", _commonLogic.GetAgentDocumentRepositoryUrl(result.AgentId),item.FileName);
                   }


               if ((type.Any(c => c.Id == response.Type)) && (status.Any(c => c.Id == response.Status)))
               {
                   response.TypeName = type.First(c => c.Id == response.Type).TypeName;
                   response.StatusName = status.First(c => c.Id == response.Status).StatusName;
               }
               return response;
           }
           else
           {

               if ((type.Any(c => c.Id == response.Type)) && (status.Any(c => c.Id == response.Status)))
               {
                   response.TypeName = type.First(c => c.Id == response.Type).TypeName;
                   response.StatusName = status.First(c => c.Id == response.Status).StatusName;
               }
           }
           return response;
       }

F-ES Sitecore

Ваш цикл перезаписывает ответ.FileUrl таким образом, предыдущая версия становится последней версией. Вы заменяете текст, а не объединяете его. Если ваш ответ может содержать несколько файлов, то измените тип возвращаемой функции на List<GetHelpDeskByIdResponse> и ведите список ответов, добавляя новый для каждого элемента цикла. Или что-то подобное, что соответствует вашим потребностям.

1 Ответов

Рейтинг:
0

Richard MacCutchan

foreach (var item in attachment)
{
    response.FileUrl = string.Format("{0}/HelpDesk/{1}", _commonLogic.GetAgentDocumentRepositoryUrl(result.AgentId),item.FileName);
}

Вы повторяете список элементов и устанавливаете response.FileUrl каждый раз с деталями предмета. Итак, в конце цикла response.FileUrl будет содержать последний пункт в списке.