//pri izmeni izlistati sta je do sada ocenjeno, razmisliti kako to moze da se uradi
        public async Task <IActionResult> Update(int id)
        {
            // koji psi su angazovani na angazovanju cije ocene unosimo



            ViewBag.Zadaci  = serviceZadaci.GetAll().ToList();
            ViewBag.Zadatak = serviceZadaci.FindById(id).NazivZadatka;
            ViewBag.Id      = serviceZadaci.FindById(id).Id;

            List <Angazovanje> angazovanjaZaOcenu  = service.GetAll().Where(a => a.ZadatakId == id).ToList();
            List <Pas>         angazovaniPsi       = new List <Pas>();
            List <Angazovanje> ocenjenaAngazovanja = new List <Angazovanje>();

            Instruktor user = null;

            if (!User.IsInRole("Admin"))
            {
                user = await userManager.FindByIdAsync(userManager.GetUserId(User)) as Instruktor;

                foreach (Angazovanje angazovanje in angazovanjaZaOcenu)
                {
                    if (angazovanje.Pas.ObukaId == user.ObukaId)
                    {
                        if (angazovanje.Ocena == null)
                        {
                            angazovaniPsi.Add(angazovanje.Pas);
                        }
                        else
                        {
                            ocenjenaAngazovanja.Add(angazovanje);
                        }
                    }
                }
            }
            else
            {
                if (User.IsInRole("Admin"))
                {
                    foreach (Angazovanje angazovanje in angazovanjaZaOcenu)
                    {
                        if (angazovanje.Ocena == null)
                        {
                            angazovaniPsi.Add(angazovanje.Pas);
                        }
                        else
                        {
                            ocenjenaAngazovanja.Add(angazovanje);
                        }
                    }
                }
            }
            if (!User.IsInRole("Admin"))
            {
                if (angazovaniPsi.Count() == 0)
                {
                    return(RedirectToAction("PageNotFound", "Home", new { message = "Nijedan pas sa vaše obuke nije angažovan na ovom zadatku!" }));
                }
            }

            if (ocenjenaAngazovanja != null)
            {
                ViewBag.Ocenjena = ocenjenaAngazovanja;
            }


            ViewBag.Psi             = angazovaniPsi;
            ViewBag.BrojAngazovanja = angazovaniPsi.Count();

            ZadatakDropDownList();
            Angazovanje a = new Angazovanje()
            {
                ZadatakId       = serviceZadaci.FindById(id).Id,
                Zadatak         = serviceZadaci.FindById(id),
                DatumUnosaOcene = DateTime.Now,
            };

            return(View(a));
        }
        public IActionResult Index(string message)
        {
            try
            {
                if (message == null)
                {
                    message = string.Empty;
                }

                List <Zadatak> zadaci = service.GetAll().ToList();

                foreach (Zadatak z in zadaci)
                {
                    if (z.Datum <= DateTime.Now && z.Status == "Kreiran")
                    {
                        Zadatak zadatakIzBaze = service.FindById(z.Id);
                        if (zadatakIzBaze == null)
                        {
                            return(RedirectToAction("PageNotFound", "Home", new { message = "Zadatak čije podatke zahtevate ne postoji!" }));
                        }
                        zadatakIzBaze.Angazovanja  = z.Angazovanja;
                        zadatakIzBaze.Datum        = z.Datum;
                        zadatakIzBaze.NazivZadatka = z.NazivZadatka;
                        zadatakIzBaze.Teren        = z.Teren;
                        zadatakIzBaze.Status       = Enumerations.Status.Završen.ToString();
                        service.Update(zadatakIzBaze);
                    }
                    int i = 0;
                    foreach (Angazovanje a in z.Angazovanja)
                    {
                        if (a.Ocena != null)
                        {
                            i++;
                        }
                    }
                    if (i == z.Angazovanja.Count() && z.Status != "Ocenjen")
                    {
                        Zadatak zadatakIzBaze = service.FindById(z.Id);
                        if (zadatakIzBaze == null)
                        {
                            return(RedirectToAction("PageNotFound", "Home", new { message = "Zadatak čije podatke zahtevate ne postoji!" }));
                        }
                        zadatakIzBaze.Angazovanja  = z.Angazovanja;
                        zadatakIzBaze.Datum        = z.Datum;
                        zadatakIzBaze.NazivZadatka = z.NazivZadatka;
                        zadatakIzBaze.Teren        = z.Teren;
                        zadatakIzBaze.Status       = Enumerations.Status.Ocenjen.ToString();
                        service.Update(zadatakIzBaze);
                    }
                }

                ViewBag.ListaZadataka = service.GetAll().ToList();
                List <string> naziviZadataka = service.VratiListuNazivaZadataka();
                List <int>    ang            = service.VratiBrojAngazovanjaPoZadatku();
                List <int>    poz            = service.VratiBrojPozitivihOcenaPoZadatku();

                ViewBag.Message = message;

                List <DataPoint> dataPoints1 = new List <DataPoint>();
                List <DataPoint> dataPoints2 = new List <DataPoint>();
                for (int i = 0; i < naziviZadataka.Count(); i++)
                {
                    if (zadaci.ElementAt(i).Status == "Ocenjen")
                    {
                        dataPoints1.Add(new DataPoint(zadaci.ElementAt(i).NazivZadatka, poz.ElementAt(i)));
                    }
                }
                for (int i = 0; i < naziviZadataka.Count(); i++)
                {
                    if (zadaci.ElementAt(i).Status == "Ocenjen")
                    {
                        dataPoints2.Add(new DataPoint(zadaci.ElementAt(i).NazivZadatka, ang.ElementAt(i)));
                    }
                }


                ViewBag.DataPoints1 = JsonConvert.SerializeObject(dataPoints1);
                ViewBag.DataPoints2 = JsonConvert.SerializeObject(dataPoints2);

                return(View());
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Error", "Home", new { message = ex.Message }));
            }
        }