void bw_DoWork(object sender, DoWorkEventArgs e) { var user = e.Argument as UserPackage; RTM.User users = new RTM.User(); try { var entity = new RTMEntities(); users = DataManagement.AuthenticateUser(user.UserName, user.Password); if (users != null) { UserData.CurrentUser = users; UserData.CurrentPoistion = entity.Positions.Where(s => s.PositionId == UserData.CurrentUser.PositionId).First(); UserData.CurrentAccessRight = entity.AccessRights.Where(s => s.AccessId == UserData.CurrentUser.AccessId).First(); UserData.OrganizationalPosition = entity.OrganizationalCharts.Where(s => s.ChartNodeId == UserData.CurrentUser.OrganizationPosition).First(); entity.Users.Where(s => s.UserId == UserData.CurrentUser.UserId).FirstOrDefault().LastLogin = DateTime.Now; entity.SaveChanges(); NavigationHandler.NavigateToPageThreadSafe(this, "UserManagement/StartPage.xaml", false); } else { ErrorHandler.ShowErrorMessage("نام کاربری یا کلمه عبور اشتباه است"); Password.Dispatcher.BeginInvoke((Action) delegate { Password.Password = ""; }, System.Windows.Threading.DispatcherPriority.Normal); } } catch (System.Exception ex) { ErrorHandler.ShowErrorMessage("ارتباط با سرور امکان پذیر نیست" + ex.Message); } }
private void OpenBtn_Click(object sender, RoutedEventArgs e) { var selectedUser = Grid.SelectedItem as User; if (selectedUser == null) { ErrorHandler.NotifyUser(Errors.NotSelected); return; } AccessRight accessRights = new AccessRight(); //ThreadStart ts = new ThreadStart(delegate{ // accessRights = DataManagement.RetrieveAccessRight(selectedUser.AccessId); // if (accessRights != null) // { // NavigationHandler.NavigateToPageThreadSafe(this, new NewUser(selectedUser, accessRights)); // } //}); //Thread t = new Thread(ts); //t.SetApartmentState(ApartmentState.STA); //t.Start(); accessRights = DataManagement.RetrieveAccessRight(selectedUser.AccessId); if (accessRights != null) { NavigationHandler.NavigateToPageThreadSafe(this, new NewUser(selectedUser, accessRights)); } }