public IActionResult AddTask([Bind("ID, StartDate, StartTime, EndDate, EndTime, Title, Description, IsEnd, EmployeesList")] TaskWithEmpsList taskEmp) { taskEmp.IsEnd = false; EmpInTask eit; Zadanie task = new Zadanie(); Employee empl; task.ID = taskEmp.ID; task.StartTime = taskEmp.StartTime; task.StartDate = taskEmp.StartDate; task.EndTime = taskEmp.EndTime; task.EndDate = taskEmp.EndDate; task.Title = taskEmp.Title; task.Description = taskEmp.Description; task.IsEnd = taskEmp.IsEnd; if (ModelState.IsValid) { foreach (var emp in taskEmp.EmployeesList.Where(e => e.checkBoxEmp == true)) { empl = new Employee(); empl.EmployeeID = emp.EmployeeID; empl.Name = emp.Name; empl.Surname = emp.Surname; empl.DayOfBirthday = emp.DayOfBirthday; empl.EmailAddress = emp.EmailAddress; empl.PhoneNumber = emp.PhoneNumber; empl.DeptID = emp.DeptID; eit = new EmpInTask(); eit.Zadanie = task; // Nie dodawać pracownika do relacji jako obiekt tylko dodawać jako ID :) // Gdy pracownik już istnieje, a nie jest dodawany razem z zadaniem. // Wtedy działa... //eit.Employee = empl; eit.EmployeeID = empl.EmployeeID; _context.ZadaniaInTasks.Add(eit); } _context.SaveChanges(); return(RedirectToAction("Main")); } return(View(taskEmp)); }
public IActionResult EditTask(int id, [Bind("ID, StartDate, StartTime, EndDate, EndTime, Title, Description, IsEnd, EmployeesList")] TaskWithEmpsList taskEmp) { taskEmp.IsEnd = false; EmpInTask eit; Zadanie task = new Zadanie(); Employee empl; task.ID = taskEmp.ID; task.StartTime = taskEmp.StartTime; task.StartDate = taskEmp.StartDate; task.EndTime = taskEmp.EndTime; task.EndDate = taskEmp.EndDate; task.Title = taskEmp.Title; task.Description = taskEmp.Description; task.IsEnd = taskEmp.IsEnd; foreach (var emp in taskEmp.EmployeesList.Where(e => e.checkBoxEmp == true)) { empl = new Employee(); empl.EmployeeID = emp.EmployeeID; empl.Name = emp.Name; empl.Surname = emp.Surname; empl.DayOfBirthday = emp.DayOfBirthday; empl.EmailAddress = emp.EmailAddress; empl.PhoneNumber = emp.PhoneNumber; empl.DeptID = emp.DeptID; eit = new EmpInTask(); eit.ZadanieID = task.ID; // Nie dodawać pracownika do relacji jako obiekt tylko dodawać jako ID :) // Gdy pracownik już istnieje, a nie jest dodawany razem z zadaniem. // Wtedy działa... //eit.Employee = empl; eit.EmployeeID = empl.EmployeeID; if (TaskEmp(eit.EmployeeID, eit.ZadanieID) == false) { _context.ZadaniaInTasks.Add(eit); _context.SaveChanges(); } } foreach (var emp in taskEmp.EmployeesList.Where(e => e.checkBoxEmp == false)) { eit = new EmpInTask(); eit.ZadanieID = task.ID; eit.EmployeeID = emp.EmployeeID; if (TaskEmp(eit.EmployeeID, eit.ZadanieID) == true) { _context.ZadaniaInTasks.Remove(eit); _context.SaveChanges(); } } if (id != task.ID) { return(Content("ID jest nie prawidłowe.")); } if (ModelState.IsValid) { try { _context.Zadania.Update(task); _context.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TaskExist(task.ID)) { return(Content("Zadanie nie istnieje")); } else { throw; } } return(RedirectToAction(nameof(Main))); } return(View(taskEmp)); }