// Not thread-safe due to setting the token if none has been acquired yet. public override async Task Upload(UploadProcessor processor, CancellationToken cancellationToken) { LogData.DpsReportEIUpload.UploadState = UploadState.Uploading; try { string uploadToken = !string.IsNullOrWhiteSpace(processor.DpsReportUserToken) ? processor.DpsReportUserToken : null; var response = await processor.DpsReportUploader.UploadLogAsync(LogData, cancellationToken, uploadToken); if (string.IsNullOrWhiteSpace(processor.DpsReportUserToken)) { processor.SetDpsReportUserToken(response.UserToken); } if (response.Error == null) { LogData.DpsReportEIUpload.Url = response.Permalink; LogData.DpsReportEIUpload.UploadState = UploadState.Uploaded; } else { LogData.DpsReportEIUpload.UploadState = UploadState.ProcessingError; LogData.DpsReportEIUpload.ProcessingError = response.Error; } } catch (Exception e) { LogData.DpsReportEIUpload.UploadState = UploadState.UploadError; LogData.DpsReportEIUpload.UploadError = e.Message; } processor.LogCache.CacheLogData(LogData); }
public abstract Task Upload(UploadProcessor processor, CancellationToken cancellationToken);