public async Task <IActionResult> Create([Bind("ZamowienieId,NrFaktura,DataZlozenia,Cena,StatusId,KlientId,ZespolId,AdresId")] Zamowienie zamowienie, string[] selectedplyty) { try { if (selectedplyty != null) { zamowienie.ZamowieniePlyta = new List <ZamowieniePlyta>(); foreach (var cond in selectedplyty) { var condToAdd = new ZamowieniePlyta { ZamowienieId = zamowienie.ZamowienieId, PlytaId = int.Parse(cond) }; zamowienie.ZamowieniePlyta.Add(condToAdd); } } var adress = _context.Klient.Where(m => m.KlientId == zamowienie.KlientId).FirstOrDefault(); zamowienie.AdresId = adress.AdresId; if (ModelState.IsValid) { _context.Add(zamowienie); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } catch (Exception) { ModelState.AddModelError("", "Dane nie zostały dodane."); } ListaPlyt(zamowienie); return(View(zamowienie)); }
private void UpdateZespolPracownik(string[] selectedPlyty, Zamowienie zamowienieToUpdate) { if (selectedPlyty == null) { zamowienieToUpdate.ZamowieniePlyta = new List <ZamowieniePlyta>(); return; } var selectedOptionsHS = new HashSet <string>(selectedPlyty); var zamPlyta = new HashSet <int>(zamowienieToUpdate.ZamowieniePlyta.Select(b => b.PlytaId)); foreach (var s in _context.Plyta) { if (selectedOptionsHS.Contains(s.PlytaId.ToString())) { if (!zamPlyta.Contains(s.PlytaId)) { zamowienieToUpdate.ZamowieniePlyta.Add(new ZamowieniePlyta { PlytaId = s.PlytaId, ZamowienieId = zamowienieToUpdate.ZamowienieId }); } } else { if (zamPlyta.Contains(s.PlytaId)) { ZamowieniePlyta plytaToRemove = zamowienieToUpdate.ZamowieniePlyta.SingleOrDefault(d => d.PlytaId == s.PlytaId); _context.Remove(plytaToRemove); } } } }