private void JeziciDropDownList(Oglas oglas) { var sviJezici = _context.Jezik; var jeziciOglasa = new HashSet <int>(oglas.JeziciOglasa.Select(c => c.JezikId)); var viewModel = new List <DodijeljeniJeziciOglasu>(); foreach (var jezik in sviJezici) { int nivoCitanja = 0, nivoPisanja = 0; if (jeziciOglasa.Contains(jezik.JezikId)) { JeziciOglasa j = oglas.JeziciOglasa.Where(c => c.Jezik.JezikId == jezik.JezikId).Single(); nivoCitanja = j.NivoCitanja; nivoPisanja = j.NivoPisanja; } viewModel.Add(new DodijeljeniJeziciOglasu { JezikId = jezik.JezikId, Naziv = jezik.Naziv, Assigned = jeziciOglasa.Contains(jezik.JezikId), NivoPisanja = nivoPisanja, NivoCitanja = nivoCitanja }); } ViewData["Jezici"] = viewModel; }
public async Task <IActionResult> Create([Bind("OglasId,ZanimanjeId,Naziv,Opis,DatumIsteka,Grad")] Oglas oglas, string[] selectedJezici, int[] nivoiCitanja, int[] nivoiPisanja, string[] selectedSkole, string[] selectedFakulteti) { oglas.DatumObjavljivanja = DateTime.Today; oglas.Aktuelan = true; oglas.Poslodavac = _context.Poslodavac.Where(i => i.KorisnikId == HomeController.prijavljenaOsoba.KorisnikId).Single(); if (selectedJezici != null) { oglas.JeziciOglasa = new List <JeziciOglasa>(); int brojac = 0; foreach (var jezik in selectedJezici) { var noviJezik = new JeziciOglasa { OglasId = oglas.OglasId, JezikId = int.Parse(jezik), NivoCitanja = nivoiCitanja[brojac], NivoPisanja = nivoiPisanja[brojac] }; oglas.JeziciOglasa.Add(noviJezik); brojac++; } } if (selectedSkole != null) { oglas.SrednjaSkolaOglasa = new List <SrednjaSkolaOglasa>(); foreach (var skola in selectedSkole) { var novaSkola = new SrednjaSkolaOglasa { OglasId = oglas.OglasId, SrednjaSkolaId = int.Parse(skola) }; oglas.SrednjaSkolaOglasa.Add(novaSkola); } } if (selectedFakulteti != null) { oglas.FakultetiOglasa = new List <FakultetiOglasa>(); foreach (var fakultet in selectedFakulteti) { var noviFakultet = new FakultetiOglasa { OglasId = oglas.OglasId, FakultetId = int.Parse(fakultet) }; oglas.FakultetiOglasa.Add(noviFakultet); } } if (ModelState.IsValid) { _context.Add(oglas); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } SkoleDropDownList(oglas); FakultetDropDownList(oglas); JeziciDropDownList(oglas); ZanimanjeDropDownList(); return(View(oglas)); }
private void UpdateJeziciOglasa(string[] selectedJezici, int[] nivoiCitanja, int[] nivoiPisanja, Oglas oglasUpdate) { if (selectedJezici == null) { oglasUpdate.JeziciOglasa = new List <JeziciOglasa>(); return; } var selectedJeziciHS = new HashSet <string>(selectedJezici); var jeziciOglasa = new HashSet <int> (oglasUpdate.JeziciOglasa.Select(c => c.Jezik.JezikId)); int brojac = 0; foreach (var jezik in _context.Jezik) { if (selectedJeziciHS.Contains(jezik.JezikId.ToString())) { if (!jeziciOglasa.Contains(jezik.JezikId)) { oglasUpdate.JeziciOglasa.Add(new JeziciOglasa { OglasId = oglasUpdate.OglasId, JezikId = jezik.JezikId, NivoCitanja = nivoiCitanja[brojac], NivoPisanja = nivoiPisanja[brojac] }); } else { JeziciOglasa jezikToRemove = oglasUpdate.JeziciOglasa.FirstOrDefault(i => i.JezikId == jezik.JezikId); _context.Remove(jezikToRemove); oglasUpdate.JeziciOglasa.Add(new JeziciOglasa { OglasId = oglasUpdate.OglasId, JezikId = jezik.JezikId, NivoCitanja = nivoiCitanja[brojac], NivoPisanja = nivoiPisanja[brojac] }); } } else { if (jeziciOglasa.Contains(jezik.JezikId)) { JeziciOglasa jezikToRemove = oglasUpdate.JeziciOglasa.FirstOrDefault(i => i.JezikId == jezik.JezikId); _context.Remove(jezikToRemove); } } brojac++; } }