public UploadManager(IFileStore fileStore, IFileWriter fileWriter, IUploadProgressManager uploadProgressManager, IUploadFileLock uploadFileLock, MetadataReader metadataReader, ILogger <UploadManager> logger) { this._fileStore = fileStore; this._fileWriter = fileWriter; this._logger = logger; this._metadataReader = metadataReader; this._uploadFileLock = uploadFileLock; this._uploadProgressManager = uploadProgressManager; }
public override void OnActionExecuting(ActionExecutingContext context) { FileIdentifier fileIdentifier = context.ActionArguments.Values.OfType <FileIdentifier>().Single(); CancellationToken cancellationToken = context.HttpContext.RequestAborted; IUploadFileLock locker = context.HttpContext.RequestServices.GetRequiredService <IUploadFileLock>(); context.HttpContext.Items[FileLockItemKey] = locker.Acquire(fileIdentifier, cancellationToken); }