@@ -80,14 +80,19 @@ FROM discogs_artist da
8080 album.masterid,
8181 track.TrackCount,
8282 dra.*,
83- regexp_replace(da.name, ' \([0-9]*\)$', '' ) AS Name
83+ regexp_replace(da.name, ' \([0-9]*\)$', '' ) AS Name,
84+ dri.Releaseid,
85+ dri.Description,
86+ dri.Type,
87+ dri.Value
8488 FROM discogs_release album
8589 join discogs_release_artist dra on dra.releaseid = album.releaseid and dra.artistid = @artistId
8690 join discogs_artist da on da.artistid = dra.artistid
8791 join lateral (
8892 select count(track.releaseid) as TrackCount
8993 from discogs_release_track track
9094 where track.releaseid = album.releaseid) track on 1=1
95+ left join discogs_release_identifier dri on dri.releaseid = album.releaseid
9196 where
9297 lower(album.title) % lower(@albumName)" ;
9398
@@ -99,16 +104,20 @@ from discogs_release_track track
99104 try
100105 {
101106 results = await conn
102- . QueryAsync < DiscogsRelease , DiscogsReleaseArtist , DiscogsRelease > ( query ,
103- ( album , artist ) =>
107+ . QueryAsync < DiscogsRelease , DiscogsReleaseArtist , DiscogsReleaseIdentifier , DiscogsRelease > ( query ,
108+ ( album , artist , identifier ) =>
104109 {
105110 if ( artist != null )
106111 {
107112 album . Artists . Add ( artist ) ;
108113 }
114+ if ( identifier != null )
115+ {
116+ album . Identifiers . Add ( identifier ) ;
117+ }
109118 return album ;
110119 } ,
111- splitOn : "releaseid,releaseid" ,
120+ splitOn : "releaseid,releaseid,releaseid " ,
112121 param : new
113122 {
114123 albumName ,
@@ -137,6 +146,9 @@ from discogs_release_track track
137146 . DistinctBy ( image => image . ArtistId )
138147 . ToList ( ) ;
139148
149+ album . Identifiers = group
150+ . SelectMany ( album => album . Identifiers )
151+ . ToList ( ) ;
140152 return album ;
141153 } )
142154 . ToList ( ) ;
@@ -158,29 +170,38 @@ from discogs_release_track track
158170 album.masterid,
159171 track.TrackCount,
160172 dra.*,
161- regexp_replace(da.name, ' \([0-9]*\)$', '' ) AS Name
173+ regexp_replace(da.name, ' \([0-9]*\)$', '' ) AS Name,
174+ dri.Releaseid,
175+ dri.Description,
176+ dri.Type,
177+ dri.Value
162178 FROM discogs_release album
163179 join discogs_release_artist dra on dra.releaseid = album.releaseid
164180 join discogs_artist da on da.artistid = dra.artistid
165181 join lateral (
166182 select count(track.releaseid) as TrackCount
167183 from discogs_release_track track
168184 where track.releaseid = album.releaseid) track on 1=1
185+ left join discogs_release_identifier dri on dri.releaseid = album.releaseid
169186 where album.releaseid = @albumId" ;
170187
171188 await using var conn = new NpgsqlConnection ( _databaseConfiguration . ConnectionString ) ;
172189
173190 var results = await conn
174- . QueryAsync < DiscogsRelease , DiscogsReleaseArtist , DiscogsRelease > ( query ,
175- ( album , artist ) =>
191+ . QueryAsync < DiscogsRelease , DiscogsReleaseArtist , DiscogsReleaseIdentifier , DiscogsRelease > ( query ,
192+ ( album , artist , identifier ) =>
176193 {
177194 if ( artist != null )
178195 {
179196 album . Artists . Add ( artist ) ;
180197 }
198+ if ( identifier != null )
199+ {
200+ album . Identifiers . Add ( identifier ) ;
201+ }
181202 return album ;
182203 } ,
183- splitOn : "releaseid,releaseid" ,
204+ splitOn : "releaseid,releaseid,releaseid " ,
184205 param : new
185206 {
186207 albumId
@@ -194,7 +215,11 @@ from discogs_release_track track
194215
195216 album . Artists = group
196217 . SelectMany ( album => album . Artists )
197- . DistinctBy ( image => image . ArtistId )
218+ . DistinctBy ( artist => artist . ArtistId )
219+ . ToList ( ) ;
220+
221+ album . Identifiers = group
222+ . SelectMany ( album => album . Identifiers )
198223 . ToList ( ) ;
199224
200225 return album ;
@@ -221,7 +246,11 @@ from discogs_release_track track
221246 album.masterid,
222247 track.TrackCount,
223248 dra.*,
224- regexp_replace(da.name, ' \([0-9]*\)$', '' ) as Name
249+ regexp_replace(da.name, ' \([0-9]*\)$', '' ) as Name,
250+ dri.Releaseid,
251+ dri.Description,
252+ dri.Type,
253+ dri.Value
225254 FROM discogs_release_track dt
226255 join discogs_release album on album.ReleaseId = dt.ReleaseId
227256 join lateral (
@@ -231,6 +260,7 @@ from discogs_release_track track
231260 join discogs_release_artist release_dra on release_dra.ReleaseId = album.ReleaseId and release_dra.artistid = @artistId
232261 join discogs_release_artist dra on dra.ReleaseId = album.ReleaseId
233262 join discogs_artist da on da.artistid = dra.artistid
263+ left join discogs_release_identifier dri on dri.releaseid = album.releaseid
234264 where lower(dt.Title) % lower(@trackName)" ;
235265
236266 await using var conn = new NpgsqlConnection ( _databaseConfiguration . ConnectionString ) ;
@@ -244,18 +274,23 @@ from discogs_release_track track
244274 . QueryAsync < DiscogsReleaseTrack ,
245275 DiscogsRelease ,
246276 DiscogsReleaseArtist ,
277+ DiscogsReleaseIdentifier ,
247278 DiscogsReleaseTrack > ( query ,
248- ( track , release , releaseArtist ) =>
279+ ( track , release , releaseArtist , identifier ) =>
249280 {
250281 track . Release = release ;
251282
252283 if ( releaseArtist != null )
253284 {
254285 track . Release . Artists . Add ( releaseArtist ) ;
255286 }
287+ if ( identifier != null )
288+ {
289+ track . Release . Identifiers . Add ( identifier ) ;
290+ }
256291 return track ;
257292 } ,
258- splitOn : "ReleaseId, ReleaseId" ,
293+ splitOn : "ReleaseId, ReleaseId, ReleaseId " ,
259294 param : new
260295 {
261296 trackName ,
@@ -289,6 +324,10 @@ from discogs_release_track track
289324 . DistinctBy ( artist => artist . ArtistId )
290325 . ToList ( ) ;
291326
327+ track . Release . Identifiers = group
328+ . SelectMany ( album => album . Release . Identifiers )
329+ . ToList ( ) ;
330+
292331 return track ;
293332 } )
294333 . ToList ( ) ;
0 commit comments