Skip to content
This repository has been archived by the owner on Jul 11, 2021. It is now read-only.

Commit

Permalink
Fixed up Login a bit for MVVM
Browse files Browse the repository at this point in the history
  • Loading branch information
remiX- committed Apr 21, 2018
1 parent 8c4e0cb commit 607b0b4
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 78 deletions.
74 changes: 66 additions & 8 deletions SeriesTracker/SeriesTracker/ViewModels/LoginViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,24 +1,33 @@
using Prism.Commands;
using Prism.Mvvm;
using SeriesTracker.Core;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;

namespace SeriesTracker.ViewModels
{
internal class LoginViewModel : BindableBase
internal class LoginViewModel : BindableBase, IViewModelBase
{
#region Vars
#region Fields
private bool isBusy;

private string username;
private string password;

private Brush statusBrush;
private string statusInfo;
#endregion

#region Properties
public bool IsBusy
{
get => isBusy;
set
{
SetProperty(ref isBusy, value);
LoginCommand.RaiseCanExecuteChanged();
}
}

public string Username
{
get => username;
Expand All @@ -29,6 +38,17 @@ public string Password
get => password;
set => SetProperty(ref password, value);
}

public Brush StatusBrush
{
get => statusBrush;
set => SetProperty(ref statusBrush, value);
}
public string StatusInfo
{
get => statusInfo;
set => SetProperty(ref statusInfo, value);
}
#endregion

// Commands
Expand All @@ -38,11 +58,26 @@ public string Password

public LoginViewModel()
{
//LoginCommand = new DelegateCommand(Login, () => !IsBusy && Username.IsNotBlank() && Password.IsNotBlank());
}

public void SetLoginStatus(Brush brush, string status)
{
StatusBrush = brush;
StatusInfo = status;
}

#region Login

/*
private async void Login()
{
bool goodLogin = await CheckLogin(Username, Password);
if (goodLogin)
{
await CompleteLogin();
}
}
private async Task<bool> CheckLogin(string UsernameOrEmail, string Password)
{
Expand Down Expand Up @@ -89,6 +124,29 @@ private async Task<bool> CheckLogin(string UsernameOrEmail, string Password)
return false;
}
}
private async Task CompleteLogin()
{
if (window_LoggedIn == null)
{
Hide();
window_LoggedIn = new WindowLoggingIn();
window_LoggedIn.Show();
}
AppGlobal.User.Shows = (await AppGlobal.Db.UserShowListAsync()).ListData;
AppGlobal.User.Categories = (await AppGlobal.Db.UserCategoryListAsync()).ListData;
window_LoggedIn.Close();
Window Main = new WindowMainNew();
Main.Show();
Application.Current.MainWindow = Main;
Close();
}
*/
#endregion
}
}
14 changes: 14 additions & 0 deletions SeriesTracker/SeriesTracker/ViewModels/ViewModelBase.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SeriesTracker.ViewModels
{
internal interface IViewModelBase
{
bool IsBusy { get; set; }
}
}
36 changes: 20 additions & 16 deletions SeriesTracker/SeriesTracker/Windows/WindowLogin.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,33 @@
Title="Login or Register"
Icon="../Resources/mainIcon.ico"
Height="350" Width="500"
Loaded="Window_Loaded" Initialized="Window_Initialized" MouseDown="Window_MouseDown"
WindowStartupLocation="CenterScreen" Visibility="Visible"
Style="{StaticResource STWindow}">
Initialized="Window_Initialized" Loaded="Window_Loaded" MouseDown="Window_MouseDown"
WindowStartupLocation="CenterScreen" Visibility="Hidden"
Style="{StaticResource STWindowNoResize}">
<Window.DataContext>
<viewModels:LoginViewModel />
</Window.DataContext>
<Grid Margin="10">
<Grid Margin="0">
<dragablz:TabablzControl x:Name="tc" FixedHeaderCount="2">
<dragablz:TabablzControl.InterTabController>
<dragablz:InterTabController />
</dragablz:TabablzControl.InterTabController>
<TabItem Header="Login">
<Grid>
<Grid Margin="10" HorizontalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="25" />
<RowDefinition Height="35" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="135" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="20" />
<ColumnDefinition />
</Grid.ColumnDefinitions>

<Label Grid.Row="1" Grid.Column="0" Content="Username/Email" VerticalAlignment="Center" HorizontalAlignment="Right" />
<TextBox Grid.Row="1" Grid.Column="2"
<Label Grid.Row="0" Grid.Column="0" Style="{StaticResource lbl-default-center-right}" Content="Username/Email" />
<TextBox Grid.Row="0" Grid.Column="2"
x:Name="txt_Login_UsernameOrEmail"
KeyDown="Login_KeyPress"
VerticalAlignment="Center">
Expand All @@ -49,14 +48,19 @@
</TextBox.Text>
</TextBox>

<Label Grid.Row="2" Grid.Column="0" Content="Password" HorizontalAlignment="Right" VerticalAlignment="Center" />
<PasswordBox Grid.Row="2" Grid.Column="2" x:Name="txt_Login_Password" KeyDown="Login_KeyPress" VerticalAlignment="Center" />
<Label Grid.Row="1" Grid.Column="0" Style="{StaticResource lbl-default-center-right}" Content="Password" />
<PasswordBox Grid.Row="1" Grid.Column="2" x:Name="txt_Login_Password"
KeyDown="Login_KeyPress"
VerticalAlignment="Center"
PasswordChanged="Password_PasswordChanged" />

<CheckBox Grid.Row="3" Grid.Column="2" x:Name="cb_RememberMe" Content="Remember me" HorizontalAlignment="Left" VerticalAlignment="Center" Checked="CB_RememberMe_CheckChange" Unchecked="CB_RememberMe_CheckChange" />
<CheckBox Grid.Row="2" Grid.Column="2" x:Name="cb_RememberMe"
Content="Remember me"
Checked="CB_RememberMe_CheckChange" Unchecked="CB_RememberMe_CheckChange" />

<StackPanel Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="3" Margin="0 0 0 10" HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Label x:Name="lbl_Login_Info" Content="Label" Margin="0,0,0,10" HorizontalAlignment="Center" />
<Button x:Name="btn_Login" Style="{StaticResource btn-default-bottom-center}" Content="Login" Click="Btn_Login_Click" />
<StackPanel Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3" Margin="0 0 0 10" HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Label Margin="0,0,0,10" Content="{Binding StatusInfo}" Foreground="{Binding StatusBrush}" HorizontalAlignment="Center" />
<Button x:Name="btn_Login" Style="{StaticResource btn-default-center-center}" Content="Login" Click="Btn_Login_Click" />
</StackPanel>
</Grid>
</TabItem>
Expand Down
Loading

0 comments on commit 607b0b4

Please sign in to comment.