public async Task <IActionResult> Download(SubsonicRequest request) { var authResult = await AuthenticateUser(request).ConfigureAwait(false); if (authResult != null) { return(Unauthorized()); } var trackId = request.TrackId; if (trackId != null) { return(await StreamTrack(trackId.Value, TrackService, PlayActivityService, SubsonicUser).ConfigureAwait(false)); } var releaseId = request.ReleaseId; if (releaseId != null) { var releaseZip = await ReleaseService.ReleaseZipped(SubsonicUser, releaseId.Value).ConfigureAwait(false); if (!releaseZip.IsSuccess) { return(NotFound("Unknown Release id")); } return(File(releaseZip.Data, "application/zip", (string)releaseZip.AdditionalData["ZipFileName"])); } return(NotFound($"Unknown download id `{request.id}`")); }