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