/// <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));
        }