У меня есть список select2 с сотрудниками, который администратор добавит в проект.
Я выбираю несколько сотрудников и отправляю json с идентификаторами сотрудников на контроллер, где пытаюсь найти сотрудника по сотруднику, из базы данных emp компании по хранимой процедуре.[Сотрудник] в web emp db.
Я сталкиваюсь с такой проблемой, что читатель читает только первые и последние строки и пропускает всех сотрудников в середине
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EmpAdd()
{
var project_id = Convert.ToInt32(Request["project"]);
var company = Request["company"];
var emp = Request["emp"];
var ids = emp.Split(',');
var project = db.apsk_project.Where(x => x.id == project_id).FirstOrDefault();
cmd.CommandText = "Employee";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = sqlConnection1;
foreach(var i in ids) {
var it = Convert.ToInt32(i);
var kortele = db.apsk_workers.Where(x => x.id == it).FirstOrDefault();
if(kortele == null) {
sqlConnection1.Open();
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("company", company);
cmd.Parameters.AddWithValue("nr", it);
reader = cmd.ExecuteReader();
if(reader.HasRows) {
while(reader.Read()) {
apsk_workers apsk = new apsk_workers();
var v = reader.GetString(1);
var p = reader.GetString(2);
var d = reader.GetDateTime(3);
apsk.kof_id = 0;
apsk.algos_tipas = "";
apsk.vardas = v;
apsk.pavarde = p;
apsk.ar_dirba = d;
apsk.company = company;
apsk.manager = User.Identity.Name;
apsk.id = it;
db.apsk_workers.Add(apsk);
db.SaveChanges();
}
}
sqlConnection1.Close();
apsk_assigned _Assigned = new apsk_assigned();
_Assigned.project_id = project_id;
_Assigned.project = project.project;
_Assigned.worker_id = it;
db.apsk_assigned.Add(_Assigned);
db.SaveChanges();
} else {
var ar_projekte = db.apsk_assigned.Where(x => x.project_id == project_id && x.worker_id == it).FirstOrDefault();
if(ar_projekte == null) {
apsk_assigned _Assigned = new apsk_assigned();
_Assigned.project_id = project_id;
_Assigned.project = project.project;
_Assigned.worker_id = it;
db.apsk_assigned.Add(_Assigned);
db.SaveChanges();
}
}
}
Назначение человека для проекта работает нормально.