| | 119 | + (NSDictionary *)upgradeV1MoviesFromContext:(NSManagedObjectContext *)oldMoc toContext:(NSManagedObjectContext *)newMoc withCast:(NSDictionary *)cast directors:(NSDictionary *)directors genres:(NSDictionary *)genres |
| | 120 | { |
| | 121 | NSMutableDictionary *lookup = [NSMutableDictionary dictionary]; |
| | 122 | NSArray *oldMovies = doFetchRequest(SapphireMovieName, oldMoc, nil); |
| | 123 | NSEnumerator *movieEnum = [oldMovies objectEnumerator]; |
| | 124 | NSManagedObject *oldMovie; |
| | 125 | while((oldMovie = [movieEnum nextObject]) != nil) |
| | 126 | { |
| | 127 | SapphireMovie *newMovie = [NSEntityDescription insertNewObjectForEntityForName:SapphireMovieName inManagedObjectContext:newMoc]; |
| | 128 | NSNumber *imdbNumber = [oldMovie valueForKey:@"imdbNumber"]; |
| | 129 | newMovie.imdbNumber = imdbNumber; |
| | 130 | newMovie.imdbRating = [oldMovie valueForKey:@"imdbRating"]; |
| | 131 | newMovie.imdbTop250Ranking = [oldMovie valueForKey:@"imdbTop250Ranking"]; |
| | 132 | newMovie.MPAARating = [oldMovie valueForKey:@"MPAARating"]; |
| | 133 | newMovie.orderedCastData = [oldMovie valueForKey:@"orderedCastData"]; |
| | 134 | newMovie.orderedDirectorsData = [oldMovie valueForKey:@"orderedDirectorsData"]; |
| | 135 | newMovie.orderedGenresData = [oldMovie valueForKey:@"orderedGenresData"]; |
| | 136 | newMovie.oscarsWon = [oldMovie valueForKey:@"oscarsWon"]; |
| | 137 | newMovie.plot = [oldMovie valueForKey:@"plot"]; |
| | 138 | newMovie.releaseDate = [oldMovie valueForKey:@"releaseDate"]; |
| | 139 | newMovie.title = [oldMovie valueForKey:@"title"]; |
| | 140 | NSArray *castNames = [oldMovie valueForKeyPath:@"cast.name"]; |
| | 141 | NSEnumerator *castEnum = [castNames objectEnumerator]; |
| | 142 | NSString *name; |
| | 143 | NSMutableSet *objSet = [NSMutableSet set]; |
| | 144 | while((name = [castEnum nextObject]) != nil) |
| | 145 | { |
| | 146 | [objSet addObject:[cast objectForKey:name]]; |
| | 147 | } |
| | 148 | [newMovie.castSet setSet:objSet]; |
| | 149 | NSArray *directorNames = [oldMovie valueForKeyPath:@"directors.name"]; |
| | 150 | NSEnumerator *directorEnum = [directorNames objectEnumerator]; |
| | 151 | objSet = [NSMutableSet set]; |
| | 152 | while((name = [directorEnum nextObject]) != nil) |
| | 153 | { |
| | 154 | [objSet addObject:[directors objectForKey:name]]; |
| | 155 | } |
| | 156 | [newMovie.directorsSet setSet:objSet]; |
| | 157 | NSArray *genreNames = [oldMovie valueForKeyPath:@"genres.name"]; |
| | 158 | NSEnumerator *genreEnum = [genreNames objectEnumerator]; |
| | 159 | objSet = [NSMutableSet set]; |
| | 160 | while((name = [genreEnum nextObject]) != nil) |
| | 161 | { |
| | 162 | [objSet addObject:[genres objectForKey:name]]; |
| | 163 | } |
| | 164 | [newMovie.genresSet setSet:objSet]; |
| | 165 | |
| | 166 | NSEnumerator *translationEnum = [[oldMovie valueForKey:@"translations"] objectEnumerator]; |
| | 167 | NSManagedObject *translation; |
| | 168 | while((translation = [translationEnum nextObject]) != nil) |
| | 169 | { |
| | 170 | [SapphireMovieTranslation upgradeV1MovieTranslation:translation toMovie:newMovie]; |
| | 171 | } |
| | 172 | [lookup setObject:newMovie forKey:imdbNumber]; |
| | 173 | } |
| | 174 | return lookup; |
| | 175 | } |
| | 176 | |