public override async Task ProcessJobAsync(IResultSender resultSender) { using var scope = Logger.BeginScope("Export Drawing PDF ({Id})"); Logger.LogInformation($"ProcessJob (ExportDrawingPDF) {Id} for project {ProjectId} started."); (FdaStatsDTO stats, int drawingIndex) = await ProjectWork.ExportDrawingPdfAsync(ProjectId, _hash, _drawingKey); Logger.LogInformation($"ProcessJob (ExportDrawingPDF) {Id} for project {ProjectId} completed."); string url = ""; if (stats != null) { url = _linkGenerator.GetPathByAction(controller: "Download", action: "DrawingPdf", values: new { projectName = ProjectId, hash = _hash, index = drawingIndex }); // when local url starts with slash, it does not work, because it is doubled in url if (url.StartsWith('/')) { url = url.Substring(1); } } await resultSender.SendSuccessAsync(url, stats); }