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();
        }
Ejemplo n.º 2
0
        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();
            });
        }