public AuthorizationViewModel(IUserRelatedRepository repo, IUserSession userSession) { Repository = repo; UserSession = userSession; LoginCommand = RegisterCommandAction( (obj) => { #if DEBUG AuthenticatedUser = Repository.FindUser("root"); InputtedPassword = "******"; #else AuthenticatedUser = Repository.FindUser(InputtedLogin); #endif if (IsInputtedPasswordCorrect()) { RelatedView.Hide(); UserEvents.RaiseOnUserLoggedIn(AuthenticatedUser); UserSession.AuthorizeUser( AuthenticatedUser, UserRightsBuilder.GetUserRights( UserSession.GetAccessLevel(AuthenticatedUser) ) ); _mainView = new MainView(); _mainView.DataContext = ResolveDependency <IMainViewModel>() as MainViewModel; _mainView.Show(); } else { MessageToUser = "******"; } } ); UserEvents.OnUserLoggedOut += () => { _mainView.Hide(); InputtedLogin = InputtedPassword = string.Empty; RelatedView.Show(); }; }