add support for Provider Base Controller and also resolve some refactoring issues ...

This commit is contained in:
2025-12-09 03:13:15 +03:30
parent 50fd981426
commit 8d0e98a81e
4 changed files with 1060 additions and 40 deletions
+57 -11
View File
@@ -62,11 +62,13 @@ namespace xFileService.Interfaces
/// <param name="tag"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task TagAttach(
string tag,
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -75,11 +77,13 @@ namespace xFileService.Interfaces
/// <param name="tag"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task TagDetach(
string tag,
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -88,11 +92,13 @@ namespace xFileService.Interfaces
/// <param name="tags"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task TagsAttach(
IEnumerable<string> tags,
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -101,11 +107,13 @@ namespace xFileService.Interfaces
/// <param name="tags"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task TagsDetach(
IEnumerable<string> tags,
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -113,10 +121,12 @@ namespace xFileService.Interfaces
/// </summary>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task TagsDetach(
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
#endregion
@@ -155,10 +165,12 @@ namespace xFileService.Interfaces
/// </summary>
/// <param name="files"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task<IEnumerable<XFileDto>> Upload(
IFormFileCollection files,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -166,10 +178,12 @@ namespace xFileService.Interfaces
/// </summary>
/// <param name="ids"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task<IEnumerable<Guid>> Remove(
string ids,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -220,12 +234,14 @@ namespace xFileService.Interfaces
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task AddReference<TKey>(
string providedFor,
TKey forProvidedId,
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -235,12 +251,14 @@ namespace xFileService.Interfaces
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task RemoveReference<TKey>(
string providedFor,
TKey forProvidedId,
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
#endregion
@@ -287,6 +305,17 @@ namespace xFileService.Interfaces
XQuery query
);
/// <summary>
/// retrieve Owned Entities based on XQuery Pagination structure ...
/// </summary>
/// <param name="query"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task<XQueryResult<XFileDto>> QueryOwned(
XQuery query,
XUserClaimsInfoDto userInfo = null
);
/// <summary>
/// retrieve Entities based on XQuery Pagination structure by providing a Conditional Expression ...
/// </summary>
@@ -298,17 +327,32 @@ namespace xFileService.Interfaces
XQuery query
);
/// <summary>
/// retrieve Owned Entities based on XQuery Pagination structure by providing a Conditional Expression ...
/// </summary>
/// <param name="whereClause"></param>
/// <param name="query"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task<XQueryResult<XFileDto>> ConditionalQueryOwned(
Expression<Func<XFile, bool>> whereClause,
XQuery query,
XUserClaimsInfoDto userInfo = null
);
/// <summary>
/// Update an Entity values ...
/// </summary>
/// <param name="id"></param>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task<XFileDto> Update(
Guid id,
XFileDto item,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -316,10 +360,12 @@ namespace xFileService.Interfaces
/// </summary>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns>
Task<XFileDto> Remove(
Guid id,
XUserClaimsInfoDto userInfo = null
XUserClaimsInfoDto userInfo = null,
string connectionId = null
);
/// <summary>
@@ -0,0 +1,164 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using xFileService.Models.Dtos;
using xModels.Dtos;
using XFileDto = xFileService.Models.Dtos.XFileDto;
namespace xFileService.Interfaces
{
public interface IXFileServiceControllerActions
{
//
#region Tags ...
/// <summary>
/// Attach Tag to Specified Model ...
/// </summary>
/// <param name="tag"></param>
/// <param name="id"></param>
/// <returns></returns>
Task<ActionResult> TagAttach(
string tag,
Guid id
);
/// <summary>
/// Detach Tag From Specified Model ...
/// </summary>
/// <param name="tag"></param>
/// <param name="id"></param>
/// <returns></returns>
Task<ActionResult> TagDetach(
string tag,
Guid id
);
/// <summary>
/// Attach Tags to Specified Model ...
/// </summary>
/// <param name="tags"></param>
/// <param name="id"></param>
/// <returns></returns>
Task<ActionResult> TagsAttach(
string tags,
Guid id
);
/// <summary>
/// Detach Tags From Specified Model ...
/// </summary>
/// <param name="tags"></param>
/// <param name="id"></param>
/// <returns></returns>
Task<ActionResult> TagsDetach(
string tags,
Guid id
);
#endregion
//
#region Tools ...
/// <summary>
/// Stream Specified File ...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<ActionResult> Stream(Guid id);
/// <summary>
/// Stream Specified File ...
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
Task<ActionResult<FileStreamResult>> Stream(string fileName);
/// <summary>
/// Download Specified File ...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<ActionResult> Download(Guid id);
/// <summary>
/// Download Specified File ...
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
Task<ActionResult> Download(string fileName);
/// <summary>
/// Upload Files ...
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
Task<ActionResult<IEnumerable<XFileDto>>> Upload(
IFormFileCollection files
);
/// <summary>
/// Remove Specified Files ...
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
Task<ActionResult<IEnumerable<Guid>>> Remove(
string ids
);
#endregion
//
#region Model ...
/// <summary>
/// Get Specified File Model ...
/// </summary>
/// <param name="id"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <returns></returns>
Task<ActionResult<XFileDto>> Get(
Guid id
);
/// <summary>
/// Get All Exists File Models ...
/// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <returns></returns>
Task<ActionResult<IEnumerable<XFileDto>>> GetAll();
/// <summary>
/// retrieve Entities based on XQuery Pagination structure ...
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
Task<ActionResult<XQueryResult<XFileDto>>> Query(
XQuery query
);
/// <summary>
/// retrieve Owned Entities based on XQuery Pagination structure ...
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
Task<ActionResult<XQueryResult<XFileDto>>> QueryOwned(
XQuery query
);
/// <summary>
/// count all exists Entities ...
/// </summary>
/// <returns></returns>
Task<ActionResult<int>> Count();
/// <summary>
/// Check an Entity exists or not ...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<ActionResult<bool>> IsExists(
Guid id
);
#endregion
}
}