Я разрабатываю личный интерфейс для своего медиа-сервера, который предполагает использование Entity Framework Core, и добавляю фильмы с моего медиа-сервера в базу данных.Пока у меня все работает так, как я хочу, где я могу вручную искать фильм, искать в TMDB с помощью API и сохранять фильмы / студии в моей БД.Однако я хочу выполнить действие под названием «Очистить», которое, ну, в общем, «очистит» мой медиасервер от списка фильмов, проверит, существуют ли они в моей БД, и, если нет, произведет поиск этих фильмов на TMDB исохранить их автоматически.У меня также это работает ... вроде.
Например, у меня будет список, который будет проходить по циклу в контроллере 'Scrape', и этот список представляет собой список фильмов, которые нужнодля поиска, так:
- Мстители: Бесконечная война
- Мстители
- Трон
- Гарри Поттер
Я запускаю список через цикл foreach (), и для каждого элемента я прохожу процедуру поиска, и я могу проверить, сколько результатов есть.Теперь я столкнулся с проблемой.Если длина результата больше одного, мне нужно, чтобы пользователь мог просматривать эти результаты в середине цикла, выбрать фильм, а затем добавить выбранный фильм.Я могу циклически проходить через свой Список и добавлять все фильмы, которые имеют только один результат, но это те, которые имеют несколько.Например, «Tron» будет возвращать более одного результата, и пользователь должен определить, какую версию Tron он хочет добавить.
Итак, это контроллер:
List<string> items = NetworkScrape.ScrapeFolders();
foreach (var item in items)
{
//Results from the movie search
SearchContainer<SearchMovie> Results = client.SearchMovieAsync(item).Result;
if (Results.Results.Count == 0)
{
Console.WriteLine(item + " could not be found.");
continue;
}
if (Results.Results.Count == 1)
{
Console.WriteLine(item + " only has one entry, auto add.");
MoviesSelectViewModel vm = new MoviesSelectViewModel
{
TMDBid = Results.Results[0].Id
};
//Add the movie to the DB
await Create(vm);
continue;
}
if (Results.Results.Count > 1)
{
Console.WriteLine(item + " has more than one entry, manual input required.");
//This is where the user would select the film
continue;
}
}
У меня есть все WriteLine только для тестирования, а «items» - это список фильмов для поиска.В последнем случае использования внизу, если результаты больше 1, я хочу передать «Results.Results» в представление, где пользователю отображается таблица результатов поиска, в которой они могут выбирать, но я неЯ не знаю, как заставить цикл foreach ожидать этого результата из представления, и даже если бы я мог остановить цикл, я точно не знаю, как я могу сообщить циклу, когда можно продолжить.Я пытался подождать, но вы не можете сделать это с помощью View, поэтому я действительно потерян.
Извините за большой, длинный пост, но я просто подумал, что предоставлю как можно больше информации, чтобы помочь проиллюстрироватьмоя проблема, потому что я полностью потерянБуду признателен за любую помощь, или даже лучший способ сделать это.