Files
xCategoryService/Interfaces/IXCategoryProviderController.cs

155 lines
5.4 KiB
C#

using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using xCategoryService.Models.Dtos;
using xCategoryService.Models.Entities;
using xCategoryService.Providers.Dtos;
using xModels.Dtos;
using xPushService.Interfaces;
namespace xCategoryService.Interfaces
{
public interface IXCategoryProviderController : IXBaseProvidedController<XCategory, XCategoryDto, int, XCategoryDtoHub>
{
/// <summary>
/// Check Has Specified Locale or not ...
/// </summary>
/// <param name="id"></param>
/// <param name="language"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpGet("Resources/{id}/HasLocale")]
Task<ActionResult<bool>> HasLocale(
[FromRoute] int id,
[FromQuery] string language,
CancellationToken cancellationToken = default
);
/// <summary>
/// Load an Item by all of it's Related Translations ...
/// </summary>
/// <param name="id"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpGet("Resources/{id}")]
Task<ActionResult<XCategoryResourceDto>> GetResource(
[FromRoute] int id,
CancellationToken cancellationToken = default
);
/// <summary>
/// Add Item for Specified Language ...
/// </summary>
/// <param name="item"></param>
/// <param name="language"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpPost("Resources")]
Task<ActionResult<XCategoryResourceDto>> Add(
[FromBody] XCategoryDto item,
[FromQuery] string language = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Add Item by It's Locales ...
/// </summary>
/// <param name="item"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpPost("Resources/AddResource")]
Task<ActionResult<XCategoryResourceDto>> AddResource(
[FromBody] XCategoryResourceDto item,
CancellationToken cancellationToken = default
);
/// <summary>
/// Remove Item for Specified Language ...
/// </summary>
/// <param name="id"></param>
/// <param name="language">if null, Remove All</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpDelete("Resources/{id}")]
Task<ActionResult<XCategoryResourceDto>> Remove(
[FromRoute] int id,
[FromQuery] string language = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Update an Item for Specified Language ...
/// </summary>
/// <param name="id"></param>
/// <param name="item"></param>
/// <param name="language"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpPut("Resources/{id}")]
Task<ActionResult<XCategoryResourceDto>> Update(
[FromRoute] int id,
[FromBody] XCategoryDto item,
[FromQuery] string language = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Refresh a Resource ...
/// </summary>
/// <param name="resource"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpPost("Resources/Refresh")]
Task<ActionResult<XCategoryResourceDto>> Refresh(
[FromBody] XCategoryResourceDto resource,
CancellationToken cancellationToken = default
);
/// <summary>
/// Get All Resources ...
/// </summary>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpGet("Resources/All")]
Task<ActionResult<IEnumerable<XCategoryResourceDto>>> GetAllResources(
CancellationToken cancellationToken = default
);
/// <summary>
/// Find One Resource ...
/// </summary>
/// <param name="query"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpGet("Resources/Find/One")]
Task<ActionResult<XCategoryResourceDto>> FindOneResource(
[FromQuery] string query,
CancellationToken cancellationToken = default
);
/// <summary>
/// Find Many Resource ...
/// </summary>
/// <param name="query"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpGet("Resources/Find/Many")]
Task<ActionResult<IEnumerable<XCategoryResourceDto>>> FindManyResource(
[FromQuery] string query,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve Resources by Query Pattern ...
/// </summary>
/// <param name="query"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpGet("Resources/Query")]
Task<ActionResult<XQueryResult<XCategoryResourceDto>>> QueryResources(
[FromQuery] XQuery query = null,
CancellationToken cancellationToken = default
);
}
}