| 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);
- }
- }
- }
- }
|