using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using xDataService.Models; using xModels.Base; namespace xIdentityService.Interfaces { public interface IXBaseReferencedController where TEntity : XBaseEntity { /// /// Check an Item Has Reference to Specified ProvideFor and Specified forProvidedId ... /// /// /// /// /// /// [HttpGet("{id}/Reference/IsProvidedFor")] Task> IsProvidedFor( [FromRoute] TKey id, [FromQuery] string providedFor, [FromQuery] object forProvidedId, CancellationToken cancellationToken = default ); /// /// Add a Reference to Item for Specified ProvideFor and Specified forProvidedId ... /// /// /// /// /// /// /// [HttpPost("{id}/Reference")] Task AddReference( [FromRoute] TKey id, [FromQuery] string providedFor, [FromQuery] object forProvidedId, [FromQuery] int forIndex = 0, CancellationToken cancellationToken = default ); /// /// Remove a Reference from Item for Specified ProvideFor and Specified forProvidedId ... /// /// /// /// /// /// /// [HttpDelete("{id}/Reference")] Task RemoveReference( [FromRoute] TKey id, [FromQuery] string providedFor, [FromQuery] object forProvidedId, [FromQuery] int forIndex = 0, CancellationToken cancellationToken = default ); /// /// Retrieve References of Specified Itemfor providedFor ... /// /// /// /// /// [HttpGet("{id}/References")] Task>>> GetReferences( [FromRoute] TKey id, [FromQuery] string providedFor, CancellationToken cancellationToken = default ); } }