diff --git a/src/SSync.Server.LitebDB/Abstractions/ISSyncEntityRoot.cs b/src/SSync.Server.LitebDB/Abstractions/ISSyncEntityRoot.cs new file mode 100644 index 0000000..9f602d8 --- /dev/null +++ b/src/SSync.Server.LitebDB/Abstractions/ISSyncEntityRoot.cs @@ -0,0 +1,9 @@ +namespace SSync.Server.LitebDB.Abstractions +{ + public interface ISSyncEntityRoot + { + public Guid Id { get; set; } + public DateTime UpdatedAt { get; set; } + public DateTime? DeletedAt { get; set; } + } +} diff --git a/src/SSync.Server.LitebDB/Sync/SchemaCollection.cs b/src/SSync.Server.LitebDB/Sync/SchemaCollection.cs index d189da8..10c5bce 100644 --- a/src/SSync.Server.LitebDB/Sync/SchemaCollection.cs +++ b/src/SSync.Server.LitebDB/Sync/SchemaCollection.cs @@ -10,7 +10,6 @@ using SSync.Shared.ClientServer.LitebDB.Extensions; using System.Data; using System.Reflection; -using System.Reflection.Metadata; using System.Text; using System.Text.Json; using System.Text.Json.Nodes; @@ -63,29 +62,32 @@ public async Task> PullChangesAsync(SSyncParameter parameter, SSync Log($"Start pull changes"); var steps = _builder.GetSteps(); - foreach (var (SyncType, Parameter) in steps.Where(s => parameter.Colletions.Contains(s.Parameter))) + if (steps is not null) { - parameter.CurrentColletion = Parameter; + foreach (var (SyncType, Parameter) in steps.Where(s => parameter.Colletions.Contains(s.Parameter))) + { + parameter.CurrentColletion = Parameter; - Log($"Start pull changes of collection {Parameter}"); + Log($"Start pull changes of collection {Parameter}"); - MethodInfo? method = typeof(SchemaCollection)! - .GetMethod(nameof(CheckChanges), BindingFlags.Instance | BindingFlags.NonPublic)! - .MakeGenericMethod(SyncType, parameter.GetType()) ?? throw new PullChangesException("Not found pull request handler"); + MethodInfo? method = typeof(SchemaCollection)! + .GetMethod(nameof(CheckChanges), BindingFlags.Instance | BindingFlags.NonPublic)! + .MakeGenericMethod(SyncType, parameter.GetType()) ?? throw new PullChangesException("Not found pull request handler"); - var task = (Task)method.Invoke(this, [parameter])!; + var task = (Task)method.Invoke(this, [parameter])!; - if (task is not null) - { - await task.ConfigureAwait(false); + if (task is not null) + { + await task.ConfigureAwait(false); - var resultProperty = task.GetType().GetProperty("Result"); + var resultProperty = task.GetType().GetProperty("Result"); - var collectionResult = resultProperty?.GetValue(task); + var collectionResult = resultProperty?.GetValue(task); - if (collectionResult is not null) - { - result.Add(collectionResult); + if (collectionResult is not null) + { + result.Add(collectionResult); + } } } }