public IObservable <Unit> SetCurrentMissionItemIndex() { return(Observable.Create <Unit>(observer => { var setCurrentMissionItemIndexResponse = _missionServiceClient.SetCurrentMissionItemIndex(new SetCurrentMissionItemIndexRequest()); var missionResult = setCurrentMissionItemIndexResponse.MissionResult; if (missionResult.Result == MissionResult.Types.Result.Success) { observer.OnCompleted(); } else { observer.OnError(new MissionException(missionResult.Result, missionResult.ResultStr)); } return Task.FromResult(Disposable.Empty); })); }