public void Execute(object parameter)
        {
            var moviesArray = (object[])parameter;

            if (!(moviesArray[0] is Movie selectedPossibleMatch))
            {
                return;
            }

            if (!(moviesArray[1] is Movie currentSelectedMovie))
            {
                return;
            }

            selectedPossibleMatch.FileLocation = _fileController.RenameFile(currentSelectedMovie.FileLocation, selectedPossibleMatch.Title);
            _commonData.CommonDataMovies.Remove(currentSelectedMovie);

            selectedPossibleMatch.BackdropColor = selectedPossibleMatch.GetImageMajorityColor();

            _commonData.UpdateValue(cd => cd.CommonDataSelectedMovie, selectedPossibleMatch);

            var movies = _commonData.CommonDataMovies;

            movies.Add(selectedPossibleMatch);

            _commonData.UpdateValue(cd => cd.CommonDataMovies, movies);

            _fileController.StoreMovieData(movies);
        }
示例#2
0
        public async Task <Movie> EnrichMovieMatchedByTitle(Movie movie)
        {
            var possibleMatches = await GetPossibleMatchesFromApi(movie.Title);

            if (possibleMatches.Count < 1)
            {
                return(movie);
            }

            var formattedTitle = FormatMovieTitle(movie.Title);

            if (possibleMatches.Count(x => string.Equals(FormatMovieTitle(x.Title), formattedTitle, StringComparison.InvariantCultureIgnoreCase)) != 1)
            {
                return(movie);
            }

            var match = possibleMatches.FirstOrDefault(x => string.Equals(FormatMovieTitle(x.Title), formattedTitle, StringComparison.InvariantCultureIgnoreCase));

            if (match == null)
            {
                return(movie);
            }

            match.FileLocation  = movie.FileLocation;
            match.BackdropColor = match.GetImageMajorityColor();

            if (string.Equals(match.Title, movie.Title))
            {
                return(match);
            }

            var newFilePath = _fileController.RenameFile(movie.FileLocation, match.Title);

            match.FileLocation = newFilePath;

            return(match);
        }