Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }