Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            // Флаг нахождения такого логина в базе
            bool LoginRight = false;
            var  NeededUser = new User();

            // Сверяем с данными из БД
            using (var context = new MyDbContext())
            {
                var UserFind = context.Users.ToList();
                foreach (User userF in UserFind)
                {
                    // Если встречаем такой логин в базе, то сверяем пароль
                    if (userF.Login.Equals(LoginText.Text))
                    {
                        LoginRight = true;
                        NeededUser = userF;
                    }
                }
                if (!LoginRight)
                {
                    MessageBox.Show("Неверный логин.");
                }
                else
                {
                    if (PasswordText.Text == NeededUser.Password)
                    {
                        if (NeededUser.Type == "admin")
                        {
                            // Переход на форму админа
                            MainPage_AdminLogged mainFormAdmin = new MainPage_AdminLogged(NeededUser);
                            mainFormAdmin.Show();
                        }
                        else
                        {
                            // Переход на форму для авторизованного пользователя
                            MainPage_UserLogged mainFormUser = new MainPage_UserLogged(NeededUser);
                            int a = NeededUser.Id;
                            mainFormUser.Show();

                            this.Hide(); // Скрываем эту форму
                        }
                    }
                    else
                    {
                        MessageBox.Show("Неверный пароль.");
                    }
                }
            }
            // Окно входа скрывается по завершению работы с ней
        }
        private void buttonRegistration_Click(object sender, EventArgs e)
        {
            bool LoginRight    = false; // Флаг для проверки уникальности Login
            bool PasswordMatch = false; // Флаг для проверки совпадения паролей

            LoginRight    = false;
            PasswordMatch = false;

            // Проверка на совпадение двух паролей
            if (PasswordText.Text == RePasswordText.Text)
            {
                PasswordMatch = true;
            }
            else
            {
                MessageBox.Show("Пароли не совпадают,\nвведите заново");
            }
            // Поиск в базе пользователя с таким же Login (Этот параметр должен быть уникальным для каждого пользователя)

            bool ExistUsers = false;

            using (var context = new MyDbContext())
            {
                var UserFind = context.Users.ToList();
                foreach (User userF in UserFind)
                {
                    ExistUsers = true;
                    // Если встречаем такой логин в базе, то сразу выходим из цикла
                    if (userF.Login.Equals(LoginText.Text))
                    {
                        LoginRight = false;
                        break;
                    }
                    else
                    {
                        LoginRight = true;
                    }
                }
            }

            // Различаем обычного пользователся от админа
            bool   FlagContinue  = false;
            string PasswordAdmin = "1111";

            bool FlagAdminPassword = false;

            if (PasswordForAdmin.Text != "" && PasswordForAdmin.Text != PasswordAdmin)
            {
                MessageBox.Show("Неверный пароль\nдля администратора");
                FlagContinue = false;
            }
            else
            {
                FlagContinue = true;
            }

            if (PasswordForAdmin.Text == PasswordAdmin)
            {
                FlagContinue      = true;
                FlagAdminPassword = true;
            }

            // Если  пользователей в базе пока нет, то первый зарегистрировавшийся может выбрать любой логин
            if (!ExistUsers)
            {
                LoginRight = true;
            }

            if (LoginRight == false)
            {
                MessageBox.Show("Данный логин уже занят,\nзамените его");
            }


            if (LoginRight && PasswordMatch && FlagContinue)
            {
                User CurrUser;
                using (var context = new MyDbContext())
                {
                    User        user1    = new User();
                    UserProfile profile1 = new UserProfile();

                    user1.Login    = LoginText.Text;
                    user1.Password = PasswordText.Text;

                    profile1.UserName    = NameText.Text;
                    profile1.PhoneNumber = NumberText.Text;

                    if (FlagAdminPassword)
                    {
                        user1.Type = "admin";
                    }

                    context.Users.Add(user1);
                    context.UserProfiles.Add(profile1);
                    context.SaveChanges();

                    CurrUser = user1;
                }
                if (!FlagAdminPassword)
                {
                    // Переход на форму для авторизованного пользователя
                    this.Hide();
                    MainPage_UserLogged mainFormUser = new MainPage_UserLogged(CurrUser);
                    mainFormUser.Show();
                }
                else
                {
                    // Переход на форму для админа
                    this.Hide();
                    MainPage_AdminLogged mainFormAdmin = new MainPage_AdminLogged(CurrUser);
                    mainFormAdmin.Show();
                }
            }
        }