public static void Receive(SiteDb SiteDb, Kooboo.Sites.Sync.SyncObject SyncObject, SyncSetting setting = null, Guid UserId = default(Guid)) { if (SyncObject == null) { return; } if (SyncObject.IsTable) { ReceiveTableData(SiteDb, SyncObject, setting, UserId); } else { ReceiveSiteObject(SiteDb, SyncObject, setting, UserId); } }
public static void Receive(SiteDb SiteDb, Kooboo.Sites.Sync.SyncObject SyncObject, SyncSetting setting = null, Guid UserId = default(Guid)) { if (SyncObject == null) { return; } var repo = GetRepository(SiteDb, SyncObject); if (repo != null) { if (SyncObject.IsDelete) { repo.Delete(SyncObject.ObjectId, UserId); if (setting != null && Attributes.AttributeHelper.IsCoreObject(repo.ModelType)) { var logid = GetJustDeletedVersion(SiteDb, repo, SyncObject.ObjectId); if (logid > -1) { SiteDb.Synchronization.AddOrUpdate(new Synchronization { SyncSettingId = setting.Id, StoreName = repo.StoreName, ObjectId = SyncObject.ObjectId, In = true, Version = logid, RemoteVersion = SyncObject.SenderVersion }); } } } else { var siteobject = Kooboo.Sites.Sync.SyncObjectConvertor.FromSyncObject(SyncObject); if (siteobject is ICoreObject) { var core = siteobject as ICoreObject; core.Version = -1; repo.AddOrUpdate(core, UserId); if (setting != null) { var localversion = core.Version; if (localversion == -1) { var currentsiteobject = core as SiteObject; if (currentsiteobject != null) { var dbobject = repo.Get(currentsiteobject.Id); if (dbobject != null) { var dbcoreobject = dbobject as CoreObject; localversion = dbcoreobject.Version; } } } SiteDb.Synchronization.AddOrUpdate(new Synchronization { SyncSettingId = setting.Id, StoreName = repo.StoreName, ObjectId = siteobject.Id, Version = localversion, RemoteVersion = SyncObject.SenderVersion, In = true }); } } else { repo.AddOrUpdate(siteobject); } } } }