private bool isValidUnos(Angazovanje angazovanje)
        {
            bool valid = true;

            if (angazovanje == null)
            {
                return(false);
            }
            if (angazovanje.Ocena != null || angazovanje.DatumUnosaOcene != null ||
                angazovanje.Zadatak == null || angazovanje.Pas == null)
            {
                valid = false;
            }
            return(valid);
        }
        public void Delete(Angazovanje angazovanje)
        {
            if (angazovanje == null)
            {
                throw new Exception();
            }
            Angazovanje a = unitOfWork.AngazovanjeRepository.GetById(angazovanje.PasId, angazovanje.ZadatakId);

            if (a == null)
            {
                throw new Exception();
            }
            unitOfWork.AngazovanjeRepository.Delete(angazovanje);
            unitOfWork.Save();
        }
        // ako se naziv i datum poklapaju ne bi trebalo da ubaci zadatak
        public JsonResult InsertZadatak([FromBody] Object zadatak)
        {
            try
            {
                string  zadatakZaDeserijalizaciju = zadatak.ToString();
                Zadatak z = Newtonsoft.Json.JsonConvert.DeserializeObject <Zadatak>(zadatakZaDeserijalizaciju);

                Zadatak zadatakZaUnos = new Zadatak()
                {
                    NazivZadatka = z.NazivZadatka,
                    Teren        = z.Teren,
                    Datum        = z.Datum,
                    Status       = Enumerations.Status.Kreiran.ToString()
                };


                List <Angazovanje> angazovanjaZaUnos = new List <Angazovanje>();
                foreach (Angazovanje a in z.Angazovanja)
                {
                    Pas         pasIzBaze   = servicePas.FindById(a.PasId);
                    Angazovanje angazovanje = new Angazovanje()
                    {
                        PasId           = a.PasId,
                        ZadatakId       = zadatakZaUnos.Id,
                        Zadatak         = zadatakZaUnos,
                        DatumUnosaOcene = null,
                        Ocena           = null,
                        Pas             = pasIzBaze
                    };

                    angazovanjaZaUnos.Add(angazovanje);
                }

                zadatakZaUnos.Angazovanja = angazovanjaZaUnos;
                service.Insert(zadatakZaUnos);

                return(Json("Uspešno uneto!"));
            }
            catch (Exception ex)
            {
                return(Json("Došlo je do greške prilikom unosa!" + ex));
            }
        }
        protected override object Execute(DomenskiObjekat domenskiObjekat)
        {
            Predmet     predmet  = (Predmet)domenskiObjekat;
            Predmet     rezultat = (Predmet)broker.VratiJedanJoin(predmet);
            Angazovanje a        = new Angazovanje();

            a.Predmet = new Predmet
            {
                PredmetID = rezultat.PredmetID
            };
            List <DomenskiObjekat> aa          = broker.VratiSveJoinWhere(a);
            List <Angazovanje>     angazovanja = new List <Angazovanje>();

            foreach (Angazovanje ang in aa)
            {
                angazovanja.Add(ang);
            }
            rezultat.Angazovanja = angazovanja;
            return(rezultat);
        }
예제 #5
0
        public void TestAngazovanjeServiceOceniAngazovanjeInvalid()
        {
            var service = new AngazovanjeService(unitOfWork.Object);


            //ocena je nevalidna -> -2
            var angazovanje = new Angazovanje
            {
                ZadatakId       = 1,
                Pas             = unitOfWork.Object.PasRepository.FindById(1),
                PasId           = 1,
                Zadatak         = unitOfWork.Object.ZadatakRepository.FindById(1),
                DatumUnosaOcene = DateTime.Now,
                Ocena           = -2
            };

            Assert.Throws <ArgumentOutOfRangeException>(() => service.Update(angazovanje));
            unitOfWork.Verify(s => s.AngazovanjeRepository.Update(It.IsAny <Angazovanje>()), Times.Never);
            unitOfWork.Verify(s => s.Save(), Times.Never);
        }
        public IActionResult Delete(string PasId, string ZadatakId)
        {
            try
            {
                if (PasId == null || ZadatakId == null)
                {
                    throw new Exception("Angažovanje čije podatke zahtevate ne postoji!");
                }
                Angazovanje angazovanjeIzBaze = service.GetById(int.Parse(PasId), int.Parse(ZadatakId));

                if (angazovanjeIzBaze == null)
                {
                    throw new Exception("Angažovanje čije podatke želite da izmenite ne postoji!");
                }


                return(View(angazovanjeIzBaze));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Error", "Home", new { message = ex.Message }));
            }
        }
예제 #7
0
        public void TestAngazovanjeServiceOceniAngazovanje()
        {
            var service = new AngazovanjeService(unitOfWork.Object);

            var angazovanje = new Angazovanje
            {
                ZadatakId       = 1,
                Pas             = unitOfWork.Object.PasRepository.FindById(1),
                PasId           = 1,
                Zadatak         = unitOfWork.Object.ZadatakRepository.FindById(1),
                DatumUnosaOcene = DateTime.Now,
                Ocena           = 10
            };

            service.Update(angazovanje);

            var angazovanjeOcenjeno = unitOfWork.Object.AngazovanjeRepository.GetById(1, 1);

            Assert.NotNull(angazovanjeOcenjeno.Ocena);
            Assert.NotNull(angazovanjeOcenjeno.DatumUnosaOcene);
            unitOfWork.Verify(s => s.AngazovanjeRepository.Update(It.IsAny <Angazovanje>()), Times.Once);
            unitOfWork.Verify(s => s.Save(), Times.Once);
        }
        //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));
        }
예제 #9
0
 public void Insert(Angazovanje a)
 {
     angazovanja.Add(a);
 }
예제 #10
0
 public void Delete(Angazovanje angazovanje)
 {
     angazovanja.Remove(angazovanje);
 }
예제 #11
0
 public void Update(Angazovanje a)
 {
     angazovanja.Find(an => an.PasId == a.PasId && an.ZadatakId == a.ZadatakId).Ocena           = a.Ocena;
     angazovanja.Find(an => an.PasId == a.PasId && an.ZadatakId == a.ZadatakId).DatumUnosaOcene = a.DatumUnosaOcene;
 }
        public Angazovanje GetById(int PasId, int ZadatakId)
        {
            Angazovanje a = unitOfWork.AngazovanjeRepository.GetById(PasId, ZadatakId);

            return(a);
        }