Информационная модель предметной области
Информационная модель данных представлена на Рис.2.21 , 2.22:
Рис. 2.21. Информационная модель базы данных
Рис. 2.22 Информационная модель таблиц
Описание основных функций
При разработке программного обеспечения для учета заявок и контроля их исполнения были выделены следующие основные функции:
1. Сохранение необходимой информации о клиенте в БД при оформлении заявки на подключение услуг компании NetTrans и его последующей технической поддержки .
2. Получение из БД информации о абоненте, фирме, их адресов, телефонных номеров, контрагентах, и др. для вывода на экран.
3. Расчет статистики обработанных операторами заявок;
I. Функция сохранения данных в БД
Одной из основных задач является сохранение информации о клиенте или абоненте и контроля исполнения принятых от них заявок в базе данных.
Используемая технология в качестве сервера баз данных Microsoft SQL Server позволяет вносить изменения в базу, используя различные запросы.
Таким образом, задачу сохранения информации в БД можно разбить на следующие этапы:
− соединение с БД;
− формирование запроса на вставку/обновление;
− сохранение в БД;
Функция соединение с БД работает следующим образом:
SqlCommand cmd = sqlconnect.CreateCommand();
SqlConnection sqlconnect = new SqlConnection(@"Data Source=(GAZEBO-ПК);Integrated Security=True;" + "Initial Catalog=123");
, где происходит соединение с сервером и авторизация клиента (браузера) на нем, а так же соединение с нужной базой.
Для формирования запроса на вставку/обновление в БД составляется запрос:
На вставку:
cmd.CommandText = "insert into Add_ticket_TP (Договор, [Входящий номер], Комментарии) values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "')";
Параметры запроса:
· имя таблицы, к которой обращаемся;
· набор полей в таблице, в которые будем производить запись;
· набор переменных для вставки в поля;
На обновление:
cmd.CommandText = "update Add_ticket_TP (Контакты='Контактный телефон',Комментарии='Комментарии' where №=’#’)";
Параметры запроса:
· имя таблицы, к которой обращаемся;
· набор полей в таблице = переменные, в которые будем производить запись;
· набор переменных для вставки в поля;
· условие выбора строки;
Функция обновления таблиц в форме выполняется командой:
GridView1.DataBind();
II. Функция получения из БД информации
Одной из основных задач является получение информации о абоненте, его менеджере, специалисте, контрагенте, договоров из базы данных.
Используемая технология в качестве сервера баз данных MS SQL Server позволяет доставать информацию из базы, используя различные запросы.
Таким образом, задачу получение информации из БД можно разбить на следующие этапы:
− соединение с БД;
− формирование запроса на получение;
− вывод результата выполненного запроса.
Функция соединение с БД работает следующим образом:
SqlConnection sqlconnect = new SqlConnection(@"Data Source=(GAZEBO-ПК);Integrated Security=True;" + "Initial Catalog=123");
, где происходит соединение с сервером и авторизация клиента (браузера) на нем, а так же соединение с нужной базой.
Для формирования запроса на получение из БД составляется запрос:
cmd.CommandText=”select*from users where (id=’id’)”;
GridView1.DataBind();
Параметры запроса:
· набор полей в таблице, которые будем получать. * - все поля;
· имя таблицы, к которой обращаемся;
· условие выбора строки;
· обновление таблицы.
Функция вывода результата выполненного запроса реализуется путем формирования текста на основе полученных переменных, которые возвращает выполненный запрос.
<table>
<tr>
<td class="auto-style1">Физ./Юр. лицо</td>
<td>
<asp:RadioButton ID="RadioButton2" runat="server" Text="Юр.лицо" TextAlign="Left" OnCheckedChanged="RadioButton2_CheckedChanged" Width="100" /></td>
</tr>
<tr>
<td class="auto-style1">Договор<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="Укажите номер договора" Display="Dynamic">*</asp:RequiredFieldValidator>
</td>
<td>
<asp:TextBox ID="TextBox1" runat="server" Width="794px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style1">Контактные данные<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="Укажите номер телефона" Display="Dynamic">*</asp:RequiredFieldValidator>
</td>
<td>
<asp:TextBox ID="TextBox2" runat="server" Width="797px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style1">Обращение пользователя<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3" ErrorMessage="Следует заполнить это поле" Display="Dynamic">*</asp:RequiredFieldValidator>
</td>
<td>
<asp:TextBox ID="TextBox3" runat="server" Height="228px" Width="796px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style1">Вызов специалиста</td>
<td>
<asp:RadioButton ID="RadioButton3" runat="server" Text="Нет" Checked="True" TextAlign="Left" Width="100" OnCheckedChanged="RadioButton3_CheckedChanged"/>
<asp:RadioButton ID="RadioButton4" runat="server" Text="Специалист" TextAlign="Left" Width="150"/>
<asp:RadioButton ID="RadioButton5" runat="server" Text="Инженеры" TextAlign="Left" Width="150"/>
<asp:RadioButton ID="RadioButton6" runat="server" Text="Можнтажники" TextAlign="Left" Width="150"/>
<asp:RadioButton ID="RadioButton7" runat="server" Text="Абонентский отдел" TextAlign="Left" Width="150"/>
</td>
</tr>
<tr>
<td class="auto-style1" colspan="2" >
<asp:Button ID="Button1" runat="server" Text="Сохранить" OnClick="Button1_Click" />
</td>
</tr>
<tr>
<td class="auto-style1">
</td>
</tr> </table>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.mail.ru" userName="[email protected]" password=""/>
</smtp>
</mailSettings>
System.Threading.Tasks.Task.Run(new Action(() =>
{
System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
foreach (Worker worker in Workers)
{
if (worker == null) continue;
if (string.IsNullOrEmpty(worker.email)) continue;
mm.To.Add(worker.email);
}
if (mm.To.Count == 0) return;
//тексты почтовых уведомлений следует вынести в настраиваемые шаблоны.
mm.Subject = "новая заявка на сайте NetTrans";
mm.Body = string.Format("поступила заявка за номером: {0}", InnerNumber);
new System.Net.Mail.SmtpClient().Send(mm);
}));
new EventLogCollection().Create(0, HttpContext.Current.Request.UserHostAddress);
Сообщения программисту
В программе не предусмотрен вывод сообщений специально для программиста, однако в ходе работы программы могут появиться общие сообщения программы, а также, сообщения генерируемые системой Windows или другим приложением.
Управление и доступом пользователей и объединение их в определенные группы происходит с помощью встроенной утилиты в среде Visual Studio – Administer Website.