public async Task <IActionResult> Create([Bind("ZespolId,Nazwa")] Zespol zespol, string[] selectedConditions)
        {
            try
            {
                if (selectedConditions != null)
                {
                    zespol.ZespolPracownik = new List <ZespolPracownik>();
                    foreach (var cond in selectedConditions)
                    {
                        var condToAdd = new ZespolPracownik {
                            ZespolId = zespol.ZespolId, PracownikId = int.Parse(cond)
                        };
                        zespol.ZespolPracownik.Add(condToAdd);
                    }
                }

                // UpdateZespolPracownik(selectedConditions, zespol);
                if (ModelState.IsValid)
                {
                    _context.Add(zespol);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
            }
            catch (Exception)
            {
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
            }

            PopulateAssignedConditionData(zespol);
            return(View(zespol));
        }
        private void UpdateZespolPracownik(string[] selectedConditions, Zespol zespolToUpdate)
        {
            if (selectedConditions == null)
            {
                zespolToUpdate.ZespolPracownik = new List <ZespolPracownik>();
                return;
            }

            var selectedOptionsHS = new HashSet <string>(selectedConditions);
            var docSpecialties    = new HashSet <int>(zespolToUpdate.ZespolPracownik.Select(b => b.PracownikId));

            foreach (var s in _context.Pracownik)
            {
                if (selectedOptionsHS.Contains(s.PracownikId.ToString()))
                {
                    if (!docSpecialties.Contains(s.PracownikId))
                    {
                        zespolToUpdate.ZespolPracownik.Add(new ZespolPracownik
                        {
                            PracownikId = s.PracownikId,
                            ZespolId    = zespolToUpdate.ZespolId
                        });
                    }
                }
                else
                {
                    if (docSpecialties.Contains(s.PracownikId))
                    {
                        ZespolPracownik specToRemove = zespolToUpdate.ZespolPracownik.SingleOrDefault(d => d.PracownikId == s.PracownikId);
                        _context.Remove(specToRemove);
                    }
                }
            }
        }