Входные и выходные данные
В качестве входной информации при обращении абонента к технической поддержки должны использоваться:
Номер договора;
Номер телефона;
Обращение абонента.
рентгеновский снимок пациента;
персональные данные о пациенте (Ф.И.О., дата рождения, пол, адрес проживания, контактный телефон, номер страхового полиса);
жалобы пациента, информация о наличии зубочелюстных аномалий;
данные о процессе внутреннего и внешнего осмотра (конфигурация лица, пропорциональность лица, состояние кожных покровов, данные о лимфатических узлах, слизистой оболочки рта и уздечки языка) и фотографии лица и полости рта.
В качестве выходной информации должны выступать:
решение поступившей заявки с последующей ее закрытием;
Структура системы
Разработанный программный продукт имеет страничную структуру и представлен следующими файлами:
“Site.master” – главная страница
“About.aspx” – о программе
“Archive.aspx” – архив обработанных заявок технической поддержки
“Web.config” – дополнительные сведения по настройки веб-приложения
“TP.aspx” – галерея заявок для технической поддержки
“AddZ” – форма заполнения заявки для тех.поддержки
“Physics.aspx” – форма договоров физических лиц
“Zayavki.aspx” – форма для добавления новой заявки на подключение, галерея договоров с физическими лицами.
“Dogovora.aspx” – галерея договоров с юридическими лицами.
“Kontragents.aspx” –данные о контрагентах
“Login.aspx” – форма - обработчик авторизации
“Manage.aspx” – форма управления учетной записью–
“OpenAuthProvides.ascx” – обработчик авторизации
“Register.aspx” – обработчик регистрации
“TelSprav” – страница телефонного каталога компании NetTrans
“Statistics” – страница со статистикой пользователей
Информационная модель предметной области
Информационная модель данных представлена на Рис.2.21 , 2.22:

Рис. 2.21. Информационная модель базы данных










Рис. 2.22 Информационная модель таблиц
Описание основных функций
При разработке программного обеспечения для учета заявок и контроля их исполнения были выделены следующие основные функции:
Сохранение необходимой информации о клиенте в БД при оформлении заявки на подключение услуг компании NetTrans и его последующей технической поддержки .
Получение из БД информации о абоненте, фирме, их адресов, телефонных номеров, контрагентах, и др. для вывода на экран.
Расчет статистики обработанных операторами заявок;
Функция сохранения данных в БД
Одной из основных задач является сохранение информации о клиенте или абоненте и контроля исполнения принятых от них заявок в базе данных.
Используемая технология в качестве сервера баз данных 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();
Функция получения из БД информации
Одной из основных задач является получение информации о абоненте, его менеджере, специалисте, контрагенте, договоров из базы данных.
Используемая технология в качестве сервера баз данных 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="fromuser@list.ru">
<network host="smtp.mail.ru" userName="azafil@list.ru" 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);
