Exemplo n.º 1
0
 public void ApplyResolution(ISqlDataStore datastore, ISyncSessionInfo syncSessionInfo)
 {
     foreach (var mergeResolution in MergeResolutionToApplies)
     {
         mergeResolution.ApplyResolution(datastore, syncSessionInfo);
     }
 }
Exemplo n.º 2
0
 public SolvableEntityConflict(IEntityInfo entityInfo, ISyncSessionInfo syncSessionInfo)
     : this()
 {
     _entityInfo      = entityInfo;
     _syncSessionInfo = syncSessionInfo;
     EntityName       = entityInfo.GetNameInStore();
 }
Exemplo n.º 3
0
 public Conflict(IEntityInfo entityInfo, EntityChange local, EntityChange remote, ISyncSessionInfo syncSessionInfo)
 {
     _entityInfo      = entityInfo;
     _local           = local;
     _remote          = remote;
     _syncSessionInfo = syncSessionInfo;
 }
Exemplo n.º 4
0
        public IEntityConflict CreateEntityConflict(EntityChangeset entityChangeset, ISyncSessionInfo syncSessionInfo)
        {
            var entityInfo     = entityChangeset.GetSyncableEntity();
            var entityConflict = new SolvableEntityConflict(entityInfo, syncSessionInfo);

            EntitiesConflict.Add(entityConflict);
            return(entityConflict);
        }
Exemplo n.º 5
0
 public void SetSyncSession(ISyncSessionInfo syncSessionInfo)
 {
     _syncSessionInfo = syncSessionInfo;
     foreach (var entityChangeset in EntityChangeset)
     {
         entityChangeset.SetSyncSession(syncSessionInfo);
     }
 }
Exemplo n.º 6
0
        public void ApplyRemoteResolution(ISqlDataStore datastore, ISyncSessionInfo syncSessionInfo)
        {
            if (RemoteMergeResolution == null)
            {
                return;
            }

            RemoteMergeResolution.ApplyResolution(datastore, syncSessionInfo);
        }
Exemplo n.º 7
0
        public bool HasChangedInSession(string trackColName, ISyncSessionInfo syncSession)
        {
            var trackField = GetField(trackColName);

            if (trackField == null)
            {
                return(false);
            }

            return(trackField.HasChangedInSession(syncSession));
        }
Exemplo n.º 8
0
        public bool IsIncludeInSyncSession(ISyncSessionInfo syncSession)
        {
            if (Value == null ||
                Value == DBNull.Value)
            {
                return(false);
            }

            var lastUpdate = (DateTime)Value;

            return(lastUpdate > syncSession.LowBoundaryAnchor && lastUpdate <= syncSession.HighBoundaryAnchor);
        }
Exemplo n.º 9
0
        public static void InsertInLocal(IDataStore localDataStore, ISyncSessionInfo syncSessionInfo, ISyncable remoteEntity)
        {
            var entityInfo = localDataStore.GetEntityInfo(remoteEntity);

            var mergeResolution = new MergeResolution
            {
                OperationType = OperationTypes.Insert,
                Entity        = EntityChange.Create(entityInfo, remoteEntity)
            };

            mergeResolution.ApplyResolution(localDataStore as ISqlDataStore, syncSessionInfo);
        }
Exemplo n.º 10
0
        public void ApplyRemoteResolution(ISqlDataStore dataStore, ISyncSessionInfo syncSession, ISyncStatProvider statProvider)
        {
            if (EntitiesConflict == null || EntitiesConflict.Count == 0)
            {
                return;
            }

            var progression = new LinearProgression(EntitiesConflict.Count);

            statProvider.SetNewState(SyncStates.ApplyRemoteResolution, progression);

            foreach (var entityConflict in EntitiesConflict)
            {
                entityConflict.ApplyRemoteResolution(dataStore, syncSession);
                progression.CurrentStepFinished();
            }
        }
Exemplo n.º 11
0
        public void ApplyRemoteResolution(ISqlDataStore dataStore, ISyncSessionInfo syncSessionInfo)
        {
            if (Conflicts == null || Conflicts.Count == 0)
            {
                return;
            }

            foreach (var conflict in Conflicts)
            {
                conflict.ApplyRemotePreResolution(dataStore, syncSessionInfo);
            }

            foreach (var conflict in Conflicts)
            {
                conflict.ApplyRemoteResolution(dataStore, syncSessionInfo);
            }
        }
Exemplo n.º 12
0
        public void ApplyResolution(ISqlDataStore datastore, ISyncSessionInfo syncSessionInfo)
        {
            var entityInfo             = datastore.Entities[Entity.EntityName];
            var entityChangesetBuilder = new EntityChangesetBuilder(entityInfo, syncSessionInfo);

            switch (OperationType)
            {
            case OperationTypes.Insert:
                Entity.ApplyInsert(datastore, entityChangesetBuilder);
                break;

            case OperationTypes.Update:
                Entity.ApplyUpdate(datastore, entityChangesetBuilder);
                break;

            case OperationTypes.Delete:
                Entity.ApplyDelete(datastore, Entity.EntityName, entityChangesetBuilder);
                break;
            }
        }
Exemplo n.º 13
0
 public EntitiesChangeset(ISqlDataStore dataStore, ISyncSessionInfo syncSessionInfo)
 {
     _dataStore      = dataStore;
     EntityChangeset = new List <EntityChangeset>();
     SetSyncSession(syncSessionInfo);
 }
Exemplo n.º 14
0
 protected SyncQuery(IDataStore datastore, ISyncableEntity entity, ISyncSessionInfo syncSession)
 {
     _datastore   = datastore;
     _syncSession = syncSession;
     Entity       = entity;
 }
Exemplo n.º 15
0
 public EntityChangesetBuilder(IEntityInfo entityInfo, ISyncSessionInfo syncSessionInfo)
 {
     _entityInfo      = entityInfo;
     _syncSessionInfo = syncSessionInfo;
 }
Exemplo n.º 16
0
 public ClientEntitiesChangeset(ISqlDataStore dataStore, ISyncSessionInfo syncSessionInfo)
     : base(dataStore, syncSessionInfo)
 {
 }
Exemplo n.º 17
0
 public IEntityConflict CreateEntityConflict(EntityChangeset entityChangeset, ISyncSessionInfo syncSessionInfo)
 {
     return(new IgnoreAllEntityConflict());
 }
Exemplo n.º 18
0
 public void SetSyncSession(ISyncSessionInfo syncSessionInfo)
 {
     _syncSession = syncSessionInfo;
 }
Exemplo n.º 19
0
        public static EntityChangeset Create(ISqlDataStore dataStore, IEntityInfo syncEntity, ISyncSessionInfo syncSessionInfo)
        {
            var entityName = syncEntity.GetNameInStore();

            var result = new EntityChangeset(entityName)
            {
                _syncSession = syncSessionInfo
            };

            result.SetDatastore(dataStore);
            return(result);
        }
Exemplo n.º 20
0
 public DeleteSyncQuery(IDataStore datastore, ISyncableEntity entity, ISyncSessionInfo syncSession)
     : base(datastore, entity.EntityTombstoneInfo, syncSession)
 {
 }
Exemplo n.º 21
0
 public UpdateSyncQuery(IDataStore datastore, ISyncableEntity entity, ISyncSessionInfo syncSession)
     : base(datastore, entity, syncSession)
 {
 }
Exemplo n.º 22
0
 public bool HasChangedInSession(ISyncSessionInfo syncSession)
 {
     return(FieldValue.IsIncludeInSyncSession(syncSession));
 }