Refactor Providing Mechanism ...
This commit is contained in:
+562
-334
File diff suppressed because it is too large
Load Diff
+39
-28
@@ -25,6 +25,7 @@ using Microsoft.Extensions.FileProviders;
|
||||
using Microsoft.AspNetCore.StaticFiles;
|
||||
using System.Linq;
|
||||
using xPushService.Constants;
|
||||
using xDataService.Models;
|
||||
|
||||
namespace xFileService.Providers
|
||||
{
|
||||
@@ -251,10 +252,10 @@ namespace xFileService.Providers
|
||||
try
|
||||
{
|
||||
//
|
||||
await TagProvider.Attach(
|
||||
tag,
|
||||
id,
|
||||
connectionId
|
||||
await TagProvider.AddReference(
|
||||
tag: tag,
|
||||
providedForId: id,
|
||||
connectionId: connectionId
|
||||
);
|
||||
}
|
||||
catch { }
|
||||
@@ -298,10 +299,10 @@ namespace xFileService.Providers
|
||||
try
|
||||
{
|
||||
//
|
||||
await TagProvider.Detach(
|
||||
tag,
|
||||
id,
|
||||
connectionId
|
||||
await TagProvider.RemoveReference(
|
||||
tag: tag,
|
||||
providedForId: id,
|
||||
connectionId: connectionId
|
||||
);
|
||||
}
|
||||
catch { }
|
||||
@@ -447,7 +448,10 @@ namespace xFileService.Providers
|
||||
try
|
||||
{
|
||||
//
|
||||
var tags = await TagProvider.RemoveTagsFor(id);
|
||||
await TagProvider.RemoveReferences(
|
||||
providedForId: id,
|
||||
connectionId: connectionId
|
||||
);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
@@ -464,7 +468,7 @@ namespace xFileService.Providers
|
||||
// Validate ...
|
||||
var isValid = !id.IsNull() &&
|
||||
!id.IsDefaultGuid();
|
||||
if (!isValid)
|
||||
if (!isValid)
|
||||
{
|
||||
XException.InvalidArgs.Throw();
|
||||
}
|
||||
@@ -478,7 +482,7 @@ namespace xFileService.Providers
|
||||
}
|
||||
|
||||
//
|
||||
var tags = await TagProvider.GetTags(id);
|
||||
var tags = await TagProvider.GetAllReferences(id);
|
||||
|
||||
//
|
||||
var result = new List<string>();
|
||||
@@ -492,7 +496,7 @@ namespace xFileService.Providers
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
//
|
||||
@@ -847,8 +851,8 @@ namespace xFileService.Providers
|
||||
// Here we send Null Connection ID for Preventing Update Push ...
|
||||
// since we Remove Entity ...
|
||||
await DetachTags(
|
||||
id: id,
|
||||
userInfo: userInfo,
|
||||
id: id,
|
||||
userInfo: userInfo,
|
||||
connectionId: null
|
||||
);
|
||||
}
|
||||
@@ -1076,14 +1080,11 @@ namespace xFileService.Providers
|
||||
}
|
||||
|
||||
//
|
||||
var identifier = GetIdentifier(
|
||||
providedFor: providedFor,
|
||||
forProvidedId: forProvidedId
|
||||
);
|
||||
var result =
|
||||
dto.References.IsNull() &&
|
||||
dto.References.HasChild() &&
|
||||
dto.References.Any(r => r.ToNormalString() == identifier.ToNormalString());
|
||||
dto.References.Any(r => r.ProvidedFor == providedFor &&
|
||||
r.ReferencedTo == $"{forProvidedId}");
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -1095,6 +1096,7 @@ namespace xFileService.Providers
|
||||
/// <param name="providedFor"></param>
|
||||
/// <param name="forProvidedId"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="forIndex"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <returns></returns>
|
||||
@@ -1102,6 +1104,7 @@ namespace xFileService.Providers
|
||||
string providedFor,
|
||||
TKey forProvidedId,
|
||||
Guid id,
|
||||
int forIndex = 0,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
string connectionId = null
|
||||
)
|
||||
@@ -1148,16 +1151,18 @@ namespace xFileService.Providers
|
||||
}
|
||||
|
||||
//
|
||||
var identifier = GetIdentifier(
|
||||
providedFor: providedFor,
|
||||
forProvidedId: forProvidedId
|
||||
);
|
||||
dto.References.Add(identifier);
|
||||
var reference = new XReference<string>
|
||||
{
|
||||
Index = forIndex,
|
||||
ProvidedFor = providedFor,
|
||||
ReferencedTo = $"{forProvidedId}"
|
||||
};
|
||||
dto.References.Add(reference);
|
||||
|
||||
//
|
||||
dto = await Update(
|
||||
id: dto.Id,
|
||||
item: dto,
|
||||
id: dto.Id,
|
||||
userInfo: userInfo,
|
||||
connectionId: connectionId
|
||||
);
|
||||
@@ -1175,6 +1180,7 @@ namespace xFileService.Providers
|
||||
/// <param name="providedFor"></param>
|
||||
/// <param name="forProvidedId"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="forIndex"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <returns></returns>
|
||||
@@ -1182,6 +1188,7 @@ namespace xFileService.Providers
|
||||
string providedFor,
|
||||
TKey forProvidedId,
|
||||
Guid id,
|
||||
int forIndex = 0,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
string connectionId = null
|
||||
)
|
||||
@@ -1234,11 +1241,15 @@ namespace xFileService.Providers
|
||||
forProvidedId: forProvidedId
|
||||
);
|
||||
dto.References = dto.References
|
||||
.Where(r => r.ToNormalString() != identifier.ToNormalString())
|
||||
.Where(r =>
|
||||
r.Index != forIndex &&
|
||||
r.ProvidedFor != providedFor &&
|
||||
r.ReferencedTo != $"{forProvidedId}"
|
||||
)
|
||||
.ToList();
|
||||
dto = await Update(
|
||||
id: dto.Id,
|
||||
item: dto,
|
||||
id: dto.Id,
|
||||
userInfo: userInfo,
|
||||
connectionId: connectionId
|
||||
);
|
||||
@@ -1642,7 +1653,7 @@ namespace xFileService.Providers
|
||||
|
||||
//
|
||||
// Removing Tags ...
|
||||
await TagProvider.RemoveTagsFor(result.Id);
|
||||
await TagProvider.RemoveReferences(result.Id);
|
||||
|
||||
//
|
||||
await SendPush(
|
||||
|
||||
Reference in New Issue
Block a user