aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ApartmentManager/ApartmentManager/Handler/LoginHandler.cs100
-rw-r--r--ApartmentManager/ApartmentManager/ViewModel/LoginViewModel.cs96
2 files changed, 96 insertions, 100 deletions
diff --git a/ApartmentManager/ApartmentManager/Handler/LoginHandler.cs b/ApartmentManager/ApartmentManager/Handler/LoginHandler.cs
index 65efeca..d0088d9 100644
--- a/ApartmentManager/ApartmentManager/Handler/LoginHandler.cs
+++ b/ApartmentManager/ApartmentManager/Handler/LoginHandler.cs
@@ -2,34 +2,114 @@
using ApartmentManager.Persistency;
using Newtonsoft.Json;
using System;
-using ApartmentManager.Singletons;
using ApartmentManager.ViewModel;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using ApartmentManager.View;
+using Windows.UI.Popups;
+using ApartmentManager.Singletons;
namespace ApartmentManager.Handler
{
- public static class LoginHandler
+ public class LoginHandler
{
- public static void LogIn(string username, string password)
+
+ private LoginViewModel _vm;
+
+ public LoginHandler(LoginViewModel vm)
+ {
+ _vm = vm;
+ }
+
+ public void LogIn()
{
- string serializedUser = ApiClient.GetData($"api/Users/{username}");
+ try
+ {
+ string serializedUser = ApiClient.GetData($"api/Users/{_vm.Username}");
if (serializedUser != null)
{
User user = JsonConvert.DeserializeObject<User>(serializedUser);
- if (user.Password == password)
+ if (user.Password == _vm.Password)
{
UserSingleton.Instance.CurrentUser = user;
-
-
- }
+ NavigateToMainPage();
+ }
else throw new Exception("Wrong password!");
}
else throw new Exception("Wrong username!");
-
+ }
+ catch (Exception ex)
+ {
+ var msg = new MessageDialog(ex.Message).ShowAsync();
+ }
}
- public static void LogOut()
+ public void LogOut()
{
UserSingleton.Instance.CurrentUser = null;
+ NavigateToLoginPage();
+ }
+
+ private void NavigateToMainPage()
+ {
+ AppShell appShell = Window.Current.Content as AppShell;
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active
+ if (appShell == null)
+ {
+ // Create a AppShell to act as the navigation context and navigate to the first page
+ appShell = new AppShell();
+
+ // Set the default language
+ appShell.Language = Windows.Globalization.ApplicationLanguages.Languages[0];
+
+ }
+
+ // Place our app shell in the current Window
+ Window.Current.Content = appShell;
+
+ if (appShell.AppFrame.Content == null)
+ {
+ // When the navigation stack isn't restored, navigate to the first page
+ // suppressing the initial entrance animation.
+ if (UserSingleton.Instance.CurrentUser.IsBm)
+ {
+ BmViewModel bvm = new BmViewModel();
+ bvm.BmHandler.GetApartments();
+ appShell.AppFrame.Navigate(typeof(BmMainPage));
+ }
+ else
+ {
+ ApartmentViewModel avm = new ApartmentViewModel();
+ avm.ApartmentHandler.GetApartmentResidents();
+ avm.ApartmentHandler.GetApartment();
+ avm.ApartmentHandler.GetApartmentDefects();
+ appShell.AppFrame.Navigate(typeof(ApartmentPage));
+ }
+ }
+
+ // Ensure the current window is active
+ Window.Current.Activate();
+ }
+
+ private void NavigateToLoginPage()
+ {
+ Frame rootFrame = Window.Current.Content as Frame;
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active
+ if (rootFrame == null)
+ {
+ // Create a Frame to act as the navigation context and navigate to the first page
+ rootFrame = new Frame();
+
+ // Place the frame in the current Window
+ Window.Current.Content = rootFrame;
+ }
+
+ rootFrame.Navigate(typeof(LoginPage));
+ Window.Current.Activate();
}
}
}
diff --git a/ApartmentManager/ApartmentManager/ViewModel/LoginViewModel.cs b/ApartmentManager/ApartmentManager/ViewModel/LoginViewModel.cs
index 0031061..82b7f97 100644
--- a/ApartmentManager/ApartmentManager/ViewModel/LoginViewModel.cs
+++ b/ApartmentManager/ApartmentManager/ViewModel/LoginViewModel.cs
@@ -1,106 +1,22 @@
using ApartmentManager.Common;
using ApartmentManager.Handler;
-using ApartmentManager.Model;
-using ApartmentManager.View;
-using System;
using System.Windows.Input;
-using Windows.UI.Popups;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using ApartmentManager.Singletons;
namespace ApartmentManager.ViewModel
{
public class LoginViewModel
{
- public static string Username { get; set; }
- public static string Password { get; set; }
+ public string Username { get; set; }
+ public string Password { get; set; }
public ICommand LogInCommand { get; set; }
public ICommand LogOutCommand { get; set; }
+ private LoginHandler loginHandler;
public LoginViewModel()
{
- LogInCommand = new RelayCommand(LogIn);
- LogOutCommand = new RelayCommand(LogOut);
- }
-
- private void LogIn()
- {
- try
- {
- LoginHandler.LogIn(Username, Password);
- NavigateToMainPage();
- }
- catch(Exception ex)
- {
- var msg = new MessageDialog(ex.Message);
- msg.ShowAsync();
- }
- }
-
- private void LogOut()
- {
- LoginHandler.LogOut();
- NavigateToLoginPage();
- Username = null;
- Password = null;
- }
-
- private void NavigateToMainPage()
- {
- AppShell appShell = Window.Current.Content as AppShell;
-
- // Do not repeat app initialization when the Window already has content,
- // just ensure that the window is active
- if (appShell == null)
- {
- // Create a AppShell to act as the navigation context and navigate to the first page
- appShell = new AppShell();
-
- // Set the default language
- appShell.Language = Windows.Globalization.ApplicationLanguages.Languages[0];
-
- }
-
- // Place our app shell in the current Window
- Window.Current.Content = appShell;
-
- if (appShell.AppFrame.Content == null)
- {
- // When the navigation stack isn't restored, navigate to the first page
- // suppressing the initial entrance animation.
- if (UserSingleton.Instance.CurrentUser.IsBm) appShell.AppFrame.Navigate(typeof(BoardMembersMainPage));
- else
- {
- ApartmentViewModel asd = new ApartmentViewModel();
- asd.ApartmentHandler.GetApartmentResidents();
- asd.ApartmentHandler.GetApartment();
- asd.ApartmentHandler.GetApartmentDefects();
- appShell.AppFrame.Navigate(typeof(ApartmentPage));
- }
- }
-
- // Ensure the current window is active
- Window.Current.Activate();
- }
-
- private void NavigateToLoginPage()
- {
- Frame rootFrame = Window.Current.Content as Frame;
-
- // Do not repeat app initialization when the Window already has content,
- // just ensure that the window is active
- if (rootFrame == null)
- {
- // Create a Frame to act as the navigation context and navigate to the first page
- rootFrame = new Frame();
-
- // Place the frame in the current Window
- Window.Current.Content = rootFrame;
- }
-
- rootFrame.Navigate(typeof(LoginPage));
- Window.Current.Activate();
+ loginHandler = new LoginHandler(this);
+ LogInCommand = new RelayCommand(loginHandler.LogIn);
+ LogOutCommand = new RelayCommand(loginHandler.LogOut);
}
}
}