using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using xFileService.Models.Dtos; using xFileService.Models.Entities; using xFileService.Providers.Dtos; using xIdentityService.Interfaces; using xTagService.Interfaces; namespace xFileService.Interfaces { public interface IXFileProviderController : IXBaseProvidedHasTagController, IXBaseReferencedController { // #region Tools ... /// /// Stream Specified File ... /// /// /// /// [HttpGet("{id}/Stream/ById")] Task Stream( [FromRoute] Guid id, CancellationToken cancellationToken = default ); /// /// Stream Specified File ... /// /// /// /// [HttpGet("{name}/Stream/ByName")] Task Stream( [FromRoute] string name, CancellationToken cancellationToken = default ); /// /// Download Specified File ... /// /// /// /// [HttpGet("{id}/Download/ById")] Task Download( [FromRoute] Guid id, CancellationToken cancellationToken = default ); /// /// Download Specified File ... /// /// /// /// [HttpGet("{name}/Download/ByName")] Task Download( string name, CancellationToken cancellationToken = default ); /// /// Upload Files ... /// /// /// /// [HttpPost("Upload")] [RequestSizeLimit(966_367_641)] Task>> Upload( [FromForm] IFormFileCollection files, CancellationToken cancellationToken = default ); /// /// Remove Specified Files ... /// /// /// /// /// /// [HttpDelete("")] Task>> Remove( [FromQuery] string ids, CancellationToken cancellationToken = default ); #endregion } }