┌─────────┐ ┌───────────┐ ┌─────────────┐ ┌──────────┐ ┌───────────┐ ┌────────────┐ ┌────────────┐ │UserAgent│ │F.AppFacade│ │F.PresService│ │F.SvcAgent│ │B.SvcFacade│ │B.AppService│ │B.Repository│ └────┬────┘ └─────┬─────┘ └──────┬──────┘ └─────┬────┘ └─────┬─────┘ └──────┬─────┘ └──────┬─────┘ │ │ │ │ │ │ │ ╔═══════════╤══╪══════════════════════════════════╪══════════════════════════════╪═══════════════════════╪══════════════════════╪═══════════════════════╪══════════════════════════════╪════════════════╗ ║ RETRIEVE │ │ │ │ │ │ │ │ ║ ╟───────────┘ │ GET Entity 3 │ │ │ │ │ │ ║ ║ │─────────────────────────────────>│ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ Get(3) │ │ │ │ │ ║ ║ │ │─────────────────────────────>│ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ Get(3) │ │ │ │ ║ ║ │ │ │──────────────────────>│ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ WCF Get(3) │ │ │ ║ ║ │ │ │ │─────────────────────>│ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ Get (3) │ │ ║ ║ │ │ │ │ │──────────────────────>│ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ Get(3) │ ║ ║ │ │ │ │ │ │─────────────────────────────>│ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ return Entity │ ║ ║ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ return Entity │ │ ║ ║ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ return Entity │ │ │ ║ ║ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ return Entity │ │ │ │ ║ ║ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ return Entity │ │ │ │ │ ║ ║ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │────┐ │ │ │ │ │ ║ ║ │ │ │ encode as JSON │ │ │ │ │ ║ ║ │ │<───┘ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ returns JSON │ │ │ │ │ │ ║ ║ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ ║ ╚══════════════╪══════════════════════════════════╪══════════════════════════════╪═══════════════════════╪══════════════════════╪═══════════════════════╪══════════════════════════════╪════════════════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════════════╤══════════════════════════════════╪══════════════════════════════╪═══════════════════════╪══════════════════════╪═══════════════════════╪══════════════════════════════╪════════════════╗ ║ POST UPDATE │ │ │ │ │ │ │ ║ ╟──────────────┘────┐ │ │ │ │ │ │ ║ ║ │ │ user edits entity ViewModel │ │ │ │ │ │ ║ ║ │<───┘ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ POST Entity 3 + JSON body │ │ │ │ │ │ ║ ║ │─────────────────────────────────>│ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │────┐ │ │ │ │ │ ║ ║ │ │ │ Map JSON to new Entity' │ │ │ │ │ ║ ║ │ │<───┘ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ ╔══════════════╧═══════════════╗ │ │ │ │ │ ║ ║ │ ║Entity' will be 'incomplete' ░║ │ │ │ │ │ ║ ║ │ ╚══════════════╤═══════════════╝ │ │ │ │ │ ║ ║ │ │ Update(entity) │ │ │ │ │ ║ ║ │ │─────────────────────────────>│ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ Update(entity) │ │ │ │ ║ ║ │ │ │──────────────────────>│ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ Update(entity) │ │ │ ║ ║ │ │ │ │─────────────────────>│ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ Update(entity) │ │ ║ ║ │ │ │ │ │──────────────────────>│ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ Retrieve (3) as entity' │ ║ ║ │ │ │ │ │ │─────────────────────────────>│ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │────┐ │ ║ ║ │ │ │ │ │ │ │ Map entity' over entity │ ║ ║ │ │ │ │ │ │<───┘ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ ╔═══════════════╧═══════════════╗ │ ║ ║ │ │ │ │ │ ║Only entity is in orm context ░║ │ ║ ║ │ │ │ │ │ ╚═══════════════╤═══════════════╝ │ ║ ║ │ │ │ │ │ │ UpdateOnCommit(entity) │ ║ ║ │ │ │ │ │ │─────────────────────────────>│ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ Commit() │ ║ ║ │ │ │ │ │ │─────────────────────────────>│ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ ACK │ │ ║ ║ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ ACK │ │ │ ║ ║ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ │ ACK │ │ │ │ ║ ║ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │ ACK │ │ │ │ │ ║ ║ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ │─ ─ ┐ │ │ │ │ │ ║ ║ │ │ | Create JSON ACK │ │ │ │ │ ║ ║ │ │< ─ ┘ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║ ║ │ ACK │ │ │ │ │ │ ║ ║ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ ║ ╚══════════════╪══════════════════════════════════╪══════════════════════════════╪═══════════════════════╪══════════════════════╪═══════════════════════╪══════════════════════════════╪════════════════╝ ┌────┴────┐ ┌─────┴─────┐ ┌──────┴──────┐ ┌─────┴────┐ ┌─────┴─────┐ ┌──────┴─────┐ ┌──────┴─────┐ │UserAgent│ │F.AppFacade│ │F.PresService│ │F.SvcAgent│ │B.SvcFacade│ │B.AppService│ │B.Repository│ └─────────┘ └───────────┘ └─────────────┘ └──────────┘ └───────────┘ └────────────┘ └────────────┘