Example #1
0
        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"));
        }
Example #2
0
        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));
        }
Example #3
0
        //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));
        }
Example #4
0
        public IActionResult OznaciKaoProcitanu(int id)
        {
            PoslataNotifikacija n = _db.PoslataNotifikacija.Find(id);

            n.IsProcitano = true;
            _db.SaveChanges();

            return(RedirectToAction(nameof(PrikazNotifikacija)));
        }
Example #5
0
        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);
        }
Example #7
0
        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"));
        }
Example #8
0
        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)));
        }