| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Data;
 
- using System.Drawing;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows.Forms;
 
- using System.Data.SqlClient;  // для работы с базами данных
 
- namespace СУБД_Агентство
 
- {
 
-     public partial class Form1 : Form
 
-     {
 
-         public Form1()
 
-         {
 
-             InitializeComponent();
 
-         }
 
-         // строка подключения к базе данных
 
-         public static string txtcon = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DBAgentstvo.mdf;Integrated Security=True;Connect Timeout=30";
 
-         /// <summary>
 
-         /// Генерация капчи из 4-х символов
 
-         /// </summary>
 
-         /// <returns>Возвращает сгенерированную капчу</returns>
 
-         string GetCapcha()
 
-         {
 
-             string TxtLetter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
-             string TxtDigit = "0123456789";
 
-             string t1 = TxtLetter + TxtDigit;
 
-             string capcha = "";
 
-             bool FlagDigit = false;
 
-             Random rnd = new Random();
 
-             for (int i = 1; i <= 3; i++)
 
-             {
 
-                 // взять символ из строки с символами для капчи
 
-                 char sim = t1[rnd.Next(t1.Length)];
 
-                 // если символ - цифра, запомнить это
 
-                 if (char.IsDigit(sim)) FlagDigit = true;
 
-                 capcha += sim;  // добавить символ к капче
 
-             }
 
-             if (FlagDigit == false)
 
-                 capcha += TxtDigit[rnd.Next(TxtDigit.Length)];
 
-             else
 
-                 capcha += TxtLetter[rnd.Next(TxtLetter.Length)];
 
-             return capcha;
 
-         }
 
-         private void Form1_Load(object sender, EventArgs e)
 
-         {
 
-             // TODO: This line of code loads data into the 'dbAgentstvoDataSet1.Users' table. You can move, or remove it, as needed.
 
-             this.usersTableAdapter.Fill(this.dbAgentstvoDataSet1.Users);
 
-             // при запуске по умолчанию выбран риелтер
 
-             cmbTypeUser.SelectedIndex = 0;
 
-             LblCapcha.Text = GetCapcha();
 
-         }
 
-         private void cbxShowPass_CheckedChanged(object sender, EventArgs e)
 
-         {
 
-             // скрыть / показать символы пароля
 
-             tbxPass.UseSystemPasswordChar = !cbxShowPass.Checked;
 
-         }
 
-         private void btnLogin_Click(object sender, EventArgs e)
 
-         {
 
-             if (TbxCapcha.Text.ToUpper() != LblCapcha.Text)
 
-             {
 
-                 MessageBox.Show("Символы капчи введены неверно!\nПопробуйте еще раз.");
 
-                 LblCapcha.Text = GetCapcha();
 
-                 TbxCapcha.Clear();
 
-                 return;
 
-             }
 
-             // фильтр для таблицы Пользователи
 
-             string txtfilter = String.Format("login = '{0}' and password = '{1}' and type = '{2}'", tbxLogin.Text, tbxPass.Text, cmbTypeUser.SelectedIndex);
 
-             
 
-             // включить фильтр
 
-             bsUsers.Filter = txtfilter;
 
-             // фильтр для передачи на рабочее место пользователя
 
-             string filterworkplace = String.Format("login = '{0}'", tbxLogin.Text);
 
-             // если не найден пользователь с указанным логином, паролем и типом
 
-             if (bsUsers.Count == 0)
 
-             {
 
-                 MessageBox.Show(String.Format("Нет пользователя \"{0}\" с указанным логином и паролем.", cmbTypeUser.Text));
 
-                 return;
 
-             }
 
-             tbxLogin.Clear(); tbxPass.Clear();  // очистить поля
 
-             this.Visible = false;  // сделать форму для авторизации невидимой
 
-             if (cmbTypeUser.Text == "риелтер")
 
-             {
 
-                 FormRielter frm = new FormRielter();  // создать форму для риелтера
 
-                 // передать фильтр для фильтрации авторизовавшегося пользователя
 
-                 frm.bsUsers.Filter = filterworkplace;
 
-                 frm.ShowDialog();  // открыть форму
 
-             }
 
-             if (cmbTypeUser.Text == "клиент")
 
-             {
 
-                 FormKlient frm = new FormKlient();  // создать форму для клиента
 
-                 // передать фильтр для фильтрации авторизовавшегося пользователя
 
-                 frm.bsUsers.Filter = filterworkplace;
 
-                 frm.ShowDialog();  // открыть форму
 
-             }
 
-             this.Visible = true;  // сделать видимой форму для авторизации
 
-             tbxLogin.Focus();  // установить курсор
 
-             // загрузить из базы данных обновленные записи из таблицы Users
 
-             this.usersTableAdapter.Fill(this.dbAgentstvoDataSet1.Users);
 
-             LblCapcha.Text = GetCapcha();
 
-         }
 
-         private void lblReg_Click(object sender, EventArgs e)
 
-         {
 
-             FormRegistration frm = new FormRegistration();
 
-             frm.ShowDialog();
 
-             // загрузить из базы данных обновленные записи из таблицы Users
 
-             this.usersTableAdapter.Fill(this.dbAgentstvoDataSet1.Users);
 
-         }
 
-         private void LblCapcha_Paint(object sender, PaintEventArgs e)
 
-         {
 
-             // массив цветов
 
-             Color[] colors = { Color.Green, Color.Black, Color.Yellow, Color.White };
 
-             Random rnd = new Random();
 
-             // изобразить от 5 до 10 линий
 
-             for (int i = 1; i <= rnd.Next(5, 11); i++)
 
-             {
 
-                 // координаты начала и конца отрезка
 
-                 int x1 = rnd.Next(LblCapcha.Width);
 
-                 int y1 = rnd.Next(LblCapcha.Height);
 
-                 int x2 = rnd.Next(LblCapcha.Width);
 
-                 int y2 = rnd.Next(LblCapcha.Height);
 
-                 // случайный цвет из массива цветов
 
-                 Color col = colors[rnd.Next(colors.Length)];
 
-                 // нарисовать линию на метке Label
 
-                 e.Graphics.DrawLine(new Pen(col), x1, y1, x2, y2);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |