Esempio n. 1
0
 public NoLogout(LoginUsers login)
 {
     InitializeComponent();
     _login        = login;
     _login.Reason = "Check";
     Manager.db.SaveChanges();
 }
        public AdminMenu(LoginUsers loginUsers)
        {
            InitializeComponent();
            DateTime t = DateTime.Now;

            dgView.ItemsSource    = Manager.db.Users.Select(n => new { n.FirstName, n.LastName, Age = (t.Month < n.Birthdate.Value.Month || (t.Month == n.Birthdate.Value.Month && t.Day < n.Birthdate.Value.Day))? (t.Year - n.Birthdate.Value.Year) - 1: (t.Year - n.Birthdate.Value.Year), RolesTitles = n.Roles.Title, n.Email, OfficesTitles = n.Offices.Title, n.Active }).ToList();
            cbOffices.ItemsSource = Manager.db.Offices.ToList();
            _loginUsers           = loginUsers;
        }
        public UserMenu(LoginUsers loginUsers)
        {
            InitializeComponent();
            _loginUsers  = loginUsers;
            tbHello.Text = "Hi, " + Manager.db.Users.FirstOrDefault(n => n.ID == loginUsers.UserID).FirstName + " " + Manager.db.Users
                           .FirstOrDefault(n => n.ID == loginUsers.UserID).LastName + ", Welcome to AMONIC AirLine.";
            var qw   = Manager.db.LoginUsers.Where(n => n.UserID == loginUsers.UserID).Select(n => DbFunctions.DiffSeconds(n.DateTimeLogin, n.DateTimeExit)).Sum().Value;
            var list = Manager.db.LoginUsers.Where(n => n.Cause == "System" && n.UserID == loginUsers.UserID).ToList();

            dtqqq.Text         = qw.ToString();
            tbTimeSpent.Text   = "Time spent on System: " + qw / 3600 + ":" + qw % 3600 / 60 + ":" + qw % 60;
            tbNumber.Text      = "Number of crashes: " + Manager.db.LoginUsers.Where(n => n.Cause == "Soft" && n.UserID == loginUsers.UserID).Count();
            dgView.ItemsSource = Manager.db.LoginUsers.Where(n => n.UserID == loginUsers.UserID)
                                 .Select(q => new { q.DateTimeLogin, q.DateTimeExit, qwe = DbFunctions.DiffSeconds(q.DateTimeLogin, q.DateTimeExit) / 3600 + ":" + DbFunctions.DiffSeconds(q.DateTimeLogin, q.DateTimeExit) % 3600 / 60 + ":" + DbFunctions.DiffSeconds(q.DateTimeLogin, q.DateTimeExit) % 60, q.Reason, q.Cause })
                                 .ToList();
            Binding binding = new Binding();

            int[] s = { 1, 2, 3, 4, 5, 6, 7 };
            binding.Source = s;
        }
        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                int Role;
                var Roles = Manager.db.Users.FirstOrDefault(n => n.Email == tbxLogin.Text && n.Password == tbxPassword.Text);
                if (Roles != null)
                {
                    Role = int.Parse(Roles.RoleID.ToString());
                }
                else
                {
                    throw new Exception();
                }
                bool?Active = Manager.db.Users.FirstOrDefault(n => n.Email == tbxLogin.Text && n.Password == tbxPassword.Text).Active;
                if (!Active.Value)
                {
                    MessageBox.Show("Пользователь деактивирован");
                    return;
                }
                LoginUsers loginUsers = new LoginUsers
                {
                    UserID        = Manager.db.Users.FirstOrDefault(n => n.Email == tbxLogin.Text).ID,
                    DateTimeLogin = DateTime.Now,
                    DateTimeExit  = DateTime.Now,
                    Cause         = "Soft",
                    Reason        = "Good"
                };
                switch (Role)
                {
                case 1:
                    new AdminMenu(loginUsers).Show();
                    new AuthCheck().Show();
                    break;

                case 2:
                    new UserMenu(loginUsers).Show();
                    var z = Manager.db.LoginUsers.Where(n => n.UserID == loginUsers.UserID).ToList();
                    if (z.Last().Cause.Contains("Soft") || z.Last().Cause.Contains("System"))
                    {
                        new NoLogout(z.Last()).Show();
                    }
                    break;
                }
                Manager.db.LoginUsers.Add(loginUsers);
                Manager.db.SaveChanges();
                Application.Current.MainWindow.Visibility = Visibility.Hidden;
            }
            catch
            {
                MessageBox.Show("Некорректные данные");
                countauth++;

                if (countauth == 3)
                {
                    timer.Start();
                    btnLogin.IsEnabled = false;
                    tbTime.Visibility  = Visibility.Visible;
                }
            }
        }