Update for Better Supports ...

This commit is contained in:
2025-12-08 17:27:10 +03:30
parent d14a918212
commit 0044643ac4
5 changed files with 849 additions and 51 deletions
+40 -13
View File
@@ -918,23 +918,26 @@ namespace xFileService.Providers
/// Get Reference Identifier for Specified Provider and Specified File ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="id"></param>
/// <param name="forProvidedId"></param>
/// <returns></returns>
public string GetIdentifier(
public string GetIdentifier<TKey>(
string providedFor,
Guid id
TKey forProvidedId
)
{
return $"{providedFor}_{id}";
return $"{providedFor}_{forProvidedId}";
}
/// <summary>
/// Check Specified File has Refernce to Provider ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <returns></returns>
public async Task<bool> IsProvidedFor(
public async Task<bool> IsProvidedFor<TKey>(
string providedFor,
TKey forProvidedId,
Guid id
)
{
@@ -943,7 +946,8 @@ namespace xFileService.Providers
var isValid =
!providedFor.IsNullOrEmpty() &&
!id.IsNull() &&
!id.IsDefaultGuid();
!id.IsDefaultGuid() &&
!forProvidedId.IsNull();
if (!isValid)
{
XException.InvalidArgs.Throw();
@@ -966,7 +970,10 @@ namespace xFileService.Providers
}
//
var identifier = GetIdentifier(providedFor, id);
var identifier = GetIdentifier(
providedFor: providedFor,
forProvidedId: forProvidedId
);
var result =
dto.References.IsNull() &&
dto.References.HasChild() &&
@@ -980,11 +987,13 @@ namespace xFileService.Providers
/// Add Specified Reference to Specified File ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public async Task AddReference(
public async Task AddReference<TKey>(
string providedFor,
TKey forProvidedId,
Guid id,
XUserClaimsInfoDto userInfo = null
)
@@ -995,6 +1004,7 @@ namespace xFileService.Providers
!providedFor.IsNullOrEmpty() &&
!id.IsNull() &&
!id.IsDefaultGuid() &&
!providedFor.IsNull() &&
!userInfo.IsNullOrDefault();
if (!isValid)
{
@@ -1003,7 +1013,11 @@ namespace xFileService.Providers
//
// Check Has Reference or not ...
isValid = await IsProvidedFor(providedFor, id);
isValid = await IsProvidedFor(
providedFor: providedFor,
forProvidedId: forProvidedId,
id: id
);
if (!isValid)
{
//
@@ -1026,7 +1040,10 @@ namespace xFileService.Providers
}
//
var identifier = GetIdentifier(providedFor, id);
var identifier = GetIdentifier(
providedFor: providedFor,
forProvidedId: forProvidedId
);
dto.References.Add(identifier);
//
@@ -1047,11 +1064,13 @@ namespace xFileService.Providers
/// Remove Specified Reference from Specified File ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public async Task RemoveReference(
public async Task RemoveReference<TKey>(
string providedFor,
TKey forProvidedId,
Guid id,
XUserClaimsInfoDto userInfo = null
)
@@ -1062,6 +1081,7 @@ namespace xFileService.Providers
!providedFor.IsNullOrEmpty() &&
!id.IsNull() &&
!id.IsDefaultGuid() &&
!forProvidedId.IsNull() &&
!userInfo.IsNullOrDefault();
if (!isValid)
{
@@ -1070,7 +1090,11 @@ namespace xFileService.Providers
//
// Check Has Reference or not ...
isValid = await IsProvidedFor(providedFor, id);
isValid = await IsProvidedFor(
providedFor: providedFor,
forProvidedId: forProvidedId,
id: id
);
if (isValid)
{
//
@@ -1094,7 +1118,10 @@ namespace xFileService.Providers
}
//
var identifier = GetIdentifier(providedFor, id);
var identifier = GetIdentifier(
providedFor: providedFor,
forProvidedId: forProvidedId
);
dto.References = dto.References
.Where(r => r.ToNormalString() != identifier.ToNormalString())
.ToList();