public IActionResult Snimi(RezervacijaDodajVM vm) { if (vm.RezervacijaID == 0) { Rezervacija x = new Rezervacija { DatumRezervacije = vm.DatumRezervacije, KlijentId = vm.KlijentId, TerminId = vm.TerminId, TretmanId = vm.TeretmanId, }; _db.Rezervacija.Add(x); _db.SaveChanges(); PoslataNotifikacija n = new PoslataNotifikacija { DatumSlanja = DateTime.Now, IsProcitano = false, RezervacijaId = x.Id }; _db.PoslataNotifikacija.Add(n); } else { Rezervacija t = _db.Rezervacija.Find(vm.RezervacijaID); t.DatumRezervacije = vm.DatumRezervacije; t.KlijentId = vm.KlijentId; t.TerminId = vm.TerminId; t.TretmanId = vm.TeretmanId; } Termin tr = _db.Termin.Find(vm.TerminId); tr.Rezervisan = true; _db.SaveChanges(); return(Redirect("/Rezervacija/Index")); }
public IActionResult OdobriKlijent(int id) { PoslataNotifikacija n = _db.PoslataNotifikacija.Where(x => x.RezervacijaId == id).FirstOrDefault(); Rezervacija r = _db.Rezervacija.Find(id); KorisniciUloge list = _db.KorisniciUloge.Include(x => x.Korisnik).Include(x => x.Uloga).Where(x => x.KorisnikId == HttpContext.GetLogiraniKorisnik().KorisnikId).FirstOrDefault(); if (list.Uloga.Naziv == "Administrator") { n.IsProcitano = true; KlijentNotifikacija nova = new KlijentNotifikacija { DatumSlanja = DateTime.Now, IsProcitano = false, RezervacijaId = n.RezervacijaId, KlijentId = r.KlijentId, }; _db.KlijentNotifikacija.Add(nova); _db.SaveChanges(); } else { TempData["ErrorMessage"] = "Nemate pravo pristupa"; } return(Redirect("/Rezervacija/Index/" + r.KlijentId)); }
//Ponistavanje rezervacije modul klijent public IActionResult Obrisi(int ID) { DateTime danas = DateTime.Now.AddDays(3); Rezervacija x = _db.Rezervacija.Find(ID); int id = x.KlijentId; Termin t = _db.Termin.Find(x.TerminId); if (t.VrijemeTermina < danas) { TempData["ErrorMessage"] = "Rezervacija se moze otkazati samo 3 dana prije!"; return(Redirect("/Rezervacija/Index/" + id)); } KlijentNotifikacija noti = _db.KlijentNotifikacija.Where(y => y.RezervacijaId == x.Id).FirstOrDefault(); PoslataNotifikacija nofikacija = _db.PoslataNotifikacija.Where(y => y.RezervacijaId == x.Id).FirstOrDefault(); if (noti != null) { _db.KlijentNotifikacija.Remove(noti); _db.SaveChanges(); } if (nofikacija != null) { _db.PoslataNotifikacija.Remove(nofikacija); _db.SaveChanges(); } _db.Rezervacija.Remove(x); t.Rezervisan = false; _db.SaveChanges(); return(Redirect("/Rezervacija/Index/" + id)); }
public IActionResult OznaciKaoProcitanu(int id) { PoslataNotifikacija n = _db.PoslataNotifikacija.Find(id); n.IsProcitano = true; _db.SaveChanges(); return(RedirectToAction(nameof(PrikazNotifikacija))); }
public IActionResult Procitano(int poslataNotifikacijaId) { PoslataNotifikacija notifikacija = _context.PoslataNotifikacija.Find(poslataNotifikacijaId); //provjeriti da li notifikacija pripada studentu preko studentId notifikacija.IsProcitano = true; _context.PoslataNotifikacija.Update(notifikacija); _context.SaveChanges(); return(Ok("Notifikacija je uspjesno procitana!")); }
public async Task <PoslataNotifikacija> CreateNotification(int stanjeObavezeId) { var notifikacija = new PoslataNotifikacija { DatumSlanja = DateTime.Now, StanjeObavezeID = stanjeObavezeId, Procitana = false }; await _context.AddAsync(notifikacija); await _context.SaveChangesAsync(); return(notifikacija); }
public IActionResult Odobri(int id) { PoslataNotifikacija n = _db.PoslataNotifikacija.Where(x => x.RezervacijaId == id).FirstOrDefault(); Rezervacija r = _db.Rezervacija.Find(id); n.IsProcitano = true; KlijentNotifikacija nova = new KlijentNotifikacija { DatumSlanja = DateTime.Now, IsProcitano = false, RezervacijaId = n.RezervacijaId, KlijentId = r.KlijentId, }; _db.KlijentNotifikacija.Add(nova); _db.SaveChanges(); return(Redirect("/Rezervacija/PregledajRzerevacije")); }
public IActionResult OznaciProcitano(int id) { PoslataNotifikacija n = _db.PoslataNotifikacija.Find(id); Rezervacija r = _db.Rezervacija.Find(n.RezervacijaId); n.IsProcitano = true; KlijentNotifikacija nova = new KlijentNotifikacija { DatumSlanja = DateTime.Now, IsProcitano = false, RezervacijaId = n.RezervacijaId, KlijentId = r.KlijentId, }; _db.KlijentNotifikacija.Add(nova); _db.SaveChanges(); return(RedirectToAction("Notifikacije")); }
public string CreateNotificationMessageHtml(PoslataNotifikacija notifikacija) { if (notifikacija == null) { return(string.Empty); } var dogadjaj = notifikacija.StanjeObaveze.OznacenDogadjaj.Dogadjaj; var obaveza = notifikacija.StanjeObaveze.Obaveza; if (dogadjaj == null || obaveza == null) { return(string.Empty); } if (notifikacija.StanjeObaveze.NotifikacijeRekurizivno == false && notifikacija.StanjeObaveze.NotifikacijaDanaPrije == 0) { return(string.Empty); } var encryptedNotifikacijaId = _protector.Protect(notifikacija.Id.ToString()); var uniqueHtmlId = string.Concat("Notifikacija_", encryptedNotifikacijaId.Substring(encryptedNotifikacijaId.Length - 6, 5)); var ajaxAttributes = "ajax-poziv='da' ajax-notify='da' ajax-message='Uspjesno oznacena' ajax-remove='da' ajax-remove-element='" + encryptedNotifikacijaId + "'"; var template = "<div class='row pt-5' id='" + encryptedNotifikacijaId + "'><strong>Dogadjaj '" + dogadjaj.Opis + "' - " + dogadjaj.DatumOdrzavanja.ToString("d") + ".</strong><br/>"; template += "Ovo je podsetnik za obavezu '" + obaveza.Naziv + "'. Oznaci kao "; template += "<a href='/Obaveza/Notifikacija/" + encryptedNotifikacijaId + "' " + ajaxAttributes + " >procitanu</a></div>"; return(template); }
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))); }