private IObservable <ITransition> getCorrectTransitionFromResults( IEnumerable <IConflictResolutionResult <TThreadsafeModel> > results, TThreadsafeModel originalEntity) { foreach (var result in results) { switch (result) { case UpdateResult <TThreadsafeModel> u when u.OriginalId == originalEntity.Id: return(Observable.Return(Done.Transition(extractFrom(result)))); case IgnoreResult <TThreadsafeModel> i when i.Id == originalEntity.Id: return(Observable.Return(EntityChanged.Transition(originalEntity))); } } throw new ArgumentException("Results must contain result with one of the specified ids."); }
private IObservable <ITransition> entityChanged(TThreadsafeModel entity) => Observable.Return(EntityChanged.Transition(entity));