public void Receive(SyncObject SyncObject, SiteCluster FromNode) { var repo = this.SiteDb.GetRepository(SyncObject.StoreName); if (repo == null) { return; } this.Control.LockItem(FromNode.Id, SyncObject.ObjectId); if (SyncObject.IsDelete) { repo.Delete(SyncObject.ObjectId); } else { var siteobject = SyncObjectConvertor.FromSyncObject(SyncObject); if (siteobject is ICoreObject) { var core = siteobject as ICoreObject; core.Version = -1; repo.AddOrUpdate(core); } } this.Control.UnlockItem(FromNode.Id, SyncObject.ObjectId); }
public SyncObject GetSyncObject(PushTask task) { SyncObject syncobject = null; if (task.IsDelete) { syncobject = new SyncObject(); syncobject.IsDelete = true; syncobject.ObjectId = task.ObjectId; } else { var repo = this.SiteDb.GetRepository(task.StoreName); if (repo == null) { return(null); } var log = this.SiteDb.Log.Get(task.Version); if (log == null) { return(null); } var siteobject = repo.GetByLog(log); syncobject = SyncObjectConvertor.ToSyncObject(siteobject); } syncobject.StoreName = task.StoreName; syncobject.SenderPort = GetPort(); return(syncobject); }