Диплом: Автоматизация процесса ведения информационной базы о должностях и вакансиях с указанием требований к уровню знаний и навыков кандидатов для ПАО Тостелеком

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
107
/// <param name="__port_">Порт</param>
public void Set(string __server_name_, string __login_, string __password_,
string __db_, string __port_)
{
ServerAddress = __server_name_;
ServerLogin = __login_;
ServerPassword = __password_;
DataBaseName = __db_;
ServerPort = __port_;
}
/// <summary>
/// Сброс флага подключения к БД
/// </summary>
public void ResetConnection() { Connected = false; }
/// <summary>
/// Установка флага подключения к БД
/// </summary>
public void Successfully() { Connected = true; }
}
/// <summary>
/// Параметры строки подключения к БД
/// </summary>
public static ConnectionString DB_CS;
/// <summary>
/// Получение настроек подключения из файла
/// </summary>
/// <param name="__filename_">Файл с настройками</param>
/// <returns>Структура с параметрами плдключения к БД</returns>
public static ConnectionString LoadConnectionSettings(string __filename_)
{
// Новая строка подключения
ConnectionString NewCS = new ConnectionString();
// Поток чтения данных их файла
FileStream fs = null;
StreamReader sr = null;
// Попытка прочитать данные
try
{
fs = new FileStream(__filename_, FileMode.Open);
sr = new StreamReader(fs);
// Чтение данных
NewCS.ServerAddress = sr.ReadLine().Split(new char[] { '=' },
StringSplitOptions.RemoveEmptyEntries)[1];
NewCS.ServerLogin = sr.ReadLine().Split(new char[] { '=' },
StringSplitOptions.RemoveEmptyEntries)[1];
NewCS.ServerPassword = sr.ReadLine().Split(new char[] { '=' },
StringSplitOptions.RemoveEmptyEntries)[1];
NewCS.DataBaseName = sr.ReadLine().Split(new char[] { '=' },
StringSplitOptions.RemoveEmptyEntries)[1];
NewCS.ServerPort = sr.ReadLine().Split(new char[] { '=' },
StringSplitOptions.RemoveEmptyEntries)[1];
// Закрыть файл
sr.Close();
fs.Close();
// Возврат значения
return NewCS;
}
catch (Exception)
{
NewCS.DataBaseName = "failed!";
return NewCS;
}
108
}
/// <summary>
/// Сохранение настроек подключения в файл
/// </summary>
public static void SaveConnectionSettings(string __filename_)
{
// Поток записи данных в файл
FileStream fs = null;
StreamWriter sw = null;
// Попытка записать данные
try
{
fs = new FileStream(__filename_, FileMode.Create);
sw = new StreamWriter(fs);
// Запись данных
sw.WriteLine("adress=" + DB_CS.ServerAddress);
sw.WriteLine("login=" + DB_CS.ServerLogin);
sw.WriteLine("password=" + DB_CS.ServerPassword);
sw.WriteLine("db=" + DB_CS.DataBaseName);
sw.WriteLine("port=" + DB_CS.ServerPort);
// Закрыть файл
sw.Close();
fs.Close();
}
catch (Exception) { }
}
/// <summary>
/// Попытка установить подключение к БД
/// </summary>
/// <returns>Результат подключения</returns>
public static bool SetConnectionWithDB()
{
// Попытка подключиться
try
{
// Настройка подключения
string connString = "server=" + DB_CS.ServerAddress +
";uid=" + DB_CS.ServerLogin +
";database=" + DB_CS.DataBaseName +
";charset=utf8" +
";port=" + DB_CS.ServerPort +
";password=" + DB_CS.ServerPassword + ";";
Properties.Settings.Default["VPRT_CS"] = connString;
// Попытка прочитать данные
vprtDataSetTableAdapters.accountTableAdapter TestTA =
new vprtDataSetTableAdapters.accountTableAdapter();
vprtDataSet.accountDataTable TestTable = TestTA.GetData();
// Если данные прочитаны, значит попытка успешна
DB_CS.Successfully();
MainWindow.CurrentDBName = DB_CS.DataBaseName;
TestTable.Dispose();
TestTA.Dispose();
return DB_CS.Connected;
}
catch (Exception ex)
{
MessageBox.Show("Неправильно указаны параметры подключения к БД!" +
Environment.NewLine + ex.Message, Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
109
/// <summary>
/// Показать форму настройки подключения к БД
/// </summary>
public static void ShowConnectionSettings()
{
// Сброс активной подсистемы
MainWindow.SubsystemView.Controls.Clear();
// Предварительный сброс флага подключения к БД
DB_CS.ResetConnection();
MainWindow.CurrentDBName = "unknown";
// Очистить данные авторизованного пользователя на форме
MainWindow.CurrentUserName = "не идентифицирован";
// Сброс данных пользователя
CurrentUser = null;
// Создание формы подключения к БД
Service.dialogDatabaseConnection ddbcf = new
Service.dialogDatabaseConnection();
// Показать форму подключения к БД
ddbcf.ShowDialog();
}
/// <summary>
/// Показать форму авторизации пользователя
/// </summary>
public static void ShowLoginForm()
{
if (DB_CS.Connected)
{
// Сброс активной подсистемы
MainWindow.SubsystemView.Controls.Clear();
// Очистить данные авторизованного пользователя на форме
MainWindow.CurrentUserName = "не идентифицирован";
// Сброс данных пользователя
CurrentUser = null;
// Создание формы авторизации пользователя
Service.dialogLogin daf = new Service.dialogLogin();
// Показать форму авторизации пользователя
daf.ShowDialog();
}
else
{
// Сообщение о необходимости подключения к БД
MessageBox.Show("Сначала необходимо подключиться к базе данных!",
Application.ProductName, MessageBoxButtons.OK,
MessageBoxIcon.Error);
MainWindow.CurrentDBName = "unknown";
// Показать форму настройки подключения к БД
ShowConnectionSettings();
}
}
}
}
Программный код класса-сущности (на примере должности)
using System;
using System.Windows.Forms;
namespace VPRT.Entities
110
{
/// <summary>
/// Класс должности
/// </summary>
public class Post : Interfaces.IDBManagement, Interfaces.IUserManagement
{
/// <summary>
/// Конструктор
/// </summary>
/// <param name="__id_">Необязательный идентификатор</param>
public Post(int __id_ = 0)
{
// Инициализация атрибутов
Initialize(__id_);
}
// ----------------------------------------------------------
// Атрибуты
// ----------------------------------------------------------
private int __id;
private string __name;
private string __reqKnowledges;
private string __reqSkills;
private int __vacationsCount;
private Department __department;
private Test __test;
// ------------------------------------ Доступ к атрибутам --
/// <summary>
/// Доступ к идентификатору
/// </summary>
public int ID { get { return __id; } }
/// <summary>
/// Доступ к количеству вакансий на должность
/// </summary>
public int VacationsCount { get { return __vacationsCount; } }
/// <summary>
/// Доступ к наименованию
/// </summary>
public string Name { get { return __name; } }
/// <summary>
/// Доступ к требованиям к навыкам и умениям
/// </summary>
public string ReqSkills { get { return __reqSkills; } }
/// <summary>
/// Доступ к требованиям к знаниям
/// </summary>
public string ReqKnowledges { get { return __reqKnowledges; } }
/// <summary>
/// Доступ к подразделению
/// </summary>
public Department HisDepartment { get { return __department; } }
/// <summary>
/// Доступ к тесту на должность
/// </summary>
public Test Posttest { get { return __test; } }
// ----------------------------------------------------------
// РЕАЗИЗАЦИЯ ИНТЕРФЕЙСА С БД ---------------------------------
/// <summary>
/// Адаптер подключения к БД - таблица должностей
/// </summary>
111
vprtDataSetTableAdapters.postsTableAdapter ADAPTER =
new vprtDataSetTableAdapters.postsTableAdapter();
/// <summary>
/// Инициализация данных
/// </summary>
/// <param name="__id_">Необязательный идентификатор</param>
/// <returns>Результат операции</returns>
public bool Initialize(int __id_ = 0)
{
try
{
// Инициализация по идентификатору
if (__id_ != 0)
{
// Получение данных из таблицы
vprtDataSet.postsDataTable TABLE = ADAPTER.GetDataByID(__id_);
// Чтение полученных данных
if (TABLE.Rows.Count > 0)
{
__id = __id_;
__department = new
Department(Convert.ToInt32(TABLE.Rows[0].ItemArray[1]));
__name = Convert.ToString(TABLE.Rows[0].ItemArray[2]);
__reqKnowledges = Convert.ToString(TABLE.Rows[0].ItemArray[3]);
__reqSkills = Convert.ToString(TABLE.Rows[0].ItemArray[4]);
__test = Convert.IsDBNull(TABLE.Rows[0].ItemArray[5])
? null
: new Test(Convert.ToInt32(TABLE.Rows[0].ItemArray[5]));
__vacationsCount = Convert.ToInt32(TABLE.Rows[0].ItemArray[6]);
// Освободить таблицу
TABLE.Dispose();
}
else
{
MessageBox.Show("Запись не найдена!", Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
else // Инициализация по умолчанию
{
__department = new Department();
__name = "Новая должность";
__reqKnowledges = "Опишите необходимые требования к знаниям
кандидата";
__reqSkills = "Опишите необходимые требования к навыкам и умениям
кандидата";
__test = null;
__vacationsCount = 0;
}
// Возврат успеха
return true;
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
112
// --------------------------------------
/// <summary>
/// Вставка записи в БД
/// </summary>
/// <returns>Результат операции</returns>
public bool InsertRow()
{
try
{
// Выполнение команды через адаптер таблицы
ADAPTER.InsertQuery(HisDepartment.ID, Name, ReqKnowledges, ReqSkills,
VacationsCount);
// Возврат успеха
return true;
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
// --------------------------------------
/// <summary>
/// Обновление записи в БД
/// </summary>
/// <returns>Результат операции</returns>
public bool UpdateRow()
{
try
{
// Выполнение команды через адаптер таблицы
ADAPTER.UpdateQuery(HisDepartment.ID, Name, ReqKnowledges, ReqSkills,
VacationsCount, ID);
// Возврат успеха
return true;
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
// --------------------------------------
/// <summary>
/// Удаление записи из БД
/// </summary>
/// <returns>Результат операции</returns>
public bool DeleteRow()
{
try
{
// Выполнение команды через адаптер таблицы
ADAPTER.DeleteQuery(ID);
// Возврат успеха
return true;
}
catch (Exception ex)
{
113
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
// ------------------------------------------------------------
/// <summary>
/// Обновление записи в БД - добваить тест
/// </summary>
/// <param name="__test_id_">Идентификатор добавленного теста</param>
/// <returns>Результат операции</returns>
public bool AddTest(int __test_id_)
{
try
{
// Выполнение команды через адаптер таблицы
ADAPTER.AddTest(__test_id_, ID);
// Возврат успеха
return true;
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
/// <summary>
/// Обновление записи в БД - удалить тест
/// </summary>
/// <returns>Результат операции</returns>
public bool DeleteTest()
{
try
{
// Выполнение команды через адаптер таблицы
ADAPTER.DeleteTest(ID);
// Возврат успеха
return true;
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
// РЕАЛИЗАЦИЯ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ ----------------------
/// <summary>
/// Диалог ввода данных
/// </summary>
Dialogs.dialogPost Dialog = null;
114
/// <summary>
/// Команда пользователя - создать новый
/// </summary>
/// <param name="add_id">Дополнительный идентификатор</param>
/// <returns>Результат выполнения команды</returns>
public bool CreateNew(int add_id = 0)
{
try
{
// Создание диалога ввода данных
Dialog = new Dialogs.dialogPost();
// Наполнение полей диалога актуальными данными
Dialog._Name = Name;
Dialog._ReqKnowledges = ReqKnowledges;
Dialog._ReqSkills = ReqSkills;
Dialog._VacationsCount = VacationsCount;
// Организация диалога с пользователем
if (Dialog.ShowDialog() == DialogResult.OK)
{
// Применение введенных значений
__name = Dialog._Name;
__reqKnowledges = Dialog._ReqKnowledges;
__reqSkills = Dialog._ReqSkills;
__vacationsCount = Dialog._VacationsCount;
__department = new Department(Dialog._DepartmentID);
// Выполнить вставку в БД
return InsertRow();
}
else
{
// Возврат неудачи - отмена действия пользователем
return false;
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
/// <summary>
/// Команда пользователя - редактировать
/// </summary>
/// <param name="add_id">Дополнительный идентификатор</param>
/// <returns>Результат выполнения команды</returns>
public bool EditData(int add_id = 0)
{
try
{
// Создание диалога ввода данных
Dialog = new Dialogs.dialogPost(ID);
// Наполнение полей диалога актуальными данными
Dialog._Name = Name;
Dialog._ReqKnowledges = ReqKnowledges;
Dialog._ReqSkills = ReqSkills;
Dialog._VacationsCount = VacationsCount;
// Организация диалога с пользователем
if (Dialog.ShowDialog() == DialogResult.OK)
{
// Применение введенных значений
__name = Dialog._Name;
115
__reqKnowledges = Dialog._ReqKnowledges;
__reqSkills = Dialog._ReqSkills;
__vacationsCount = Dialog._VacationsCount;
__department = new Department(Dialog._DepartmentID);
// Выполнить обновление в БД
return UpdateRow();
}
else
{
// Возврат неудачи - отмена действия пользователем
return false;
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
/// <summary>
/// Команда пользователя - удалить
/// </summary>
/// <returns>Результат операции</returns>
public bool Delete()
{
try
{
// Запрос на удаление
if (MessageBox.Show("Подтверждаете удаление выбранной записи ?",
"Удаление",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
DialogResult.Yes)
{
// Удалить из БД
DeleteRow();
// Возврат успеха
return true;
}
// Возврат неудачи - отмена действия пользователем
return false;
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при выполнении операции: " + ex.Message,
Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Возврат неудачи
return false;
}
}
// ------------------------------------------------------------
}
}
Программный код конструктора тестов
using System;
116
using System.Collections.Generic;
using System.Windows.Forms;
namespace VPRT.Dialogs
{
/// <summary>
/// Диалог конструктора теста
/// </summary>
public partial class dialogTestConstructor : Form
{
/// <summary>
/// Экземпляр теста
/// </summary>
Entities.Test _test = null;
/// <summary>
/// Конструктор
/// </summary>
/// <param name="__test_">Экземпляр теста</param>
public dialogTestConstructor(Entities.Test __test_ = null)
{
// Создание и инициализация компонентов
InitializeComponent();
// Соотнесение начальных значений
_test = __test_;
// Подготовка конструктора тестов
InitTestConstructor();
}
/// <summary>
/// Инициализация текущего теста
///
private void InitTestConstructor()
{
if (_test != null)
{
// Параметры теста
_Name = _test.Name;
_TimeLimit = _test.TimeLimit;
_PassScore = _test.PassScore;
// Вопросы теста
_Questions = _test.Questions;
// Если есть вопросы
if (_Questions.Count > 0)
{
// Переход к первому
_CurrentQuestion = _Questions[0];
ShowCurrentQuestion();
}
else
{
_CurrentQuestion = null;
ShowCurrentQuestion();
}
}
}
/// <summary>
/// Текущий вопрос
/// </summary>
Entities.Question _CurrentQuestion;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)