Example #1
0
        public StatusCodeResult NotifikacijeIznajmljivanja()
        {
            var istekli_termini = db.RezervacijaIznajmljenaBicikla.Where(x => x.Isteklo == false && x.DatumVracanja <= DateTime.Now).ToList();
            var zaposlenici     = db.Zaposlenik.Where(x => x.Korisnik.Aktivan == true).ToList();

            foreach (var termin in istekli_termini)
            {
                termin.Isteklo = true;
                foreach (var zaposlenik in zaposlenici)
                {
                    var notifikacija = new Notifikacija
                    {
                        RezervacijaIznajmljenaBiciklaId = termin.RezervacijaIznajmljenaBiciklaID,
                        ZaposlenikId = zaposlenik.Id,
                        Tip          = TipNotifikacije.Istekao_Termin,
                        DatumVrijeme = DateTime.Now
                    };
                    db.Notifikacija.Add(notifikacija);
                }
            }

            try
            {
                db.SaveChanges();

                return(new OkResult());
            }
            catch (Exception)
            {
                return(new BadRequestResult());
            }
        }
Example #2
0
        public IActionResult Detalji(int NotifikacijaID)
        {
            Notifikacija x = db.Notifikacije
                             .Include(i => i.Korisnik)
                             .Include(i => i.Obilazak)
                             .Include(i => i.Obilazak.Nekretnina)
                             .Include(i => i.Obilazak.Lokacija)
                             .Include(i => i.Obilazak.Lokacija.Grad)
                             .Where(i => i.NotifikacijaID == NotifikacijaID).FirstOrDefault();

            NotifikacijaDetaljiVM model = new NotifikacijaDetaljiVM
            {
                NotifikacijaID  = x.NotifikacijaID,
                KupacID         = x.KorisnikID,
                LokacijaID      = x.Obilazak.LokacijaID,
                NekretninaID    = x.Obilazak.NekretninaID,
                ObilazakID      = x.ObilazakID,
                Adresa          = x.Obilazak.Adresa,
                Grad            = x.Obilazak.Lokacija.Grad.Naziv,
                endVrijeme      = x.Obilazak.DatumVrijemeEnd,
                startVrijeme    = x.Obilazak.DatumVrijemeStart,
                KupacNaziv      = x.Korisnik.Ime,
                NekretninaNaziv = x.Obilazak.Nekretnina.Naziv
            };

            return(View(model));
        }
        public async Task <ActionResult <Notifikacija> > addNotification(Notifikacija notifikacija)
        {
            _context.Notifications.Add(notifikacija);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetAllDevices", _context.Devices));
        }
        public async Task <IActionResult> ReadNotification(Notifikacija notifikacija)
        {
            var not = _context.Notifications.Where(e => e.Id == notifikacija.Id).FirstOrDefault();

            not.Procitana = true;
            Console.WriteLine("Citanje {0} notifikacije", notifikacija.Id);
            _context.Entry(not).State = EntityState.Modified;
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NotifikacijaExists(notifikacija.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
 public HttpResponseMessage UpdateNotifikacija([FromBody] Notifikacija notifikacija)
 {
     using (var connection = new SqlConnection(ConnectionString))
     {
         try
         {
             using (var sqlCmd = new SqlCommand("UPDATE Poruka.Notifikacija SET SadrzajNotifikacije=@SadrzajNotifikacije, Ucestalost=@Ucestalost WHERE NotifikacijaID=@id"))
             {
                 connection.Open();
                 sqlCmd.Connection = connection;
                 sqlCmd.Parameters.AddWithValue("SadrzajNotifikacije", notifikacija.SadrzajNotifikacije);
                 sqlCmd.Parameters.AddWithValue("Ucestalost", notifikacija.Ucestalost);
                 sqlCmd.Parameters.AddWithValue("id", notifikacija.NotifikacijaID);
                 int rowAffected = sqlCmd.ExecuteNonQuery();
                 if (rowAffected == 0)
                 {
                     return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Error 400 BadRequest"));
                 }
             }
         }
         catch (Exception)
         {
             return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Error 400 Bad Request"));
         }
     }
     return(Request.CreateResponse(HttpStatusCode.OK, "Updated Successfully"));
 }
Example #6
0
        public void posaljiNotifikacijeKlijentu(int to, int from, NotifikacijaVM message)
        {
            var Klijent     = _user.getUserById(to.ToString()).Result;
            var Prijevoznik = _db.Prijevoznik.Where(x => x.PrijevoznikID == from).Select(x => x.User).FirstOrDefault();
            var vrijeme     = DateTime.Now;

            message.Slika    = Prijevoznik.Slika;
            message.User     = Prijevoznik.Ime + " " + Prijevoznik.Prezime;
            message.Otvorena = false;
            message.Vrijeme  = vrijeme.ToString("hh:mm:ss");

            var temp = new Notifikacija()
            {
                Otvorena   = message.Otvorena,
                Poruka     = message.Poruka,
                URL        = message.Url,
                UserFromID = from,
                UserToID   = to,
                Vrijeme    = DateTime.Now
            };


            _db.Notifikacija.Add(temp);
            _db.SaveChanges();
            message.NotifikacijaId = temp.NotifikacijaID;
            _Hub.Clients.Clients(Klijent.SignalRToken).SendAsync("GetNotification", message);
        }
        public HttpResponseMessage CreateNotifikacija([FromBody] Notifikacija notifikacija)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                SqlCommand sqlCmd = new SqlCommand("INSERT INTO Poruka.Notifikacija VALUES(@SadrzajNotifikacije, @Ucestalost)", connection);
                sqlCmd.Parameters.AddWithValue("SadrzajNotifikacije", notifikacija.SadrzajNotifikacije);
                sqlCmd.Parameters.AddWithValue("Ucestalost", notifikacija.Ucestalost);

                try
                {
                    connection.Open();
                    int          i = sqlCmd.ExecuteNonQuery();
                    SqlCommand   sqlNotifikacija = new SqlCommand("SELECT TOP 1 * FROM Poruka.Notifikacija ORDER BY NotifikacijaID DESC", connection);
                    Notifikacija last            = new Notifikacija();

                    using (SqlDataReader notifikacijaRead = sqlNotifikacija.ExecuteReader())
                    {
                        while (notifikacijaRead.Read())
                        {
                            last.NotifikacijaID      = Convert.ToInt32(notifikacijaRead["NotifikacijaID"]);
                            last.SadrzajNotifikacije = Convert.ToString(notifikacijaRead["SadrzajNotifikacije"]);
                            last.Ucestalost          = Convert.ToString(notifikacijaRead["Ucestalost"]);
                        }
                    }

                    var response = Request.CreateResponse(HttpStatusCode.Created, last);
                    response.Headers.Location = new Uri(Request.RequestUri + "/" + last.NotifikacijaID);
                    return(response);
                }
                catch (Exception)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Error 404 Bad request"));
                }
            }
        }
Example #8
0
        public async Task ObrisiKomentar(int kId, int uId, int pId)
        {
            pId -= 148;

            KomentariObjavaClanova k = new KomentariObjavaClanova();

            k = _ctx.KomentariObjavaClanova.Find(kId);

            if (k != null && k.ClanId == uId)
            {
                _ctx.KomentariObjavaClanova.Remove(k);
                _ctx.SaveChanges();
            }

            Notifikacija n = _ctx.Notifikacije.Where(x => x.ObjavaId == pId && x.SourceClanId == uId).FirstOrDefault();

            if (n != null)
            {
                _ctx.Notifikacije.Remove(n);
            }
            await _ctx.SaveChangesAsync();

            int brKomentara = _ctx.KomentariObjavaClanova.Where(x => x.ObjaveClanovaId == k.ObjaveClanovaId).Count();

            await Clients.All.SendAsync("ReceiveMessageObrisi", kId, uId, pId, brKomentara);
        }
Example #9
0
        public static List <Notifikacija> GetNotifikacija(string subscriberid)
        {
            ISession session = SessionManager.GetSession();

            if (session == null)
            {
                return(null);
            }

            var messages = session.Execute("select * from \"Notifikacija\" where subscriberid='" + subscriberid + "'");

            List <Notifikacija> notifikacije = new List <Notifikacija>();

            if (messages != null)
            {
                foreach (var item in messages)
                {
                    Notifikacija poruka = new Notifikacija();
                    poruka.publisherid  = item["publisherid"] != null ? item["publisherid"].ToString() : string.Empty;
                    poruka.subscriberid = item["subscriberid"] != null ? item["subscriberid"].ToString() : string.Empty;
                    poruka.senttime     = item["senttime"] != null ? item["senttime"].ToString() : string.Empty;
                    poruka.id           = item["id"] != null ? item["id"].ToString() : string.Empty;

                    notifikacije.Add(poruka);
                }
            }
            return(notifikacije);
        }
Example #10
0
        public IActionResult PromijeniUProcitano(int NotifikacijaID)
        {
            Notifikacija x = db.Notifikacije.Find(NotifikacijaID);

            x.Status = "Pročitana";
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #11
0
 private void uiIzbrisiArtikl_Click(object sender, EventArgs e)
 {
     if (baza.IzbrisiArtikl(ovajArtikl.id_artikla) == false)
     {
         Notifikacija novaNotifikacija = new Notifikacija("Uspjesno obrisano", "Artikl je uspjesno obrisan!", "potvrda");
         novaNotifikacija.ShowDialog();
     }
 }
Example #12
0
        public IActionResult ZavrsiRezervaciju()
        {
            string SifraRezervacije = null;

            try
            {
                SifraRezervacije = Request.Cookies["Sesion"];
            }
            catch (Exception)
            {
                throw;
            }
            if (SifraRezervacije == null)
            {
                //redirect na pocetnu str ili ispisati nesto
            }
            Rezervacija r = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault();

            r.UspjesnoSpremljena = true;
            Vozilo v = db.Vozilo.Where(x => x.VoziloID == r.VoziloID).FirstOrDefault();

            int x1 = r.PrikolicaID ?? 0;

            r.SifraRezervacije = DateTime.Now.Day + "" + DateTime.Now.Month + "-" + r.PoslovnicaID + "" + r.VoziloID + "" + r.RezervacijaID + "" + x1 + "/" + DateTime.Now.Year;
            db.SaveChanges();
            Response.Cookies.Delete("Sesion");
            TrenutnaPoslovnica tp = db.TrenutnaPoslovnica.Where(TP => TP.VoziloID == r.VoziloID).FirstOrDefault();

            tp.VoziloRezervisano = true;
            db.SaveChanges();

            Notifikacija notifikacijaZaKlijenta = new Notifikacija
            {
                Vrijeme       = DateTime.Now,
                Otvorena      = false,
                Poruka        = "Vasa rezervacija za vozilo " + v.Naziv + " je zaprimljena u poslovnicu i trenutno je na obradi!",
                PoslovnicaID  = null,
                UserID        = r.KlijentID,
                RezervacijaID = r.RezervacijaID
            };
            Notifikacija notifikacijaZaUposlenika = new Notifikacija
            {
                Vrijeme       = DateTime.Now,
                Otvorena      = false,
                Poruka        = "Nova rezervacija za vozilo " + v.Naziv + " od " + User.Identity.Name,
                PoslovnicaID  = r.PoslovnicaID,
                UserID        = null,
                RezervacijaID = r.RezervacijaID
            };
            List <Notifikacija> n = new List <Notifikacija>();

            n.Add(notifikacijaZaKlijenta);
            n.Add(notifikacijaZaUposlenika);
            db.AddRange(n);
            db.SaveChanges();

            return(RedirectPermanent("/Klijent/Rezervacija/Index"));
        }
Example #13
0
        public ActionResult Confirm(PaymentIntentConfirmRequest request)
        {
            var service       = new PaymentIntentService();
            var paymentIntent = service.Get(request.PaymentIntentId);

            var narudzba = db.Rezervacija
                           .Where(x => x.RezervacijaId == request.RezervacijaId)
                           .Include(x => x.RezervacijaIznajmljenaBicikla)
                           .Include(x => x.RezervacijaServis)
                           .FirstOrDefault();
            var narudzba_iznos = (int)narudzba.UkupniIznos * 100;

            if (paymentIntent.Amount == narudzba_iznos && paymentIntent.Status == "succeeded")
            {
                if (narudzba.StanjeRezervacije == StanjeRezervacije.ekanje_uplate)
                {
                    narudzba.StanjeRezervacije = StanjeRezervacije.U_obradi;
                    if (narudzba.DatumUplate is null)
                    {
                        narudzba.DatumUplate = DateTime.Now;
                    }

                    bool IsServisRezervacija = narudzba.RezervacijaServis.Any(),
                         IsTerminRezervacija = narudzba.RezervacijaIznajmljenaBicikla.Any();

                    if (IsServisRezervacija || IsTerminRezervacija || narudzba.NacinPlacanja == "online")
                    {
                        var zaposlenici = db.Zaposlenik.Where(x => x.Korisnik.Aktivan == true).ToList();
                        foreach (var zaposlenik in zaposlenici)
                        {
                            var notifikacija = new Notifikacija
                            {
                                ZaposlenikId = zaposlenik.Id,
                                Rezervacija  = narudzba,
                                DatumVrijeme = DateTime.Now
                            };
                            if (IsServisRezervacija)
                            {
                                notifikacija.Tip = TipNotifikacije.Novi_Servis;
                            }
                            else if (IsTerminRezervacija)
                            {
                                notifikacija.Tip = TipNotifikacije.Novi_Termin;
                            }
                            else
                            {
                                notifikacija.Tip = TipNotifikacije.Nova_Narudzba;
                            }

                            db.Notifikacija.Add(notifikacija);
                        }
                    }
                    db.SaveChanges();
                }
            }

            return(new JsonResult(new { success = true }));
        }
Example #14
0
        private void uiSpremiPromjene_Click(object sender, EventArgs e)
        {
            if (ProvjeriIspunjenostPolja())
            {
                baza.AzurirajObicnogKorisnika(prijavljeniKorisnik.IDRacuna, uiUnosAdresa.Text, uiUnosNaziv.Text, uiUnosEmail.Text, uiUnosLozinka.Text, uiUnosBrojTelefona.Text);

                Notifikacija novaNotifikacija = new Notifikacija("Uspjesno azuriranje", "Podaci su uspjesno azurirani!", "potvrda");
                novaNotifikacija.ShowDialog();
            }
        }
Example #15
0
        public async Task <IActionResult> OznaciKaoProcitano(int NotifikacijaID)
        {
            Notifikacija notifikacija = db.Notifikacija.FirstOrDefault(x => x.NotifikacijaID == NotifikacijaID);

            db.Notifikacija.Update(notifikacija);
            notifikacija.Status = true;

            await db.SaveChangesAsync();

            return(RedirectToAction("Index", "Home"));
        }
        public async Task <IActionResult> OznaciKaoProcitano(int NotifikacijaID)
        {
            Notifikacija notifikacija = db.Notifikacija.FirstOrDefault(x => x.NotifikacijaID == NotifikacijaID);

            db.Notifikacija.Update(notifikacija);
            notifikacija.Status = true;

            await db.SaveChangesAsync();

            return(RedirectToAction(nameof(Index), new { LogiraniKorisnikID = userManager.GetUserId(HttpContext.User) }));
        }
Example #17
0
 private void uiPretplatiKorisnika_Click(object sender, EventArgs e)
 {
     if (baza.PretplatiKorisnika(trenutniKorisnik.IDRacuna, trenutniUgoObjekt.IDRacuna) == false)
     {
         Notifikacija novaNotifikacija = new Notifikacija("Uspjesna pretplata", "Sada ste pretplaćeni na ovaj objekt!", "potvrda");
         novaNotifikacija.ShowDialog();
     }
     else
     {
         Notifikacija novaNotifikacija = new Notifikacija("Obavijest", "Već ste pretplaćeni na ovaj objekt!", "obavijest");
         novaNotifikacija.ShowDialog();
     }
 }
Example #18
0
        private void uiSpremiPromjene_Click(object sender, EventArgs e)
        {
            if (ProvjeriIspunjenostPolja() == true)
            {
                baza.AzurirajUgostiteljskiObjekt(ugostiteljProfil.IDRacuna, uiUnosNaziv.Text, uiUnosEmail.Text, uiUnosLozinka.Text, uiUnosAdresa.Text, uiUnosBrojTelefona.Text, TimeSpan.Parse(uiUnosRadnoVrijemePocetak.Text), TimeSpan.Parse(uiUnosRadnoVrijemeKraj.Text));

                string porukaPretplatniku = $"Ugostiteljski objekt {ugostiteljProfil.Naziv} je azurirao informacije o sebi: " + Environment.NewLine + $"Naziv objekta: {uiUnosNaziv.Text}" + Environment.NewLine + $"Email adresa: {uiUnosEmail.Text}" + Environment.NewLine + $"Adresa: {uiUnosAdresa.Text}" + Environment.NewLine + $"Broj telefona: {uiUnosBrojTelefona.Text}" + Environment.NewLine + $"Radno vrijeme pocetak: {uiUnosRadnoVrijemePocetak.Text}" + Environment.NewLine + $"Radno vrijeme kraj: {uiUnosRadnoVrijemeKraj.Text}";

                baza.ObavijestiPretplatnike(ugostiteljProfil.IDRacuna, porukaPretplatniku);

                Notifikacija novaNotifikacija = new Notifikacija("Uspjesno azuriranje", "Podaci su uspjesno azurirani!", "potvrda");
                novaNotifikacija.ShowDialog();
            }
        }
Example #19
0
        private void NapraviNotifikaciju(int rezervacijaID, int klijentID, string poruka)
        {
            Notifikacija nova = new Notifikacija
            {
                Otvorena      = false,
                Poruka        = poruka,
                RezervacijaID = rezervacijaID,
                UserID        = klijentID,
                Vrijeme       = DateTime.Now
            };

            _context.Add(nova);
            _context.SaveChanges();
        }
Example #20
0
        private void uiNaruci_Click(object sender, EventArgs e)
        {
            novaNarudzba = baza.KreirajNarudzbu(trenutniObjekt.IDRacuna, trenutniKorisnik.IDRacuna, DateTime.Now);

            foreach (var item in stavkaNarudzbe)
            {
                baza.KreirajStavkuNarudzbe(item.IdArtikla, novaNarudzba.id_narudzbe, item.Kolicina);
            }

            Notifikacija novaNotifikacija = new Notifikacija("Narudzba kreirana", "Narudzba je uspjesno poslana!", "potvrda");

            novaNotifikacija.ShowDialog();

            OsvjeziPrikaz();
        }
        public async Task Procitano(Notifikacija n)
        {
            var entity = await _apiNotifikacija.Update <Notifikacija>(n.NotifikacijaId, new NotifikacijaUpsertRequest
            {
                DatumSlanja = n.DatumSlanja,
                Sadrzaj     = n.Sadrzaj,
                IsProcitano = true,
                ReceptId    = n.ReceptId
            });

            if (entity != null)
            {
                await Application.Current.MainPage.DisplayAlert(" ", "Notifikacija je oznacena kao procitana!", "OK");
            }
        }
Example #22
0
        public void AddNotification(int userId, int postId)
        {
            ObjaveClanova o = _ctx.ObjaveClanova.Find(postId);
            Notifikacija  n = new Notifikacija();

            _ctx.Notifikacije.Add(n);

            n.Sadrzaj      = " je komentarisao vašu objavu ";
            n.SourceClanId = userId;
            n.DestClanId   = o.ClanId;
            n.ObjavaId     = postId;
            n.Seen         = false;
            n.Read         = false;

            _ctx.SaveChanges();
        }
        public async Task Snimi(string datumObilaska, string gradId, string adresa, string nekretninaId, string agentId)
        {
            HttpContext     httpContext = Context.GetHttpContext();
            KorisnickiNalog kn          = httpContext.GetLogiraniKorisnik();
            Korisnik        k           = db.Korisnici.Where(x => x.KorisnickiNalogID == kn.KorisnickiNalogID).FirstOrDefault();

            Obilazak x = new Obilazak
            {
                DatumVrijemeStart = DateTime.Parse(datumObilaska),
                DatumVrijemeEnd   = DateTime.Parse(datumObilaska).AddHours(1),

                KorisnikID   = k.KorisnikID, //ovo je kupac
                NekretninaID = Int32.Parse(nekretninaId),
                UposlenikID  = Int32.Parse(agentId),
                Lokacija     = new Lokacija
                {
                    GradID = Int32.Parse(gradId),
                },
                Adresa   = adresa,
                Napomena = null,
                Otkazano = false,
                Zavrseno = false
            };

            db.Obilasci.Add(x);
            db.SaveChanges();

            Notifikacija y = new Notifikacija
            {
                KorisnikID        = x.KorisnikID,
                UposlenikID       = x.UposlenikID,
                DatumNotifikacije = DateTime.Now,
                ObilazakID        = x.ObilazakID,
                Status            = "Nepročitana",
                Vidjeno           = false,
                TextNotifikacije  = " dobili ste novi zahtjev za obilazak od kupca - "
            };

            db.Add(y);
            db.SaveChanges();

            await Notify("added", Int32.Parse(agentId));
        }
        public IActionResult UrediAdresu(int ObilazakID, string adresa)
        {
            Obilazak x = db.Obilasci
                         .Include(i => i.Lokacija)
                         .Where(i => i.ObilazakID == ObilazakID)
                         .FirstOrDefault();
            Notifikacija y = db.Notifikacije
                             .Where(i => i.ObilazakID == x.ObilazakID).FirstOrDefault();

            if (!ModelState.IsValid)
            {
                return(Redirect("/Notifikacija/Detalji?NotifikacijaID=" + y.NotifikacijaID));
            }
            x.Adresa = adresa;
            db.SaveChanges();



            return(RedirectToAction("/Notifikacija/Detalji?NotifikacijaID=" + y.NotifikacijaID));
        }
        public IActionResult UrediDatum(int ObilazakID, DateTime datum)
        {
            Obilazak x = db.Obilasci
                         .Include(i => i.Lokacija)
                         .Where(i => i.ObilazakID == ObilazakID)
                         .FirstOrDefault();
            Notifikacija y = db.Notifikacije
                             .Where(i => i.ObilazakID == x.ObilazakID).FirstOrDefault();

            if (!ModelState.IsValid)
            {
                return(Redirect("/Notifikacija/Detalji?NotifikacijaID=" + y.NotifikacijaID));
            }

            x.DatumVrijemeStart = datum;
            db.SaveChanges();



            return(RedirectToAction("/Notifikacija/Detalji?NotifikacijaID=" + y.NotifikacijaID));
        }
        public HttpResponseMessage GetByID(int id)
        {
            Notifikacija notifikacija = null;

            using (var connection = new SqlConnection(ConnectionString))
            {
                SqlCommand sqlCmd = new SqlCommand("select * from Poruka.Notifikacija where NotifikacijaID=" + id, connection)
                {
                    CommandType = CommandType.Text
                };
                try
                {
                    connection.Open();
                    using (SqlDataReader dataReader = sqlCmd.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            notifikacija = new Notifikacija
                            {
                                NotifikacijaID      = Convert.ToInt32(dataReader["NotifikacijaID"]),
                                SadrzajNotifikacije = Convert.ToString(dataReader["SadrzajNotifikacije"]),
                                Ucestalost          = Convert.ToString(dataReader["Ucestalost"])
                            };
                        }
                    }

                    if (notifikacija == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Error 404 Found"));
                    }
                }
                catch (Exception)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Error retrieving data"));
                }
            }
            return(Request.CreateResponse(HttpStatusCode.OK, notifikacija));
        }
        public HttpResponseMessage GetNotifikacije()
        {
            List <Notifikacija> result = new List <Notifikacija>();

            using (var connection = new SqlConnection(ConnectionString))
            {
                SqlCommand sqlCmd = new SqlCommand("select * from Poruka.Notifikacija", connection)
                {
                    CommandType = CommandType.Text
                };
                try
                {
                    connection.Open();

                    using (SqlDataReader dataReader = sqlCmd.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            var notifikacija = new Notifikacija
                            {
                                NotifikacijaID      = Convert.ToInt32(dataReader["NotifikacijaID"]),
                                SadrzajNotifikacije = Convert.ToString(dataReader["SadrzajNotifikacije"]),
                                Ucestalost          = Convert.ToString(dataReader["Ucestalost"])
                            };

                            result.Add(notifikacija);
                        }
                    }
                }
                catch (Exception)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Error retrieving data"));
                }
            }
            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Example #28
0
        public IActionResult PonistiRezervaciju(int?id)
        {
            string SifraRezervacije = null;

            try
            {
                SifraRezervacije = Request.Cookies["Sesion"];
            }
            catch (Exception)
            {
                throw;
            }
            if (SifraRezervacije == null && id == null)
            {
                return(RedirectPermanent("/Klijent/Rezervacija"));
            }

            if (id != null)
            {
                //redirect na pocetnu str ili ispisati nesto
                Rezervacija r1 = db.Rezervacija.Where(x => x.RezervacijaID == id).FirstOrDefault();
                List <RezervisanaUsluga> ru1     = db.RezervisanaUsluga.Where(x => x.RezervacijaID == r1.RezervacijaID).ToList();
                OcjenaRezervacija        ocjena1 = db.OcjenaRezervacija.Where(x => x.RezervacijaID == r1.RezervacijaID).FirstOrDefault();
                TrenutnaPoslovnica       tp1     = db.TrenutnaPoslovnica.Where(x => x.VoziloID == r1.VoziloID && x.PoslovnicaID == r1.PoslovnicaID && x.VoziloRezervisano == true).FirstOrDefault();
                Vozilo v = db.Vozilo.Where(x => x.VoziloID == r1.VoziloID).FirstOrDefault();


                List <Notifikacija> noti = db.Notifikacija.Where(x => x.RezervacijaID == r1.RezervacijaID).ToList();
                if (noti != null)
                {
                    noti.Select(c => { c.RezervacijaID = null; return(c); });
                }

                if (tp1 != null)
                {
                    tp1.VoziloRezervisano = false;
                }
                if (ocjena1 != null)
                {
                    db.Remove(ocjena1);
                }
                if (ru1 != null)
                {
                    db.RemoveRange(ru1);
                }
                if (r1 != null)
                {
                    db.Remove(r1);
                }
                Notifikacija notifikacijaZaKlijenta = new Notifikacija
                {
                    Vrijeme       = DateTime.Now,
                    Otvorena      = false,
                    Poruka        = "Vasa rezervacija za vozilo " + v.Naziv + " je uspjesno obrisana!",
                    PoslovnicaID  = null,
                    UserID        = r1.KlijentID,
                    RezervacijaID = null
                };
                Notifikacija notifikacijaZaUposlenika = new Notifikacija
                {
                    Vrijeme       = DateTime.Now,
                    Otvorena      = false,
                    Poruka        = User.Identity.Name + " je obrisao svoju rezervaciju za vozilo: " + v.Naziv + " !",
                    PoslovnicaID  = r1.PoslovnicaID,
                    UserID        = null,
                    RezervacijaID = null
                };
                List <Notifikacija> n = new List <Notifikacija>();
                n.Add(notifikacijaZaKlijenta);
                n.Add(notifikacijaZaUposlenika);
                db.AddRange(n);
                db.SaveChanges();

                return(RedirectPermanent("/Klijent/Rezervacija"));
            }

            Rezervacija r = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault();
            List <RezervisanaUsluga> ru     = db.RezervisanaUsluga.Where(x => x.RezervacijaID == r.RezervacijaID).ToList();
            OcjenaRezervacija        ocjena = db.OcjenaRezervacija.Where(x => x.RezervacijaID == r.RezervacijaID).FirstOrDefault();
            TrenutnaPoslovnica       tp     = db.TrenutnaPoslovnica.Where(x => x.VoziloID == r.VoziloID && x.PoslovnicaID == r.PoslovnicaID && x.VoziloRezervisano == true).FirstOrDefault();

            if (tp != null)
            {
                tp.VoziloRezervisano = false;
            }
            if (ocjena != null)
            {
                db.Remove(ocjena);
            }
            if (ru != null)
            {
                db.RemoveRange(ru);
            }
            if (r != null)
            {
                db.Remove(r);
            }
            Response.Cookies.Delete("Sesion");
            db.SaveChanges();

            return(RedirectPermanent("/Vozilo"));
        }
Example #29
0
 public InAppNotification()
 {
     _notifikacija = new Notifikacija();
 }
Example #30
0
        public ServiceResult <Nothing> AzurirajStatusZahtjeva(int zahtjevId, AzurirajStatusZahtjevaRequestModel model)
        {
            var trenutni = authService.TrenutniKorisnik();

            if (!ImaPravo("zahtjev_zahtjev_edit_status"))
            {
                return(Error("Nemate pravo izmjene statusa zahtjeva."));
            }


            var zahtjev = context.Zahtjevi.Include(z => z.ZahtjevStatus)
                          .Include(z => z.Projekat).ThenInclude(z => z.ProjekatKonfiguracija)
                          .SingleOrDefault(p => p.Id == zahtjevId && !p.IsDeleted);

            if (zahtjev == null)
            {
                return(NotFound());
            }
            var zahtjevStatus = context.ZahtjevStatusi.SingleOrDefault(z => z.Id == model.ZahtjevStatusId);

            var zadnjaIzmjenaStatusa = context.IzmjeneZahtjeva.Include(z => z.NoviZahtjevStatus).Where(z => z.ZahtjevId == zahtjevId).OrderByDescending(z => z.DatumKreiranja).FirstOrDefault();

            try
            {
                IzmjenaZahtjeva izmjenaZahtjeva = new IzmjenaZahtjeva();

                if (zahtjev.ProjekatId == zahtjevStatus.ProjekatId)
                {
                    int prijasnjaOznakaStatusa = zahtjev.ZahtjevStatus.Oznaka;
                    //zahtjev.ZahtjevStatusId = model.ZahtjevStatusId;
                    zahtjev.ZahtjevStatus = zahtjevStatus;

                    izmjenaZahtjeva.ZahtjevId              = zahtjevId;
                    izmjenaZahtjeva.NoviZahtjevStatusId    = model.ZahtjevStatusId;
                    izmjenaZahtjeva.DodijeljeniKorisnikIme = zahtjev.DodijeljeniKorisnikIme;
                    izmjenaZahtjeva.DatumKreiranja         = DateTime.Now;
                    izmjenaZahtjeva.DatumIzmjene           = DateTime.Now;
                    context.IzmjeneZahtjeva.Add(izmjenaZahtjeva);


                    string radniDani = zahtjev.Projekat.ProjekatKonfiguracija.RadniDani;
                    var    vrijemeOd = zahtjev.Projekat.ProjekatKonfiguracija.RadnoVrijemeOd;
                    var    vrijemeDo = zahtjev.Projekat.ProjekatKonfiguracija.RadnoVrijemeDo;



                    //racunanje vremena statusa ako je prijasnji status bio u progresu
                    if (zadnjaIzmjenaStatusa != null)
                    {
                        if (zadnjaIzmjenaStatusa.NoviZahtjevStatus.Oznaka == (int)OznakeStatusa.InProgress)
                        {
                            /*TimeSpan time = (TimeSpan)(izmjenaZahtjeva.DatumKreiranja - zadnjaIzmjenaStatusa.DatumKreiranja);
                             * if (zahtjev.PotrošenoVrijeme != null)
                             *  zahtjev.PotrošenoVrijeme += (long)time.TotalSeconds;
                             * else zahtjev.PotrošenoVrijeme = (long)time.TotalSeconds;*/

                            long totalSeconds = RacunajVrijemeTokomRadnogVremena((DateTime)zadnjaIzmjenaStatusa.DatumKreiranja, (DateTime)izmjenaZahtjeva.DatumKreiranja, radniDani, vrijemeOd, vrijemeDo);

                            if (zahtjev.PotrošenoVrijeme != null)
                            {
                                zahtjev.PotrošenoVrijeme += totalSeconds;
                            }
                            else
                            {
                                zahtjev.PotrošenoVrijeme = totalSeconds;
                            }
                        }
                    }
                    else
                    {
                        if (prijasnjaOznakaStatusa == (int)OznakeStatusa.InProgress)
                        {
                            long totalSeconds = RacunajVrijemeTokomRadnogVremena((DateTime)zahtjev.DatumKreiranja, (DateTime)izmjenaZahtjeva.DatumKreiranja, radniDani, vrijemeOd, vrijemeDo);

                            if (zahtjev.PotrošenoVrijeme != null)
                            {
                                zahtjev.PotrošenoVrijeme += totalSeconds;
                            }
                            else
                            {
                                zahtjev.PotrošenoVrijeme = totalSeconds;
                            }

                            /*TimeSpan time = (TimeSpan)(izmjenaZahtjeva.DatumKreiranja - zahtjev.DatumKreiranja);
                             * if (zahtjev.PotrošenoVrijeme != null)
                             *  zahtjev.PotrošenoVrijeme += (long)time.TotalSeconds;
                             * else zahtjev.PotrošenoVrijeme = (long)time.TotalSeconds;*/
                        }
                    }

                    var naziv = zahtjev.Naziv;


                    //kreiranje notifikacije o promjeni statusa zahtjeva
                    Notifikacija notifikacija = new Notifikacija();
                    notifikacija.Naslov = "Izmjena statusa zahtjeva";
                    if (zahtjev.Naziv.Length > 35)
                    {
                        naziv = zahtjev.Naziv.Substring(0, 32) + "...";
                    }
                    notifikacija.Poruka         = "Status zahtjeva pod nazivom: '" + naziv + "', promijenjen u status: " + zahtjev.ZahtjevStatus.Naziv;
                    notifikacija.ZahtjevId      = zahtjev.Id;
                    notifikacija.ProjekatId     = zahtjev.ProjekatId;
                    notifikacija.DatumKreiranja = DateTime.Now;
                    context.Notifikacije.Add(notifikacija);


                    //kreiranje notifikacije korisniku koji je kreirao zahtjev
                    KorisnikNotifikacija korisnikNotifikacija = new KorisnikNotifikacija();
                    korisnikNotifikacija.KorisnickoIme  = zahtjev.CreatedBy;
                    korisnikNotifikacija.NotifikacijaId = notifikacija.Id;
                    korisnikNotifikacija.Otvorena       = false;
                    korisnikNotifikacija.Notifikacija   = notifikacija;

                    context.KorisnikNotifikacije.Add(korisnikNotifikacija);

                    SaveChanges(context);
                }
            }
            catch (Exception e)
            {
                throw;
            }
            return(Ok());
        }