public async Task <IActionResult> Create([Bind("MaszynaId,Nazwa,NrSeryjny,DataPrzegladu")] Maszyna maszyna, string[] selectedConditions)
        {
            try
            {
                if (selectedConditions != null)
                {
                    maszyna.PracownikMaszyna = new List <PracownikMaszyna>();
                    foreach (var cond in selectedConditions)
                    {
                        var condToAdd = new PracownikMaszyna {
                            MaszynaId = maszyna.MaszynaId, PracownikId = int.Parse(cond)
                        };
                        maszyna.PracownikMaszyna.Add(condToAdd);
                    }
                }

                //UpdateZespolPracownik(selectedConditions, zespol);
                if (ModelState.IsValid)
                {
                    _context.Add(maszyna);
                    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(maszyna);
            return(View(maszyna));
        }
        private void UpdateZespolPracownik(string[] selectedConditions, Maszyna maszynaToUpdate)
        {
            if (selectedConditions == null)
            {
                maszynaToUpdate.PracownikMaszyna = new List <PracownikMaszyna>();
                return;
            }

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

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