Пример #1
0
        public IdentityChange Resolve(IDataStore localDataStore)
        {
            if (_alreadyMerge)
            {
                return(null);
            }

            var syncableEntity = SyncEntity.Create(_entityInfo);
            var solver         = syncableEntity.GetSolver() as IEntityConflictSolver ?? new DefaultEntitySolver <ISyncable>();

            solver.SyncSessionInfo = _syncSessionInfo;

            var serializer   = _entityInfo.GetSerializer();
            var localEntity  = serializer.Deserialize(_local);
            var remoteEntity = serializer.Deserialize(_remote);

            RemoteMergeResolution = solver.Merge(localDataStore, localEntity, remoteEntity);
            _alreadyMerge         = true;
            return(RemoteMergeResolution.GetIdentityChange());
        }
Пример #2
0
 /// <summary>
 /// Return serializer to use to convert back entity from db
 /// </summary>
 /// <returns>Entity serializer</returns>
 public IEntitySerializer GetSerializer()
 {
     return(_syncEntity.GetSerializer());
 }