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); }
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); }