Реализация функций.
Процесс проектирования компетентностной модели исполнителя бизнес-процесса
Join con in db. Content on com. IDCompetence equals con.IDCompetence. Пример реализации функции обновления: Пример реализации функции добавления: Join op in db. Operation on seq. IDOperation equals op.IDOperation. Join op in db. Operation on seq. IDOperation equals op.IDOperation. Join matr in db. Matrix on op. IDOperation equals matr.IDOperation. Join matr in db. Matrix on op. IDOperation equals… Читать ещё >
Реализация функций. Процесс проектирования компетентностной модели исполнителя бизнес-процесса (реферат, курсовая, диплом, контрольная)
Платформа Entity Framework позволяет запрашивать, вставлять, обновлять и удалять данные, представленные типизированными объектами, являющимися экземплярами типов сущностей. Типы сущностей представляют собой сущности, определенные в концептуальной модели. Платформа Entity Framework сопоставляет сущности и связи c источником данных.
В связи с использованием данной технологии CRUD-операции были реализованы с помощью стандартных функций, доступных в Entity Framework. Примеры использования этих функций представлены ниже.
Пример реализации функции добавления:
Competence newCompetence = new Competence ();
newCompetence.IDCompetence = Guid. NewGuid ();
newCompetence.Name = textBox1.Text.Trim ();
db.Competence.Add (newCompetence);
db.SaveChanges ();
Пример реализации функции обновления:
Competence newCompetence = new Competence ();
newCompetence = db.Competence.Find (oldCompetence.IDCompetence);
newCompetence.Name = textBox1. Text;
db.Entry (newCompetence).State = EntityState. Modified;
db.SaveChanges ();
Пример реализации функции удаления:
Competence competence = db.Competence.Find (oldCompetence.IDCompetence);
db.Competence.Remove (competence);
db.Entry (competence).State = EntityState. Deleted;
db.SaveChanges ();
Для реализации функций генерации матрицы покрытия операций бизнес_процессов компетенциями и генерации компетентностной модели исполнителя бизнес-процесса будут созданы специальные методы CreateMatrix и CreateModel, которые будут вызываться функцией, подписанной на событие нажатия на соответствующие кнопки приложения. Исходный код генерации матрицы представлен далее:
private void CreateMatrix ().
{.
var result = from bp in db.BusinessProcess.
join seq in db. Sequence on bp. IDBusinessProcess equals seq.IDBusinessProcess.
join op in db. Operation on seq. IDOperation equals op.IDOperation.
join matr in db. Matrix on op. IDOperation equals matr.IDOperation.
join com in db. Competence on matr. IDCompetence equals com.IDCompetence.
where bp. IDBusinessProcess == oldBP.IDBusinessProcess.
select new.
{.
matrID = matr. IDMatrix,.
opName = op.Name.Trim (),.
comName = com.Name.Trim (),.
};
var groupsC = result. GroupBy (c => c. comName);
var groupsO = result. GroupBy (o => o. opName);
int j = 0;
matrix.Columns.Add («operation», «Операция»);
foreach (var gO in groupsO).
{.
matrix.Rows.Add ();
matrix.Rows[j]. Cells[0].Value = gO. Key;
j++;
}.
j = 0;
int i = 0;
foreach (var gC in groupsC).
{.
matrix.Columns.Add (««, gC. Key);
i++;
foreach (var op in gC).
{.
if (op.comName == matrix. Columns[i]. HeaderText).
{.
for (int n = 0; n < matrix.Rows.Count; n++).
{.
if (op.opName == matrix[0, n]. Value. ToString ()).
j = n;
}.
matrix.Rows[j]. Cells[i].Value = «X» ;
}.
}.
}.
}.
Как было сказано ранее, компетентностная модель будет представлена в виде дерева, построение которого и осуществляется в методе CreateModel на основании результатов запроса. Исходный код метода генерации компетентностной модели определенного исполнителя в заданном бизнес-процессе представлен ниже:
public void CreateModel ().
{.
treeView1.Nodes.Clear ();
var result = (from bp in db.BusinessProcess.
join seq in db. Sequence on bp. IDBusinessProcess equals seq.IDBusinessProcess.
join op in db. Operation on seq. IDOperation equals op.IDOperation.
join r in db. Role on op. IDRole equals r.IDRole.
join matr in db. Matrix on op. IDOperation equals matr.IDOperation.
join com in db. Competence on matr. IDCompetence equals com.IDCompetence.
join con in db. Content on com. IDCompetence equals con.IDCompetence.
join el in db. Element on con. IDElement equals el.IDElement.
where bp. IDBusinessProcess == newBP. IDBusinessProcess && r. IDRole == role.IDRole.
select new CompetenceModel.
{.
elName = el.Name.Trim (),.
comName = com.Name.Trim (),.
compID = com. IDCompetence,.
eID = el.IDElement.
}).Distinct ();
var competences = result. ToList ().GroupBy (x => x. comName);
int i = 0;
foreach (var compet in competences).
{.
treeView1.Nodes.Add (compet.Key);
foreach (var el in compet).
treeView1.Nodes[i]. Nodes. Add (el.elName);
treeView1.Nodes[i]. Expand ();
i++;
}.
}.
Для проверки матрицы покрытия операций бизнес_процесса компетенциями на полноту была также написана функция CheckAssosiations, которая проверяет наличие связей между операциями выбранного бизнес_процесса с компетенциями. Если хотя бы одна операция бизнес-процесса не связана с компетенцией, то матрица считается неполной и генерация матрицы или компетентностной модели становится невозможной. Исходный код функции представлен ниже:
private bool CheckAssosiations ().
{.
int k = 0;
List ops = (List)comboBoxO.DataSource;
List matr = db.Matrix.Select (m => m. IDOperation).ToList ();
foreach (var op in ops).
if (matr.Contains (op.IDOperation)).
k++;
if (k == ops. Count).
return true;
else return false;
}.