public static void ReceiveRemote(SiteDb SiteDb, Sync.SyncObject SyncObject) { if (Integrity.Verify(SiteDb, SyncObject)) { var modeltype = Service.ConstTypeService.GetModelType(SyncObject.ObjectConstType); var repo = SiteDb.GetRepository(modeltype); ISiteObject siteobject; if (SyncObject.IsDelete) { siteobject = Activator.CreateInstance(modeltype) as ISiteObject; repo.Delete(SyncObject.ObjectId); siteobject.ConstType = SyncObject.ObjectConstType; siteobject.Id = SyncObject.ObjectId; } else { siteobject = Sync.SyncObjectConvertor.FromSyncObject(SyncObject); repo.AddOrUpdate(siteobject); } Integrity.AddHistory(SiteDb, SyncObject, siteobject); } }
public static Sync.SyncObject GetSyncObject(SiteDb SiteDb, LogEntry log, bool GenerateClusterInfo = true) { var key = Kooboo.IndexedDB.ByteConverter.GuidConverter.ConvertFromByte(log.KeyBytes); Sync.SyncObject item = new Sync.SyncObject(); var repo = SiteDb.GetRepository(log.StoreName); var siteobject = repo.GetByLog(log) as ISiteObject; if (log.EditType == EditType.Delete) { item.IsDelete = true; item.ObjectConstType = ConstTypeContainer.GetConstType(repo.ModelType); item.ObjectId = key; } else { if (siteobject != null) { item = Sync.SyncObjectConvertor.ToSyncObject(siteobject); } } if (GenerateClusterInfo) { Sync.Cluster.Integrity.Generate(SiteDb, item, log.Id); } item.SenderVersion = log.Id; return(item); }