last works on XFile Provider by Implememnting Tag Provider and also add Global Supports for ProvidedFor and References inside File Provider ...

This commit is contained in:
2025-12-08 14:12:31 +03:30
parent 4cf1e4d629
commit d14a918212
3 changed files with 613 additions and 16 deletions
+117
View File
@@ -22,6 +22,7 @@ namespace xFileService.Interfaces
{
//
#region Props ...
IXFileTagProvider TagProvider { get; }
IHubContext<XFileEntityHub> Hub { get; }
IXFileRepository FileRepository { get; }
IXStorageProvider StorageProvider { get; }
@@ -53,6 +54,72 @@ namespace xFileService.Interfaces
Task<XQueryResult<XFileDto>> ToDtoQueryResult(XQueryResult<XFile> queryResult);
#endregion
//
#region Tags ...
/// <summary>
/// Attach Tag to Specified File ...
/// </summary>
/// <param name="tag"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task TagAttach(
string tag,
Guid id,
XUserClaimsInfoDto userInfo = null
);
/// <summary>
/// Detach Tag fro Specified File ...
/// </summary>
/// <param name="tag"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task TagDetach(
string tag,
Guid id,
XUserClaimsInfoDto userInfo = null
);
/// <summary>
/// Attach Tags for Specified File ...
/// </summary>
/// <param name="tags"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task TagsAttach(
IEnumerable<string> tags,
Guid id,
XUserClaimsInfoDto userInfo = null
);
/// <summary>
/// Detach Tags for Specified File ...
/// </summary>
/// <param name="tags"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task TagsDetach(
IEnumerable<string> tags,
Guid id,
XUserClaimsInfoDto userInfo = null
);
/// <summary>
/// Detach all Attached Tags for Specified File ...
/// </summary>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task TagsDetach(
Guid id,
XUserClaimsInfoDto userInfo = null
);
#endregion
//
#region Tools ...
/// <summary>
@@ -120,6 +187,56 @@ namespace xFileService.Interfaces
Task<XFileStreamDescriptorDto> GetFileDescriptor(string fileName);
#endregion
//
#region Reference ...
/// <summary>
/// Get Reference Identifier for Specified Provider and Specified File ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="id"></param>
/// <returns></returns>
string GetIdentifier(
string providedFor,
Guid id
);
/// <summary>
/// Check Specified File has Refernce to Provider ...
/// </summary>
/// <param name="providedFor"></param>
/// <returns></returns>
Task<bool> IsProvidedFor(
string providedFor,
Guid id
);
/// <summary>
/// Add Specified Reference to Specified File ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task AddReference(
string providedFor,
Guid id,
XUserClaimsInfoDto userInfo = null
);
/// <summary>
/// Remove Specified Reference from Specified File ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
Task RemoveReference(
string providedFor,
Guid id,
XUserClaimsInfoDto userInfo = null
);
#endregion
//
#region Data Model ...
/// <summary>