@@ -138,34 +138,36 @@ protected override void Process()
138138 public void CreateLanguages ( ResponseGetFile response )
139139 {
140140 using var session = DatabaseFactory . SessionFactory . OpenSession ( ) ;
141- if ( ( response ? . AudioLanguages ? . Count ?? 0 ) >
142- 0 ) //Only create relations if the origin of the data if from Raw (WebService/AniDB)
141+ using var trans = session . BeginTransaction ( ) ;
142+ // Only update languages if we got a response
143+ if ( response ? . AudioLanguages is not null )
143144 {
144- // Delete old if changed
145- var fileLanguages = RepoFactory . CrossRef_Languages_AniDB_File . GetByFileID ( response . FileID ) ;
146- RepoFactory . CrossRef_Languages_AniDB_File . DeleteWithOpenTransaction ( session , fileLanguages ) ;
145+ // Delete old
146+ var toDelete = RepoFactory . CrossRef_Languages_AniDB_File . GetByFileID ( response . FileID ) ;
147+ RepoFactory . CrossRef_Languages_AniDB_File . DeleteWithOpenTransaction ( session , toDelete ) ;
147148
149+ // Save new
148150 var toSave = response . AudioLanguages . Select ( language => language . Trim ( ) . ToLower ( ) )
149151 . Where ( lang => lang . Length > 0 )
150152 . Select ( lang => new CrossRef_Languages_AniDB_File { LanguageName = lang , FileID = response . FileID } )
151153 . ToList ( ) ;
152-
153154 RepoFactory . CrossRef_Languages_AniDB_File . SaveWithOpenTransaction ( session , toSave ) ;
154155 }
155156
156- if ( ( response ? . SubtitleLanguages ? . Count ?? 0 ) > 0 )
157+ if ( response ? . SubtitleLanguages is not null )
157158 {
158- // Delete old if changed
159- var fileLanguages = RepoFactory . CrossRef_Subtitles_AniDB_File . GetByFileID ( response . FileID ) ;
160- RepoFactory . CrossRef_Subtitles_AniDB_File . DeleteWithOpenTransaction ( session , fileLanguages ) ;
159+ // Delete old
160+ var toDelete = RepoFactory . CrossRef_Subtitles_AniDB_File . GetByFileID ( response . FileID ) ;
161+ RepoFactory . CrossRef_Subtitles_AniDB_File . DeleteWithOpenTransaction ( session , toDelete ) ;
161162
163+ // Save new
162164 var toSave = response . SubtitleLanguages . Select ( language => language . Trim ( ) . ToLower ( ) )
163165 . Where ( lang => lang . Length > 0 )
164166 . Select ( lang => new CrossRef_Subtitles_AniDB_File { LanguageName = lang , FileID = response . FileID } )
165167 . ToList ( ) ;
166-
167168 RepoFactory . CrossRef_Subtitles_AniDB_File . SaveWithOpenTransaction ( session , toSave ) ;
168169 }
170+ trans . Commit ( ) ;
169171 }
170172
171173 public void CreateEpisodes ( string filename , ResponseGetFile response )
0 commit comments