/// <summary> /// <see cref="NerasporedjenUcenikViewModel"/> /// <see cref="KreirajOdeljenjeViewModel"/> /// </summary> /// <returns>KreirajOdeljenje View</returns> private ActionResult KreirajOdeljenje() { var model = new KreirajOdeljenjeViewModel { ListaNerasporedjenihUcenika = _context.Ucenici.Where(u => u.OdeljenjeId == null) .Select(u => new NerasporedjenUcenikViewModel { UcenikId = u.UcenikID, Ime = u.Ime, Prezime = u.Prezime, JMBG = u.JMBG, Smer = u.Smer.NazivSmera }) .ToList() }; return(View(model)); }
private ActionResult KreirajOdeljenje(KreirajOdeljenjeViewModel model) { //Ovaj deo koda ce se izvrsiti ukoliko dodje do greske prilikom prenosa parametara sa forme if (model.ListaRasporedjenihUcenika == null && model.Razred == 0 && model.Odeljenje == 0) { var viewModelGreska = new KreirajOdeljenjeViewModel { ListaNerasporedjenihUcenika = _context.Ucenici.Where(u => u.OdeljenjeId == null) .Select(u => new NerasporedjenUcenikViewModel { UcenikId = u.UcenikID, Ime = u.Ime, Prezime = u.Prezime, JMBG = u.JMBG, Smer = u.Smer.NazivSmera }) .ToList(), //Postavlja se vrednost "true" jer je doslo do greske i prekinuto izvrsavanje metode NisuDodatiUceniciUOdeljenje = true }; return(View(viewModelGreska)); } //Ovaj deo koda ce se izvrsiti kada se prosledi lista ucenika koji su rasporedjeni u odeljenje na formi if (model.ListaRasporedjenihUcenika != null && model.Razred > 0 && model.Odeljenje > 0) { //Provera da li postoji odeljenje var odeljenje = _context.Odeljenja.Where(o => o.Razred == model.Razred && o.OznakaID == model.Odeljenje && o.StatusID != 1) .SingleOrDefault(); List <Ucenik> listaUcenika = null; if (odeljenje != null) { //Lista ucenika koji su vec upisani u odeljenje listaUcenika = _context.Ucenici.Where(u => u.OdeljenjeId == odeljenje.Id) .Select(u => u) .ToList(); } //Lista u koju se smestaju ID-evi ucenika koji su vec upisani u odeljenje List <int> listaRasporedjenihUcenikaBazaID = new List <int>(); if (listaUcenika != null) { foreach (var ucenik in listaUcenika) { if (ucenik.OdeljenjeId != null) { listaRasporedjenihUcenikaBazaID.Add(ucenik.UcenikID); } } } //Lista u koji se smestaju ID-evi ucenika koji su prosledjeni sa forme List <int> listaRasporedjenihUcenikaFormaID = new List <int>(); foreach (var ucenik in model.ListaRasporedjenihUcenika) { listaRasporedjenihUcenikaFormaID.Add(ucenik.UcenikId); } //Lista ucenika koji treba da se dodaju u odeljenje IEnumerable <int> listaUcenikaZaDodavanjeID = listaRasporedjenihUcenikaFormaID.Except(listaRasporedjenihUcenikaBazaID); if (listaUcenikaZaDodavanjeID != null && listaUcenikaZaDodavanjeID.Count() > 0) { foreach (var id in listaUcenikaZaDodavanjeID) { DodajUcenikaUOdeljenje(id, model.Razred, model.Odeljenje);//Poziv metode za dodavanje ucenika u odeljenje } } //Lista ucenika koji treba da se izbace iz odeljenja IEnumerable <int> listaUcenikaZaBrisanjeID = listaRasporedjenihUcenikaBazaID.Except(listaRasporedjenihUcenikaFormaID); if (listaUcenikaZaBrisanjeID != null && listaUcenikaZaBrisanjeID.Count() > 0) { foreach (var id in listaUcenikaZaBrisanjeID) { IzbaciUcenikaIzOdeljenja(id);//Poziv metode za izbacivanje ucenika iz odeljenja } } } //Ovaj deo koda ce se izvrsiti ukoliko se prosledi prazna lista ucenika sa forme //Prosledjuje se odeljenje i svi ucenici iz odeljenja ce biti izbaceni else if (model.ListaRasporedjenihUcenika == null && model.Razred > 0 && model.Odeljenje > 0) { //Provera postojanja odeljenja var odeljenje = _context.Odeljenja.Where(o => o.Razred == model.Razred && o.OznakaID == model.Odeljenje && o.StatusID != 1) .SingleOrDefault(); //Lista ucenika koji idu u prosledjeno odeljenje List <Ucenik> listaUcenika = null; if (odeljenje != null) { listaUcenika = _context.Ucenici.Where(u => u.OdeljenjeId == odeljenje.Id) .Select(u => u) .ToList(); } //Lista u koju se smestaju ID-evi ucenika koji su upisani u odeljenje i koji treba da se izbace iz odeljenja List <int> listaUcenikaZaBrisanjeBazaID = new List <int>(); if (listaUcenika != null) { foreach (var ucenik in listaUcenika) { if (ucenik.OdeljenjeId != null) { listaUcenikaZaBrisanjeBazaID.Add(ucenik.UcenikID); } } } if (listaUcenikaZaBrisanjeBazaID != null && listaUcenikaZaBrisanjeBazaID.Count() > 0) { foreach (var id in listaUcenikaZaBrisanjeBazaID) { IzbaciUcenikaIzOdeljenja(id);//Poziv metode za izbacivanje ucenika iz odeljenja } } } //View model koji vraca preostale nerasporedjene ucenike, odeljenje i potvrdu da su ucenici uspesno smesteni u odeljenje var viewModel = new KreirajOdeljenjeViewModel { ListaNerasporedjenihUcenika = _context.Ucenici.Where(u => u.OdeljenjeId == null) .Select(u => new NerasporedjenUcenikViewModel { UcenikId = u.UcenikID, Ime = u.Ime, Prezime = u.Prezime, JMBG = u.JMBG, Smer = u.Smer.NazivSmera }) .ToList(), //Potvrda da su ucenici smesteni u odeljenje DodatiUceniciUOdeljenje = true, Razred = model.Razred, Odeljenje = model.Odeljenje }; return(View(viewModel)); }