using System.Linq.Expressions;
using System.Reflection;
using System.Text;
+using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Caliburn.Micro;
+using Pithos.Client.WPF.Properties;
namespace Pithos.Client.WPF.Preferences
private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Uri _uri;
+ private Uri _logoutUri;
+ private bool _loggingOut;
+
public Uri Uri
{
get
}
}
- public LoginView(Uri uri,string account=null)
+ public LoginView(Uri loginUri, Uri logoutUri, string account = null)
{
InitializeComponent();
if (String.IsNullOrWhiteSpace(account))
this.Title = "Retrieve Pithos credentials";
else
this.Title = "Retrieve Pithos credentials for " + account;
- Uri = uri;
- LoginBrowser.Navigate(uri);
+ Uri = loginUri;
+
+
+ _logoutUri = logoutUri;
+
+ _loggingOut = true;
+ LoginBrowser.Navigate(logoutUri ?? loginUri);
}
private void LoginBrowser_Navigating(object sender, System.Windows.Navigation.NavigatingCancelEventArgs e)
{
IsBusy.IsBusy = true;
- Log.Debug(e.ToString());
+ LoginBrowser.Visibility=Visibility.Hidden;
+
+ if (Log.IsDebugEnabled)
+ Log.Debug(e.ToString());
if (e.Uri.Scheme == "pithos")
{
private void LoginBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
- IsBusy.IsBusy = false;
+ if (_loggingOut)
+ {
+ _loggingOut = false;
+ IsBusy.BusyContent = "Opening login screen";
+ LoginBrowser.Navigate(Uri);
+ }
+ else
+ {
+ IsBusy.IsBusy = false;
+ LoginBrowser.Visibility = Visibility.Visible;
+ }
}
}
}