private async Task <MovieFullInfoViewModel> ProcessSingleMovie(FullMovieInfo movie) { var viewMovie = Mapper.Map <SearchMovieViewModel>(movie); var user = await GetUser(); var digitalReleaseDate = viewMovie.ReleaseDates?.Results?.FirstOrDefault(x => x.IsoCode == user.StreamingCountry); if (digitalReleaseDate == null) { digitalReleaseDate = viewMovie.ReleaseDates?.Results?.FirstOrDefault(x => x.IsoCode == "US"); } viewMovie.DigitalReleaseDate = digitalReleaseDate?.ReleaseDate?.FirstOrDefault(x => x.Type == ReleaseDateType.Digital)?.ReleaseDate; await RunSearchRules(viewMovie); // This requires the rules to be run first to populate the RequestId property await CheckForSubscription(viewMovie); var mapped = Mapper.Map <MovieFullInfoViewModel>(movie); mapped.Available = viewMovie.Available; mapped.Approved = viewMovie.Approved; mapped.RequestId = viewMovie.RequestId; mapped.Requested = viewMovie.Requested; mapped.PlexUrl = viewMovie.PlexUrl; mapped.EmbyUrl = viewMovie.EmbyUrl; mapped.JellyfinUrl = viewMovie.JellyfinUrl; mapped.Subscribed = viewMovie.Subscribed; mapped.ShowSubscribe = viewMovie.ShowSubscribe; mapped.DigitalReleaseDate = viewMovie.DigitalReleaseDate; return(mapped); }
private async Task <MovieFullInfoViewModel> ProcessSingleMovie(FullMovieInfo movie) { var viewMovie = Mapper.Map <SearchMovieViewModel>(movie); await RunSearchRules(viewMovie); // This requires the rules to be run first to populate the RequestId property await CheckForSubscription(viewMovie); var mapped = Mapper.Map <MovieFullInfoViewModel>(movie); mapped.Available = viewMovie.Available; mapped.Approved = viewMovie.Approved; mapped.RequestId = viewMovie.RequestId; mapped.Requested = viewMovie.Requested; mapped.PlexUrl = viewMovie.PlexUrl; mapped.EmbyUrl = viewMovie.EmbyUrl; mapped.JellyfinUrl = viewMovie.JellyfinUrl; mapped.Subscribed = viewMovie.Subscribed; mapped.ShowSubscribe = viewMovie.ShowSubscribe; return(mapped); }