We're updating the issue view to help you get more done. 

Add ClientTransactionSyncService.Synchronize

Description

void ClientTransactionSyncService.Synchronize (ClientTransaction clientTransaction, RelationEndPointID endPointID)

  • Same error conditions as with IsSynchronized

  • If IObjectEndPoint, call RelationEndPointMap.Synchronize (objectEndPoint)

  • If ICollectionEndPoint, call RelationEndPointMap.Synchronize (objectEndPoint) for each unsynchronized opposite end-point.

  • RelationEndPointMap.Synchronize (IObjectEndPoint endPoint)

    • If opposite is anonymous => throw.

    • Get opposite end-point, call endPoint.SynchronizeWith (oppositeEndPoint).

  • IObjectEndPoint.SyncrhonizeWith (ICollectionEndPoint oppositeEndPoint)

    • SyncState: ignore

    • UnsyncState: call oppositeEndPoint.SynchronizeWith (this)

  • ICollectionEndPoint.SynchronizeWith (IObjectEndPoint oppositeEndPoint)

    • IncompleteState: throw

    • CompleteState:

      • _unsyncrhonizedOppositeEndPoints.Remove (oppositeEndPoint) // throw if not in list

      • _dataKeeper.RegisterOritinalItem (oppositeEndPoint.GetDomainObject())

      • oppositeEndPoint.MarkSynchronized()

Assignee

Fabian Schmied

Reporter

User known

Labels

None

Time tracking

2h

Components

Fix versions

Priority

Normal
Configure