private void LogIn() { try { using (UnitOfWork uow = new UnitOfWork()) { List <User> result = uow.UserRepository.Get(x => x.UserLogin == User.UserLogin).ToList(); if (result.Count() == 0) { Message = "Логин или пароль неверный!"; return; } else if (PasswordHash.IsPasswordValid(UserPassword, int.Parse(result.First <User>().Salt), result.First <User>().UserPassword)) { User deserializedeUser = result.First(); XmlSerializeWrapper <User> .Serialize(deserializedeUser, "../lastUser.xml"); DeserializedUser.deserializedUser = XmlSerializeWrapper <User> .Deserialize("../lastUser.xml", FileMode.OpenOrCreate); List <OptionsPack> optionsPacks = XmlSerializeWrapper <List <OptionsPack> > .Deserialize("../appSettings.xml", FileMode.OpenOrCreate); OptionsViewModel.OptionsPack = optionsPacks.Find(x => x.OptionUserId == deserializedeUser.Id); MainWindow mainWindow = new MainWindow(); mainWindow.Show(); OptionsViewModel.OptionsPack?.setAppAccent(); OptionsViewModel.OptionsPack?.setAppTheme(); OptionsPack optionsPackUser = optionsPacks.Find(x => x.OptionUserId == DeserializedUser.deserializedUser.Id); if (optionsPackUser == null) { optionsPacks.Add(new OptionsPack()); XmlSerializeWrapper <List <OptionsPack> > .Serialize(optionsPacks, "../appSettings.xml"); } foreach (Window window in Application.Current.Windows) { if (window is LogInWindow) { window.Close(); break; } } } else { Message = "Логин или пароль неверный!"; return; } } } catch (Exception exception) { MessageBox.Show("Сообщение ошибки: " + exception.Message, "Произошла ошибка"); } }
private void Application_Startup(object sender, StartupEventArgs e) { List <OptionsPack> optionsPacks = XmlSerializeWrapper <List <OptionsPack> > .Deserialize("../appSettings.xml", FileMode.Open); OptionsPack currentUserSettings = optionsPacks.Find(x => x.OptionUserId == DeserializedUser.deserializedUser.Id); if (currentUserSettings?.IsSplashScreenShown ?? true) { SplashScreen splash = new SplashScreen("../Resources/foodTrackSplash.png"); splash.Show(autoClose: false, topMost: false); splash.Close(TimeSpan.FromSeconds(1)); } using (UnitOfWork unit = new UnitOfWork()) { IEnumerable <User> resultUserFound = unit.UserRepository.Get(x => x.UserLogin == DeserializedUser.deserializedUser.UserLogin); if (resultUserFound.Count() != 0 && (currentUserSettings?.IsStayAuthorized ?? false)) { if (resultUserFound.First <User>().UserPassword.SequenceEqual <byte>(DeserializedUser.deserializedUser.UserPassword)) { MainWindow mainWindow = new MainWindow(); mainWindow.Show(); currentUserSettings.setAppTheme(); currentUserSettings.setAppAccent(); OptionsViewModel.OptionsPack = currentUserSettings; } else { LogInWindow logInWindow = new LogInWindow(); logInWindow.Show(); } } else { LogInWindow logInWindow = new LogInWindow(); logInWindow.Show(); } } }