public IActionResult DodajDogadjaj(int dogadjejId)
        {
            Dogadjaj dogadjaj = _context.Dogadjaj.Find(dogadjejId);

            if (dogadjaj.DatumOdrzavanja.CompareTo(DateTime.Now) == -1)
            {
                return(BadRequest("Nije moguće dodati događaj koji je već istekao."));
            }

            OznacenDogadjaj oznacenDogadjajPostoji = _context.OznacenDogadjaj
                                                     .Where(od => od.DogadjajID == dogadjejId && od.StudentID == 1)
                                                     .FirstOrDefault();

            if (oznacenDogadjajPostoji != null)
            {
                return(BadRequest("Oznaceni dogadjaj je već dodan."));
            }

            OznacenDogadjaj oznacenDogadjaj = new OznacenDogadjaj(1, dogadjejId);//id studenta

            _context.OznacenDogadjaj.Add(oznacenDogadjaj);
            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
Example #2
0
        public IActionResult Index()
        {
            int logiraniKorisnik = HttpContext.GetLogiraniKorisnik().Id;

            List <OznaceniDogadajiPrikazVM> model = db.Dogadjaj.Select(x => new OznaceniDogadajiPrikazVM
            {
                DatumDogadjaja = x.DatumOdrzavanja,
                Nastavnik      = x.Nastavnik.ImePrezime,
                BrojObaveza    = db.Obaveza.Count(ob => ob.DogadjajID == x.ID),
                OpisDogadjaja  = x.Opis,
                DogadjajId     = x.ID,
                KorisnikId     = logiraniKorisnik
            }).ToList();

            foreach (var item in model)
            {
                OznacenDogadjaj od = db.OznacenDogadjaj.Where(x => x.DogadjajID == item.DogadjajId && x.StudentID == logiraniKorisnik).SingleOrDefault();

                if (od != null)
                {
                    item.OznacenDogadjaj      = true;
                    item.IzvrsenoProcentualno = db.StanjeObaveze.Where(d => d.OznacenDogadjajID == od.ID).Sum(s => s.IzvrsenoProcentualno) / item.BrojObaveza;
                }
            }
            GetNotifikacije(db.Student.Where(s => s.KorisnickiNalogId == logiraniKorisnik).Single().ID);
            return(View(model));
        }
        public IActionResult Dodaj(int id)
        {
            OznacenDogadjaj oznacenDogadjaj = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = id,
                StudentID      = HttpContext.GetLogiraniKorisnik().Id
            };

            _db.Add(oznacenDogadjaj);
            _db.SaveChanges();
            foreach (Obaveza x in _db.Obaveza.Where(o => o.DogadjajID == id).ToList())
            {
                StanjeObaveze stanje = new StanjeObaveze
                {
                    IsZavrseno              = false,
                    IzvrsenoProcentualno    = 0,
                    ObavezaID               = x.ID,
                    OznacenDogadjajID       = oznacenDogadjaj.ID,
                    NotifikacijaDanaPrije   = x.NotifikacijaDanaPrijeDefault,
                    NotifikacijeRekurizivno = x.NotifikacijeRekurizivnoDefault
                };
                _db.Add(stanje);
            }
            _db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public IActionResult Dodaj(int Id)
        {
            OznacenDogadjaj dogadjaj = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = Id,
                StudentID      = HttpContext.GetLogiraniKorisnik().Id
            };

            _db.Add(dogadjaj);
            _db.SaveChanges();

            IEnumerable <Obaveza> obaveze = _db.Obaveza.Where(x => x.DogadjajID == Id);

            foreach (var i in obaveze)
            {
                StanjeObaveze stanje = new StanjeObaveze
                {
                    DatumIzvrsenja          = DateTime.Now,
                    IsZavrseno              = false,
                    IzvrsenoProcentualno    = 33,
                    NotifikacijaDanaPrije   = 4,
                    ObavezaID               = i.ID,
                    OznacenDogadjajID       = dogadjaj.ID,
                    NotifikacijeRekurizivno = true,
                };
                _db.Add(stanje);
            }
            _db.SaveChanges();
            return(Redirect("/OznaceniDogadaji"));
        }
Example #5
0
        public IActionResult OznaciDogadjaj(int dogadjajId)
        {
            var korisnickiNalog = Autentifikacija.GetLogiraniKorisnik(HttpContext);
            var student         = _context.Student
                                  .Where(s => s.KorisnickiNalogId == korisnickiNalog.Id)
                                  .FirstOrDefault();
            var oznaceniDogadjaj = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = dogadjajId,
                StudentID      = student.ID
            };

            _context.Add(oznaceniDogadjaj);

            var obavezeDogadjaja = _context.Obaveza
                                   .Where(o => o.DogadjajID == dogadjajId)
                                   .ToList();

            foreach (var o in obavezeDogadjaja)
            {
                var novoStanje = new StanjeObaveze
                {
                    IsZavrseno              = false,
                    IzvrsenoProcentualno    = 0,
                    ObavezaID               = o.ID,
                    OznacenDogadjaj         = oznaceniDogadjaj,
                    NotifikacijaDanaPrije   = o.NotifikacijaDanaPrijeDefault,
                    NotifikacijeRekurizivno = o.NotifikacijeRekurizivnoDefault
                };
                _context.Add(novoStanje);
            }
            _context.SaveChanges();
            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult Dodaj(int DogadjajID)
        {
            KorisnickiNalog logiraniKorisnik = HttpContext.GetLogiraniKorisnik();
            Student         logiraniStudent  = db.Student.Where(x => x.KorisnickiNalogId == logiraniKorisnik.Id).FirstOrDefault();

            OznacenDogadjaj noviOznaceniDogadjaj = new OznacenDogadjaj()
            {
                DogadjajID     = DogadjajID,
                StudentID      = logiraniStudent.ID,
                DatumDodavanja = DateTime.Now
            };

            db.OznacenDogadjaj.Add(noviOznaceniDogadjaj);

            var obaveze = db.Obaveza.Where(x => x.DogadjajID == noviOznaceniDogadjaj.DogadjajID).ToList();

            foreach (var ob in obaveze)
            {
                StanjeObaveze novoStanjeObaveze = new StanjeObaveze()
                {
                    OznacenDogadjajID       = noviOznaceniDogadjaj.ID,
                    ObavezaID               = ob.ID,
                    DatumIzvrsenja          = DateTime.Now,
                    IsZavrseno              = false,
                    IzvrsenoProcentualno    = 0,
                    NotifikacijaDanaPrije   = 0,
                    NotifikacijeRekurizivno = default
                };
                db.StanjeObaveze.Add(novoStanjeObaveze);
            }

            db.SaveChanges();
            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult Detalji(int id)
        {
            OznacenDogadjaj dogadjaj = _db.OznacenDogadjaj.Include(x => x.Dogadjaj).Include(x => x.Dogadjaj.Nastavnik).Where(x => x.ID == id).SingleOrDefault();
            DetaljiDogadaja model    = new DetaljiDogadaja
            {
                ID             = dogadjaj.ID,
                DatumDodavanja = dogadjaj.DatumDodavanja.ToString("dd.MM.yyyy"),
                DatumDogadaja  = dogadjaj.Dogadjaj.DatumOdrzavanja.ToString("dd.MM.yyyy"),
                Nastavnik      = dogadjaj.Dogadjaj.Nastavnik.ImePrezime.Substring(0, 1) + "." + dogadjaj.Dogadjaj.Nastavnik.ImePrezime.Substring(dogadjaj.Dogadjaj.Nastavnik.ImePrezime.IndexOf(" ")),
                Opis           = dogadjaj.Dogadjaj.Opis
            };

            return(View(model));
        }
        public ActionResult Detalji(int dogadjajId)
        {
            OznacenDogadjaj d = _context.OznacenDogadjaj.Where(od => od.DogadjajID == dogadjajId)
                                .Include(od => od.Dogadjaj)
                                .Include(od => od.Dogadjaj.Nastavnik)
                                .Single();
            var model = new OznaceniDogadajiDetaljiVM
            {
                OznaceniDogadjajId = d.ID,
                DatumDodavanja     = d.DatumDodavanja,
                DatumDogadjaja     = d.Dogadjaj.DatumOdrzavanja,
                Nastavnik          = d.Dogadjaj.Nastavnik.ImePrezime,
                Opis = d.Dogadjaj.Opis
            };

            return(View(model));
        }
        public IActionResult Oznaci(int id)//Oznaci dogadjaj za odredjenog studenta
        {
            var s = GetPrijavljenogKorisnika();

            Dogadjaj        d = _db.Dogadjaj.Find(id);
            OznacenDogadjaj o = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = id,
                StudentID      = s.ID
            };

            _db.Add(o);
            _db.SaveChanges();

            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult Detalji(int DogadjajID)
        {
            OznacenDogadjaj dogadjaj = db.OznacenDogadjaj.Include(x => x.Dogadjaj)
                                       .ThenInclude(x => x.Nastavnik)
                                       .Where(x => x.ID == DogadjajID)
                                       .FirstOrDefault();

            DogadjajDetaljiVM model = new DogadjajDetaljiVM()
            {
                DogadjajID      = DogadjajID,
                DatumDodavanja  = dogadjaj.DatumDodavanja,
                DatumOdrzavanja = dogadjaj.Dogadjaj.DatumOdrzavanja,
                Opis            = dogadjaj.Dogadjaj.Opis,
                Nastavnik       = dogadjaj.Dogadjaj.Nastavnik.ImePrezime
            };

            return(View(model));
        }
        public IActionResult StanjeObavezaIndex(int DogadjajID)
        {
            OznacenDogadjaj dogadjaj = db.OznacenDogadjaj.Include(x => x.Dogadjaj)
                                       .ThenInclude(x => x.Nastavnik)
                                       .Where(x => x.ID == DogadjajID)
                                       .FirstOrDefault();
            StanjeObavezaIndexVM model = new StanjeObavezaIndexVM()
            {
                Rows = db.StanjeObaveze.Where(x => x.OznacenDogadjajID == DogadjajID).Select(x => new StanjeObavezaIndexVM.Row()
                {
                    StanjeObavezaID       = x.Id,
                    Naziv                 = x.Obaveza.Naziv,
                    ProcenatRealizacije   = x.IzvrsenoProcentualno,
                    BrojacNotifikacije    = x.NotifikacijaDanaPrije,
                    PonavljajNotifikaciju = x.NotifikacijeRekurizivno ? "DA":"NE"
                }).ToList()
            };

            return(PartialView(model));
        }
        public IActionResult Detalji(int id)
        {
            OznacenDogadjaj d = db.OznacenDogadjaj.Where(x => x.DogadjajID == id).SingleOrDefault();

            if (d != null)
            {
                List <AjaxTestDetaljiVM> model = db.StanjeObaveze
                                                 .Where(p => p.OznacenDogadjajID == d.ID)
                                                 .Select(c => new AjaxTestDetaljiVM
                {
                    Naziv = c.Obaveza.Naziv,
                    PonavljajNotifikacijuSvakiDanUnaprijed = c.NotifikacijeRekurizivno,
                    SaljiNotifikacijuXDanaUnaprijed        = c.NotifikacijaDanaPrije,
                    ProcenatRealizacijeObaveze             = c.IzvrsenoProcentualno,
                    StanjeId = c.Id
                }).ToList();

                return(PartialView(model));
            }
            return(Redirect("Greska"));
        }
Example #13
0
        public IActionResult Dodaj(int DogadjajId)
        {
            var dogadjaj = db.Dogadjaj.Where(x => x.ID == DogadjajId).SingleOrDefault();
            var logirani = db.Student.Where(x => x.KorisnickiNalogId == HttpContext.GetLogiraniKorisnik().Id).SingleOrDefault();

            if (logirani == null)
            {
                return(Content("Niste logirani"));
            }
            if (dogadjaj == null)
            {
                return(Content("Dogadjaj ne postoji"));
            }
            OznacenDogadjaj oznacenDogadjaj = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = DogadjajId,
                StudentID      = logirani.ID
            };

            db.OznacenDogadjaj.Add(oznacenDogadjaj);
            var sveObaveze = db.Obaveza.Where(x => x.DogadjajID == DogadjajId);

            foreach (var o in sveObaveze)
            {
                StanjeObaveze novoStanje = new StanjeObaveze
                {
                    DatumIzvrsenja          = DateTime.MinValue,
                    IsZavrseno              = false,
                    NotifikacijeRekurizivno = o.NotifikacijeRekurizivnoDefault,
                    IzvrsenoProcentualno    = 0,
                    NotifikacijaDanaPrije   = o.NotifikacijaDanaPrijeDefault,
                    OznacenDogadjaj         = oznacenDogadjaj,
                    ObavezaID = o.ID
                };
                db.StanjeObaveze.Add(novoStanje);
            }
            db.SaveChanges();
            return(Redirect(nameof(Index)));
        }
Example #14
0
        public IActionResult Dodaj(int DogadjajId, int KorisnikId)
        {
            Dogadjaj d = db.Dogadjaj.Find(DogadjajId);
            Student  s = db.Student.Where(x => x.KorisnickiNalogId == KorisnikId).SingleOrDefault();

            if (d != null && s != null)
            {
                OznacenDogadjaj novi = new OznacenDogadjaj
                {
                    DatumDodavanja = DateTime.Now,
                    DogadjajID     = DogadjajId,
                    StudentID      = s.ID
                };

                db.Add(novi);
                db.SaveChanges();

                List <Obaveza> obaveze = db.Obaveza.Where(o => o.DogadjajID == d.ID).ToList();

                foreach (var item in obaveze)
                {
                    StanjeObaveze stanjeObaveze = new StanjeObaveze
                    {
                        DatumIzvrsenja          = DateTime.Parse("1/1/2020"),
                        IsZavrseno              = false,
                        IzvrsenoProcentualno    = 0,
                        NotifikacijaDanaPrije   = item.NotifikacijaDanaPrijeDefault,
                        NotifikacijeRekurizivno = item.NotifikacijeRekurizivnoDefault,
                        ObavezaID         = item.ID,
                        OznacenDogadjajID = novi.ID
                    };
                    db.Add(stanjeObaveze);
                    db.SaveChanges();
                }
            }

            return(Redirect("Index"));
        }
Example #15
0
        public IActionResult Detalji(int id)
        {
            OznacenDogadjaj d = db.OznacenDogadjaj
                                .Where(x => x.DogadjajID == id)
                                .Include(p => p.Dogadjaj)
                                .ThenInclude(n => n.Nastavnik)
                                .SingleOrDefault();

            if (d != null)
            {
                OznaceniDogadajiDetaljiVM model = new OznaceniDogadajiDetaljiVM
                {
                    DatumDodavanja = d.DatumDodavanja,
                    DatumDogadjaja = d.Dogadjaj.DatumOdrzavanja,
                    Nastavnik      = d.Dogadjaj.Nastavnik.ImePrezime,
                    OpisDogadjaja  = d.Dogadjaj.Opis,
                    DogadjajId     = id
                };

                return(View(model));
            }
            return(View("Greska"));
        }
        public ActionResult Dodaj(int dogadjajId)
        {
            KorisnickiNalog korisnik = HttpContext.GetLogiraniKorisnik();

            Dogadjaj d = _context.Dogadjaj.Find(dogadjajId);

            OznacenDogadjaj oD = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = d.ID,
                StudentID      = korisnik.Id
            };

            _context.OznacenDogadjaj.Add(oD);
            _context.SaveChanges();


            List <Obaveza> listaObaveza = _context.Obaveza.Where(o => o.DogadjajID == dogadjajId).ToList();

            foreach (var obaveza in listaObaveza)
            {
                _context.StanjeObaveze.Add(new StanjeObaveze
                {
                    DatumIzvrsenja          = new DateTime(2000, 1, 1),
                    IsZavrseno              = false,
                    IzvrsenoProcentualno    = 0,
                    NotifikacijaDanaPrije   = 0,
                    NotifikacijeRekurizivno = false,
                    ObavezaID         = obaveza.ID,
                    OznacenDogadjajID = _context.OznacenDogadjaj.Where(od => od.DogadjajID == dogadjajId && od.StudentID == korisnik.Id).Single().ID
                });

                _context.SaveChanges();
            }

            return(RedirectToAction("Index"));
        }
Example #17
0
        public ActionResult DodavanjeUOznaceneDogadjaje(int dogadjajID)
        {
            KorisnickiNalog logiraniKorisnik = HttpContext.GetLogiraniKorisnik();
            Student         logiraniStudent  = db.Student.Where(s => s.KorisnickiNalogId == logiraniKorisnik.Id).FirstOrDefault();
            OznacenDogadjaj oznacenDogadjaj  = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = dogadjajID,
                StudentID      = logiraniStudent.ID
            };

            db.Add(oznacenDogadjaj); db.SaveChanges();

            List <Obaveza> obavezeDogadjaja = db.Obaveza.Where(od => od.DogadjajID == oznacenDogadjaj.DogadjajID).ToList();

            foreach (var obaveze in obavezeDogadjaja)
            {
                StanjeObaveze stanjeObaveze = new StanjeObaveze
                {
                    DatumIzvrsenja          = DateTime.Now,
                    IsZavrseno              = false,
                    IzvrsenoProcentualno    = 0,
                    NotifikacijaDanaPrije   = 0,
                    NotifikacijeRekurizivno = default,
        public async Task <ServiceResult> OznaciDogadjaj(int dogadjajId, int studentId)
        {
            if (await VecOznacen(dogadjajId, studentId))
            {
                return new ServiceResult
                       {
                           Failed  = true,
                           Message = "Dogadjaj vec oznacen."
                       }
            }
            ;

            if (!await _context.Student.AnyAsync(x => x.ID == studentId))
            {
                return new ServiceResult
                       {
                           Failed  = true,
                           Message = "Student ne postoji."
                       }
            }
            ;

            var dogadjaj = await _context.Dogadjaj.FindAsync(dogadjajId);

            if (dogadjaj == null)
            {
                return new ServiceResult
                       {
                           Failed  = true,
                           Message = "Dogadjaj nije pronadjen."
                       }
            }
            ;

            var noviOznaceni = new OznacenDogadjaj
            {
                DatumDodavanja = DateTime.Now,
                DogadjajID     = dogadjajId,
                StudentID      = studentId
            };


            await _context.AddAsync(noviOznaceni);

            await _context.SaveChangesAsync();


            await _context.Entry(dogadjaj).Collection(x => x.Obaveze).LoadAsync();

            foreach (var x in dogadjaj.Obaveze)
            {
                var novoStanjeObaveze = new StanjeObaveze
                {
                    IzvrsenoProcentualno    = 0,
                    NotifikacijaDanaPrije   = 30,
                    NotifikacijeRekurizivno = true,
                    IsZavrseno        = false,
                    ObavezaID         = x.ID,
                    OznacenDogadjajID = noviOznaceni.ID
                };

                await _context.AddAsync(novoStanjeObaveze);
            }

            await _context.SaveChangesAsync();

            return(new ServiceResult
            {
                Success = true,
                Message = "Uspjesno oznacen."
            });
        }