コード例 #1
0
ファイル: EntityChangeset.cs プロジェクト: sGeeK44/OpenNet
        private void PopulateUpdate(ISyncableEntity entity)
        {
            var query = new UpdateSyncQuery(_datastore, entity, _syncSession);

            Update = _datastore.ExecuteQuery(query, _entitySerialiazer)
                     .Where(IsNotInserted)
                     .ToList();
        }
コード例 #2
0
 public UpdateSyncQuery(IDataStore datastore, ISyncableEntity entity, ISyncSessionInfo syncSession)
     : base(datastore, entity, syncSession)
 {
 }
コード例 #3
0
 protected SyncQuery(IDataStore datastore, ISyncableEntity entity, ISyncSessionInfo syncSession)
 {
     _datastore   = datastore;
     _syncSession = syncSession;
     Entity       = entity;
 }
コード例 #4
0
ファイル: EntityChangeset.cs プロジェクト: sGeeK44/OpenNet
        private void PopulateInsert(ISyncableEntity entity)
        {
            var query = new InsertSyncQuery(_datastore, entity, _syncSession);

            Insert = _datastore.ExecuteQuery(query, _entitySerialiazer).ToList();
        }
コード例 #5
0
ファイル: EntityChangeset.cs プロジェクト: sGeeK44/OpenNet
 private bool HasChangedOnBothSide(EntityChange existing, ISyncableEntity entity)
 {
     return(existing.HasChangedInSession(entity.UpdateTrackingColumn, _syncSession) ||
            existing.HasChangedInSession(entity.LastSyncTrackingColumn, _syncSession));
 }
コード例 #6
0
ファイル: EntityChangeset.cs プロジェクト: sGeeK44/OpenNet
 private bool HasInsertedOnTarget(EntityChange existing, ISyncableEntity entity)
 {
     return(existing.HasChangedInSession(entity.CreationTrackingColumn, _syncSession));
 }
コード例 #7
0
ファイル: EntityChangeset.cs プロジェクト: sGeeK44/OpenNet
        private void ApplyDeletetWhenExistInLocal(IEntityConflict entityConflict, EntityChange existing, ISyncableEntity entity,
                                                  EntityChange row)
        {
            if (HasInsertedOnTarget(existing, entity))
            {
                entityConflict.OnApplyDeleteExistingInserted(existing);
                return;
            }

            if (HasChangedOnBothSide(existing, entity))
            {
                entityConflict.OnApplyDeleteExistingUpdated(existing);
                return;
            }

            try
            {
                row.ApplyDelete(_datastore, EntityName, _entitySerialiazer);
            }
            catch
            {
                entityConflict.OnApplyDelete(existing, row);
            }
        }
コード例 #8
0
ファイル: EntityChangeset.cs プロジェクト: sGeeK44/OpenNet
        private void ApplyUpdateWhenExistInLocal(IEntityConflict entityConflict, EntityChange existing, ISyncableEntity entity,
                                                 EntityChange row)
        {
            if (HasChangedOnBothSide(existing, entity))
            {
                entityConflict.OnApplyUpdateExistingUpdatedToo(existing, row);
                return;
            }

            try
            {
                row.ApplyUpdate(_datastore, _entitySerialiazer);
            }
            catch
            {
                entityConflict.OnApplyUpdate(existing, row);
            }
        }
コード例 #9
0
ファイル: EntityChangeset.cs プロジェクト: sGeeK44/OpenNet
        private void PopulateDelete(ISyncableEntity entity)
        {
            var query = new DeleteSyncQuery(_datastore, entity, _syncSession);

            Delete = _datastore.ExecuteQuery(query, _entityTombstoneSerialiazer).ToList();
        }
コード例 #10
0
ファイル: DeleteSyncQuery.cs プロジェクト: sGeeK44/OpenNet
 public DeleteSyncQuery(IDataStore datastore, ISyncableEntity entity, ISyncSessionInfo syncSession)
     : base(datastore, entity.EntityTombstoneInfo, syncSession)
 {
 }