public override async Task SaveAsync() { var model = await Model.SaveAsync(); Model = model; NativeLanguageChangedEventMessage.Publish(Model.NativeLanguageText); DispatchSavedEvent(); NotifyOfPropertyChange(() => CanSaveAsync); if (_Callback != null) { _Callback(this, new Common.ResultArgs <StudyDataEdit>(Model)); } TryClose(); }
public void Handle(NativeLanguageChangedEventMessage message) { Model.NativeLanguageText = message.NewNativeLanguageText; NotifyOfPropertyChange(() => Model); NotifyOfPropertyChange(() => CanSave); if (!Model.IsSavable) { throw new Exception(); } Model.BeginSave((s, r) => { if (r.Error != null) { if (_Callback != null) { var result = new Common.ResultArgs <StudyDataEdit>(r.Error); _Callback(this, result); _Callback = null; } else { throw r.Error; } } if (_Callback != null) { var result = new Common.ResultArgs <StudyDataEdit>(Model); _Callback(this, result); _Callback = null; } TryClose(); }); }