public async Task LogoutAsync() { var closer = new InternalCloseRequestedEventArgs(CloseReason.None); this.OnCloseRequested(closer); await closer.WhenAll(); this.ErrorMessage = string.Empty; if (this.DataBaseName != string.Empty) { await this.UnloadAsync(); } await this.CloseAsync(); this.NotifyOfPropertyChange(nameof(this.CanLogin)); }
public async Task UnloadAsync() { if (this.DataBaseName == string.Empty) { throw new InvalidOperationException(); } await this.CloseDocumentsAsync(false); var args = new InternalCloseRequestedEventArgs(CloseReason.None); this.OnUnloadRequested(args); await args.WhenAll(); this.OnUnloading(EventArgs.Empty); this.BeginProgress(); await this.LeaveDataBaseAsync(); this.dataBaseName = null; this.IsLoaded = false; this.EndProgress(); this.Refresh(); this.OnUnloaded(EventArgs.Empty); }