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 void Spremi(UrediStanjeObaveze model) { StanjeObaveze stanjeObaveze = _db.StanjeObaveze.Find(model.ID); stanjeObaveze.IzvrsenoProcentualno = model.ZavrsenoProcentualno; _db.SaveChanges(); }
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 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")); }
public IActionResult UrediSnimi(Korak4 model) { StanjeObaveze stanjeObaveze = _db.StanjeObaveze.Find(model.Id); stanjeObaveze.IzvrsenoProcentualno = model.procentualno; _db.SaveChanges(); return(RedirectToAction("PrikaziObaveze", new { Id = model.DogadjajId })); }
public IActionResult Save(StanjeObavezeEditVM model) { StanjeObaveze stanjeObaveze = db.StanjeObaveze.Where(x => x.Id == model.StanjeObavezeID) .Include(x => x.Obaveza) .FirstOrDefault(); stanjeObaveze.IzvrsenoProcentualno = model.ZavrsenoProcentualno; db.StanjeObaveze.Update(stanjeObaveze); db.SaveChanges(); return(Redirect("/OznaceniDogadaji/Detalji?DogadjajID=" + stanjeObaveze.OznacenDogadjajID)); }
public ActionResult Snimi(AjaxTestUrediVM model) { StanjeObaveze so = _context.StanjeObaveze.Find(model.StanjeObavezeId); so.IzvrsenoProcentualno = model.Procenat; _context.SaveChanges(); int oznaceniDogId = so.OznacenDogadjajID; return(RedirectToAction("Obaveze", new { oznaceniDogadjajId = oznaceniDogId })); }
public IActionResult Index(int stanjeObavezeId) { StanjeObaveze stanjeObaveze = _context.StanjeObaveze.Where(so => so.Id == stanjeObavezeId).Include(so => so.Obaveza).FirstOrDefault(); var stanje = new { IzvrsenoProcentualno = stanjeObaveze.IzvrsenoProcentualno, Naziv = stanjeObaveze.Obaveza.Naziv }; return(Ok(stanje)); }
public IActionResult ProcitanaNotifikacija(int id) { StanjeObaveze s = db.StanjeObaveze.Find(id); if (s != null) { s.IsZavrseno = true; db.SaveChanges(); } return(Redirect("/OznaceniDogadaji/Index")); }
public IActionResult Snimi(StanjeObavezeVM vm) { StanjeObaveze s = _db.StanjeObaveze .Where(x => x.Id == vm.StanjeObavezeId) .Include(a => a.Obaveza) .FirstOrDefault(); s.IzvrsenoProcentualno = vm.ZavrseneProcentualno; _db.SaveChanges(); return(RedirectToAction(nameof(Index), new { id = s.Obaveza.DogadjajID })); }
public IActionResult Uredi(AjaxTestUrediVM model) { StanjeObaveze s = db.StanjeObaveze.Where(d => d.Id == model.StanjeId).Include(p => p.OznacenDogadjaj).SingleOrDefault(); if (s != null && model.ZavrsenoProcentualno >= 0 && model.ZavrsenoProcentualno <= 100) { s.IzvrsenoProcentualno = model.ZavrsenoProcentualno; db.Update(s); db.SaveChanges(); } return(Redirect("/AjaxTest/Detalji/" + s.OznacenDogadjaj.DogadjajID)); }
public IActionResult Edit(int StanjeObavezeID) { StanjeObaveze stanjeObaveze = db.StanjeObaveze.Where(x => x.Id == StanjeObavezeID) .Include(x => x.Obaveza) .FirstOrDefault(); StanjeObavezeEditVM model = new StanjeObavezeEditVM() { StanjeObavezeID = StanjeObavezeID, Obaveza = stanjeObaveze.Obaveza.Naziv }; return(PartialView(model)); }
public ActionResult Uredi(int stanjeObavezeId) { StanjeObaveze so = _context.StanjeObaveze.Where(s => s.Id == stanjeObavezeId) .Include(s => s.Obaveza).Single(); var model = new AjaxTestUrediVM { StanjeObavezeId = so.Id, NazivObaveze = so.Obaveza.Naziv, Procenat = so.IzvrsenoProcentualno }; return(PartialView(model)); }
public IActionResult Uredi(int id) { StanjeObaveze s = db.StanjeObaveze.Where(x => x.Id == id).Include(d => d.Obaveza).SingleOrDefault(); if (s != null) { AjaxTestUrediVM model = new AjaxTestUrediVM { StanjeId = s.Id, Obaveza = s.Obaveza.Naziv, ZavrsenoProcentualno = s.IzvrsenoProcentualno }; return(PartialView(model)); } return(PartialView("Greska")); }
public IActionResult PromijeniProcenat(int id) { StanjeObaveze so = _db.StanjeObaveze .Where(x => x.Id == id) .Include(a => a.Obaveza) .FirstOrDefault(); var model = new StanjeObavezeVM { StanjeObavezeId = id, NazivObaveze = so.Obaveza.Naziv, ZavrseneProcentualno = so.IzvrsenoProcentualno }; return(PartialView(model)); }
public IActionResult Azuriraj(int stanjeObavezeId, float procenatStanjaObaveze) { StanjeObaveze stanjeObaveze = _context.StanjeObaveze .Where(so => so.Id == stanjeObavezeId) .Include(so => so.Obaveza) .FirstOrDefault(); if (procenatStanjaObaveze == 100) { stanjeObaveze.IsZavrseno = true; } else { stanjeObaveze.IsZavrseno = false; } stanjeObaveze.IzvrsenoProcentualno = procenatStanjaObaveze; _context.StanjeObaveze.Update(stanjeObaveze); _context.SaveChanges(); return(Ok("Uspjesno azurirano!")); }
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))); }
public bool IspunjavaUslovNotificiranja(StanjeObaveze stanjeObaveze) { if (stanjeObaveze.NotifikacijaDanaPrije == 0) { return(false); } var dogadjaj = stanjeObaveze.OznacenDogadjaj.Dogadjaj; if (dogadjaj == null) { return(false); } if (stanjeObaveze.NotifikacijeRekurizivno && dogadjaj.DatumOdrzavanja >= DateTime.Now && stanjeObaveze.NotifikacijaDanaPrije >= dogadjaj.DatumOdrzavanja.Day - DateTime.Now.Day) { return(true); } return(stanjeObaveze.NotifikacijaDanaPrije == dogadjaj.DatumOdrzavanja.Day - DateTime.Now.Day); }
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")); }
public float ProcenatZavrsenih(int DogadjajId) { List <Obaveza> listaObaveza = _context.Obaveza.Where(o => o.DogadjajID == DogadjajId).ToList(); float procenatZavrsenih = 0; foreach (var x in listaObaveza) { StanjeObaveze sO = _context.StanjeObaveze.Where(so => so.ObavezaID == x.ID).FirstOrDefault(); if (sO != null) { procenatZavrsenih += sO.IzvrsenoProcentualno; } } float procenat = 0; if (listaObaveza.Count() != 0) { procenat = procenatZavrsenih / listaObaveza.Count(); } return(procenat); }
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." }); }
public IActionResult Index() { HashSet <Notifikacija> notifikacije = new HashSet <Notifikacija>(); HashSet <DogadajiRedViewModel> oznaceniDogadjaji = _context.OznacenDogadjaj .Where(od => od.StudentID == 1)//treba staviti koji je student logiran, nisam upućen kako .Select(od => new DogadajiRedViewModel ( od.ID, od.Dogadjaj.DatumOdrzavanja, od.Dogadjaj.Nastavnik.ImePrezime, od.Dogadjaj.Opis, 0,//nisam siguran kako uraditi preko EF od.DogadjajID ) { }).ToHashSet(); foreach (var oznacenDogadjaj in oznaceniDogadjaji) { HashSet <Obaveza> obaveze = _context.Obaveza .Where(o => o.DogadjajID == oznacenDogadjaj.DogadjajID) .ToHashSet(); int brojObaveza = obaveze.Count(); float sumaObaveze = 0; foreach (var obaveza in obaveze) { StanjeObaveze stanjeObaveze = _context.StanjeObaveze .Where(so => so.ObavezaID == obaveza.ID) .OrderByDescending(so => so.DatumIzvrsenja) .FirstOrDefault(); if (stanjeObaveze != null) { sumaObaveze += stanjeObaveze.IzvrsenoProcentualno / brojObaveza; } } oznacenDogadjaj.BrojObaveza = sumaObaveze; //Zadatak 3 StanjeObaveze stanjeObaveza = _context.StanjeObaveze .Where(so => so.OznacenDogadjajID == oznacenDogadjaj.ID) .Include(so => so.OznacenDogadjaj) .Include(so => so.Obaveza) .ThenInclude(o => o.Dogadjaj) .OrderByDescending(so => so.DatumIzvrsenja) .FirstOrDefault(); if (stanjeObaveza != null && oznacenDogadjaj.DatumDogadjanja.CompareTo( DateTime.Now.AddDays(stanjeObaveza.Obaveza.NotifikacijaDanaPrijeDefault )) == -1) { PoslataNotifikacija poslataNotifikacija = _context.PoslataNotifikacija .OrderByDescending(pn => pn.DatumSlanja) .FirstOrDefault(); if (poslataNotifikacija == null) { poslataNotifikacija = new PoslataNotifikacija(stanjeObaveza.Id); _context.PoslataNotifikacija.Add(poslataNotifikacija); } if (!poslataNotifikacija.IsProcitano) { notifikacije.Add( new Notifikacija ( stanjeObaveza.Obaveza.Naziv, stanjeObaveza.Obaveza.Dogadjaj.DatumOdrzavanja, stanjeObaveza.OznacenDogadjaj.Dogadjaj.Opis, poslataNotifikacija.Id )); } } } HashSet <DogadajiRedViewModel> neoznaceniDogadjaji = _context.Dogadjaj .Where(d => oznaceniDogadjaji.Where(od => od.DogadjajID == d.ID).FirstOrDefault() == null) .Select(d => new DogadajiRedViewModel ( d.ID, d.DatumOdrzavanja, d.Nastavnik.ImePrezime, d.Opis, _context.Obaveza.Where(o => o.DogadjajID == d.ID).Count(), d.ID ) { }).ToHashSet(); _context.SaveChanges(); return(View(new TabeleDogadjajiViewModel(oznaceniDogadjaji, neoznaceniDogadjaji, notifikacije))); }