private void UpdateStockEmployees(string[] selectedEmployees, Stock stockToUpdate) { if (selectedEmployees == null) { stockToUpdate.Positions = new List <Position>(); return; } var selectedEmployeesHS = new HashSet <string>(selectedEmployees); var StockEmployees = new HashSet <int> (stockToUpdate.Positions.Select(c => c.Employee.ID)); foreach (var Employee in _context.Employees) { if (selectedEmployeesHS.Contains(Employee.ID.ToString())) { if (!StockEmployees.Contains(Employee.ID)) { stockToUpdate.Positions.Add(new Position { StockID = stockToUpdate.ID, EmployeeID = Employee.ID }); } } else { if (StockEmployees.Contains(Employee.ID)) { Position EmployeesToRemove = stockToUpdate.Positions.FirstOrDefault(i => i.EmployeeID == Employee.ID); _context.Remove(EmployeesToRemove); } } } }
private void UpdateContractParts(string[] selectedParts, Contract contractToUpdate) { if (selectedParts == null) { contractToUpdate.PartsInContr = new List <PartInContract>(); return; } var selectedPartsHS = new HashSet <string>(selectedParts); var contractParts = new HashSet <int> (contractToUpdate.PartsInContr.Select(c => c.Part.ID)); foreach (var Part in _context.Parts) { if (selectedPartsHS.Contains(Part.ID.ToString())) { if (!contractParts.Contains(Part.ID)) { contractToUpdate.PartsInContr.Add(new PartInContract { ContractID = contractToUpdate.ID, PartID = Part.ID }); } } else { if (contractParts.Contains(Part.ID)) { PartInContract PartsToRemove = contractToUpdate.PartsInContr.FirstOrDefault(i => i.PartID == Part.ID); _context.Remove(PartsToRemove); } } } }
public async Task <IActionResult> DeleteConfirmed(int id) { var employee = await _context.Employees.FindAsync(id); foreach (var pos in _context.Positions.Where(p => p.EmployeeID == id)) { _context.Remove(pos); } _context.Employees.Remove(employee); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }