public async Task <Recomendations> GetRecommendations(TVDoc mDoc, BackgroundWorker sender, List <MovieConfiguration> movies) { const string lang = "en"; //todo make work with multi language int total = movies.Count; int current = 0; Task <SearchContainer <SearchMovie> > topRated = Client.GetMovieTopRatedListAsync(lang); Task <SearchContainer <SearchMovie> > trending = Client.GetTrendingMoviesAsync(TimeWindow.Week); await topRated; await trending; Recomendations returnValue = new Recomendations(); foreach (var top in topRated.Result.Results) { File(top); returnValue.AddTopRated(top.Id); } foreach (var top in trending.Result.Results) { File(top); returnValue.AddTrending(top.Id); } foreach (var arg in movies) { try { var related = Client.GetMovieRecommendationsAsync(arg.TmdbCode); var similar = Client.GetMovieSimilarAsync(arg.TmdbCode); Task.WaitAll(related, similar); foreach (var movie in related.Result.Results) { File(movie); returnValue.AddRelated(movie.Id, arg); } foreach (var movie in similar.Result.Results) { File(movie); returnValue.AddSimilar(movie.Id, arg); } sender.ReportProgress(100 * current++ / total, arg.CachedMovie?.Name); } catch { //todo - record error, retry etc } } //var related = movies.Select(arg => (arg.TmdbCode,Client.GetMovieRecommendationsAsync(arg.TmdbCode))).ToList(); //var similar = movies.Select(arg => (arg.TmdbCode,Client.GetMovieSimilarAsync(arg.TmdbCode))).ToList(); //Task.WaitAll(related.Select(tuple => tuple.Item2).ToArray()); //Task.WaitAll(similar.Select(tuple => tuple.Item2).ToArray()); return(returnValue); }
public CarDetailViewModel() { Recomendations.Add(new KVPBase { id = 0, Name = "Рекомендаций для автомобиля нет" }); }
public void SpeedIncrease(ConsoleKeyInfo key) // увеличение скорости { int plusSpeed; if ((key.Modifiers & ConsoleModifiers.Shift) != 0) // проверка : была ли нажата клавиша Shift { plusSpeed = 150; // в переменную записывается 150, если была нажата клавиша Shift } else { plusSpeed = 50; // в переменную записывается 50, если не была нажата клавиша Shift } CurrentSpeed += plusSpeed; // к текущей скорости прибавляется скорость, которая хранится в переменной plusSpeed Recomendations?.Invoke(CurrentSpeed, CurrentHeight); // вызов события, уведомление всех диспетчеров о изменении параметров полета }
public void HeightIncrease(ConsoleKeyInfo key) // увеличение высоты { if (CurrentSpeed == 0) { return; // если скорость равна нулю, то увеличение высоты невозможно } int plusHeight; if ((key.Modifiers & ConsoleModifiers.Shift) != 0) // проверка : была ли нажата клавиша Shift { plusHeight = 500; // в переменную записывается 500, если была нажата клавиша Shift } else { plusHeight = 250; // в переменную записывается 250, если не была нажата клавиша Shift } CurrentHeight += plusHeight; // к текущей высоте прибавляется высота, которая хранится в переменной plusHeight Recomendations?.Invoke(CurrentSpeed, CurrentHeight); // вызов события, уведомление всех диспетчеров о изменении параметров полета }
private void AddRecommendationsFrom(ShowConfiguration arg, Recomendations returnValue) { if (arg.TmdbCode == 0) { string?imdb = arg.CachedShow?.Imdb; if (!imdb.HasValue()) { return; } int?tmdbcode = LookupTvbdIdByImdb(imdb !, false); if (!tmdbcode.HasValue) { return; } arg.TmdbCode = tmdbcode.Value; } Task <SearchContainer <SearchTv> >?related = Client.GetTvShowRecommendationsAsync(arg.TmdbCode); Task <SearchContainer <SearchTv> >?similar = Client.GetTvShowSimilarAsync(arg.TmdbCode); Task.WaitAll(related, similar); if (related.Result != null) { foreach (var s in related.Result.Results) { File(s); returnValue.AddRelated(s.Id, arg); } } if (similar.Result != null) { foreach (var s in similar.Result.Results) { File(s); returnValue.AddSimilar(s.Id, arg); } } }
public async Task <Recomendations> GetRecommendations(TVDoc mDoc, BackgroundWorker sender, List <ShowConfiguration> shows) { string lang = "en"; int total = shows.Count; int current = 0; Task <SearchContainer <SearchTv> > topRated = Client.GetTvShowTopRatedAsync(); Task <SearchContainer <SearchTv> > trending = Client.GetTrendingTvAsync(TimeWindow.Week); await topRated; await trending; Recomendations returnValue = new Recomendations(); foreach (var top in topRated.Result.Results) { File(top); returnValue.AddTopRated(top.Id); } foreach (var top in trending.Result.Results) { File(top); returnValue.AddTrending(top.Id); } foreach (var arg in shows) { try { AddRecommendationsFrom(arg, returnValue); sender.ReportProgress(100 * current++ / total, arg.CachedShow?.Name); } catch { //todo record and resolve /retry errors } } return(returnValue); }
public void HeightReduction(ConsoleKeyInfo key) // уменьшение высоты { if (CurrentSpeed == 0 || CurrentHeight == 0) { return; // если скорость или высота равно нулю, нет смысла отнимать высоту, т.к. она и так нулевая } int minusHeight; if ((key.Modifiers & ConsoleModifiers.Shift) != 0) // проверка : была ли нажата клавиша Shift { minusHeight = 500; // в переменную записывается 500, если была нажата клавиша Shift } else { minusHeight = 250; // в переменную записывается 250, если не была нажата клавиша Shift } CurrentHeight -= minusHeight; // от текущей скорости отнимается скорость, которая хранится в переменной minusHeight if (CurrentSpeed < 0) { CurrentSpeed = 0; // если высота стала отрицательной, то ей присваевается 0 значение } Recomendations?.Invoke(CurrentSpeed, CurrentHeight); // вызов события, уведомление всех диспетчеров о изменении параметров полета }
public void SpeedReduction(ConsoleKeyInfo key) // уменьшение скорости { if (CurrentSpeed == 0) { return; // если скорость равно нулю, нет смысла отнимать, назад самолет не станет двигаться, а лишняя нагрузка на компьютер не нужна } int minusSpeed; if ((key.Modifiers & ConsoleModifiers.Shift) != 0) // проверка : была ли нажата клавиша Shift { minusSpeed = 150; // в переменную записывается 150, если была нажата клавиша Shift } else { minusSpeed = 50; // в переменную записывается 50, если не была нажата клавиша Shift } CurrentSpeed -= minusSpeed; // от текущей скорости отнимается скорость, которая хранится в переменной minusSpeed if (CurrentSpeed < 0) { CurrentSpeed = 0; // если скорость стала отрицательной, то ей присваевается 0 значение } Recomendations?.Invoke(CurrentSpeed, CurrentHeight); // вызов события, уведомление всех диспетчеров о изменении параметров полета }
void Instance_GetCarRecomendationsComplete(List <KVPBase> data) { Recomendations.Clear(); data.ForEach(x => Recomendations.Add(x)); }