public ActionResult OnGet() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; } else { Message = "User"; return(RedirectToPage("/Index")); } //Message = "Welcome " + korisnik.ime; } else { return(RedirectToPage("/Login")); } novaKnjiga = new Knjiga(); return(Page()); }
private void Connect() { var countTry = 0; while (true) { try { String[] HOST1 = ConfigurationManager.AppSettings[ConfigStatic.KeyNoSqlHtml].Split(new char[] { ',' }); countTry++; _cluster = Cluster.Builder() .AddContactPoints(HOST1) .WithReconnectionPolicy(new ConstantReconnectionPolicy(10000L)) .WithRetryPolicy(DowngradingConsistencyRetryPolicy.Instance) .WithLoadBalancingPolicy(new DCAwareRoundRobinPolicy()) .Build(); Log.Info("Connected to cluster: " + _cluster.Metadata.ClusterName); foreach (var host in _cluster.Metadata.AllHosts()) { Log.Info("Data Center: " + host.Datacenter + ", " + "Host: " + host.Address + ", " + "Rack: " + host.Rack); } _session = _cluster.Connect(); _session.ChangeKeyspace("product_properties"); return; } catch (Exception ex) { Log.Error(string.Format("Try again {0} {1}", countTry, ex.Message)); Thread.Sleep(1000); } } }
public IActionResult OnPostRec() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr + "&success=admin").ToString())); } Recenzija recenzija = mapper.FirstOrDefault <Recenzija>("select * from \"Recenzija\" where \"knjigaID\"= ? and \"korisnikID\"= ?", idKnjiga, korisnik.korisnikID.ToString()); if (recenzija == null) { String query = $"insert into \"EBook\".\"Recenzija\" (\"recenzijaID\",\"korisnikID\", \"knjigaID\", komentar, ocena,nazivknjige,zanrknjige,opisknjige,email) values ('" + Cassandra.TimeUuid.NewId() + $"','{korisnik.korisnikID.ToString()}','{idKnjiga}','{komentar}',{ocena}, '{naziv}', '{zanr}', '{opis}', '{email}')"; session.Execute(query); return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr).ToString())); } else { return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr + "&success=already").ToString())); } } else { return(RedirectToPage("/Login")); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "CreateCat")] HttpRequest req) { cass.ISession session = _cluster.Connect(_config[Constants.KEYSPACE_NAME]); IMapper mapper = new Mapper(session); IActionResult returnValue = null; try { string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var input = JsonConvert.DeserializeObject <Cat>(requestBody); var cat = new Cat() { cat_id = Guid.NewGuid().ToString(), cat_name = input.cat_name, cat_type = input.cat_type, cat_age = input.cat_age }; mapper.Insert <Cat>(cat); returnValue = new OkObjectResult(cat); } catch (Exception ex) { _logger.LogError($"Could not insert new cat. Exception thrown: {ex.Message}"); returnValue = new StatusCodeResult(StatusCodes.Status500InternalServerError); } return(returnValue); }
public Session(Settings settings) { _session = Cluster.Builder() .AddContactPoint(settings.Hostname).WithPort(Int32.Parse(settings.Port)) .WithCredentials(settings.Username, settings.Password) .Build() .Connect(); }
public IActionResult OnPostObrisiKnjigu(string id, string zanr) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String query = $"delete from \"EBook\".\"Knjiga\" where \"knjigaID\"= '{id}' and \"zanr\"='{zanr}'"; session.Execute(query); return(Redirect("/Admin?success=dBook")); }
public IActionResult OnPostObrisiRec(string id, string kId) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String query = $"delete from \"EBook\".\"Recenzija\" where \"knjigaID\"= '{id}' and \"korisnikID\"='{kId}'"; session.Execute(query); return(Redirect("/Admin?success=dRec")); }
public IEnumerable <IoTMessage> QueryByDeviceId(string DeviceId) { string Query = "SELECT DeviceId, TimeStamp, Status, message FROM Messages WHERE DeviceId = '" + DeviceId + "'"; Cassandra.ISession session = cluster.Connect(_configuration["DatabaseSettings:KeySpace"]); IMapper mapper = new Mapper(session); return(mapper.Fetch <IoTMessage>(Query)); }
public IActionResult OnPostStatusRealizovano(string id, string kId) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String query = $"update \"EBook\".\"Rezervacija\" set status='Realizovano' where \"rezervacijaID\"= '{id}' and \"korisnikID\"='{kId}'"; session.Execute(query); return(Redirect("/Admin?success=sRealizovano")); }
public IActionResult OnPostObrisiRez(string id, string kId) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String query = $"delete from \"EBook\".\"Rezervacija\" where \"rezervacijaID\"= '{id}' and \"korisnikID\"='{kId}'"; session.Execute(query); return(RedirectToPage()); }
public IActionResult OnPostSmanji(string id, string zanr) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); Knjiga k = mapper.First <Knjiga>("select * from \"Knjiga\" where \"knjigaID\"= ? and zanr= ?", id, zanr); String query = $"update \"EBook\".\"Knjiga\" set kolicina = {k.kolicina-1} where \"knjigaID\"='{id}' and zanr='{zanr}'"; session.Execute(query); return(Redirect("/Admin?success=minus")); }
public PreporukaController() { try { var cluster = Cluster.Builder().AddContactPoint("127.0.0.1").Build(); session = cluster.Connect("OnlineMusicConcert"); } catch (Exception ex) { } }
private static void InitConnection() { // Create a cluster instance cluster = Cluster.Builder().AddContactPoint(Environment.GetEnvironmentVariable("CASSANDRA_ADDRESS")).Build(); //Create connections to the nodes using a keyspace session = cluster.Connect(Environment.GetEnvironmentVariable("KEYSPACE_NAME")); MappingConfiguration.Global.Define <AllMappings>(); mapper = new Mapper(session); }
public IActionResult OnPostSacuvaj() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (newPassword != null && !newPassword.Equals("")) { String query = $"update \"EBook\".korisnik set sifra = '{newPassword}' where email= '" + email + $"' and korisnikid='{korisnik.korisnikID}'"; session.Execute(query); } return(Redirect("./Login")); }
public void OnGet() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; } else { Message = "User"; } //Message = "Welcome " + korisnik.ime; } kategorije = mapper.Fetch <string>("SELECT DISTINCT zanr FROM \"Knjiga\""); //SELECT "knjigaID", AVG(ocena) FROM "Recenzija" GROUP BY "knjigaID" LIMIT 5; najpopularnijeKnjige = new List <Knjiga>(); RowSet knjigaOcena = session.Execute("SELECT \"knjigaID\", AVG(ocena) as avgocena, COUNT(*) as brojocena, nazivknjige, zanrknjige, opisknjige FROM \"Recenzija\" GROUP BY \"knjigaID\""); foreach (var item in knjigaOcena) { Knjiga k = new Knjiga(); k.knjigaID = item["knjigaID"] != null ? item["knjigaID"].ToString() : string.Empty; k.ocena = item["avgocena"] != null ? (float)item["avgocena"] : 0; k.brojocena = item["brojocena"] != null ? (long)item["brojocena"] : 0; k.naziv = item["nazivknjige"] != null ? item["nazivknjige"].ToString() : string.Empty; k.zanr = item["zanrknjige"] != null ? item["zanrknjige"].ToString() : string.Empty; k.opis = item["opisknjige"] != null ? item["opisknjige"].ToString() : string.Empty; najpopularnijeKnjige.Add(k); } najpopularnijeKnjige.Sort((a, b) => b.CompareTo(a)); brojKnjiga = mapper.Single <int>("SELECT COUNT(*) FROM \"Knjiga\""); brojKorisnika = mapper.Single <int>("SELECT COUNT(*) FROM korisnik"); brojRezervacija = mapper.Single <int>("SELECT COUNT(*) FROM \"Rezervacija\""); brojRecenzija = mapper.Single <int>("SELECT COUNT(*) FROM \"Recenzija\""); bibliotekar1 = mapper.FirstOrDefault <Korisnik>("SELECT * FROM korisnik where korisnikid = '7' and email = '*****@*****.**'"); bibliotekar2 = mapper.FirstOrDefault <Korisnik>("SELECT * FROM korisnik where korisnikid = '8' and email = '*****@*****.**'"); }
public void izracunajOcene() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); float brojac1, brojac2, brojac3, brojac4, brojac5, ocene; brojac1 = brojac2 = brojac3 = brojac4 = brojac5 = ocene = 0; recenzije = mapper.Fetch <Recenzija>("select * from \"Recenzija\" where \"knjigaID\"= ?", knjiga.knjigaID).ToList <Recenzija>(); foreach (Recenzija r in recenzije) { brojOcena++; ocene = ocene + r.ocena; if (r.ocena == 1) { brojac1++; } else if (r.ocena == 2) { brojac2++; } else if (r.ocena == 3) { brojac3++; } else if (r.ocena == 4) { brojac4++; } else { brojac5++; } } prosecnaOcena = (float)Math.Round(ocene / brojOcena, 2); prosek = new List <string>(); brOcenaPosebno = new List <float>(); prosek.Add(("width:" + (brojac1 / brojOcena) * 100 + "%").ToString()); prosek.Add(("width:" + (brojac2 / brojOcena) * 100 + "%").ToString()); prosek.Add(("width:" + (brojac3 / brojOcena) * 100 + "%").ToString()); prosek.Add(("width:" + (brojac4 / brojOcena) * 100 + "%").ToString()); prosek.Add(("width:" + (brojac5 / brojOcena) * 100 + "%").ToString()); brOcenaPosebno.Add(brojac1); brOcenaPosebno.Add(brojac2); brOcenaPosebno.Add(brojac3); brOcenaPosebno.Add(brojac4); brOcenaPosebno.Add(brojac5); }
public void OnGet() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; } else { Message = "User"; } //Message = "Welcome " + korisnik.ime; } }
public void OnGet(string success) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; } else { Message = "User"; } //Message = "Welcome " + korisnik.ime; rezervacije = mapper.Fetch <Rezervacija>("select * from \"EBook\".\"Rezervacija\" where \"korisnikID\"=?", korisnik.korisnikID).OrderBy(x => x.datum).ToList <Rezervacija>(); } }
public IActionResult OnPostSignUp() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); Korisnik k = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + newEmail + "'"); if (k != null) { ErrorMessage2 = "This email address is already used"; WhatToShow = 0; return(Page()); } Korisnik newUser = new Korisnik(Cassandra.TimeUuid.NewId().ToString(), newEmail, newPassword, newFirstName, newLastName, newPhoneNumber, newCity, newAddress, 0); mapper.Insert <Korisnik>(newUser); HttpContext.Session.SetString("email", newEmail); return(RedirectToPage("/Index")); }
public void OnGet(string success) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; rezervacije = mapper.Fetch <Rezervacija>("select * from \"Rezervacija\"").OrderBy(x => x.datum).ToList <Rezervacija>(); knjige = mapper.Fetch <Knjiga>("select * from \"Knjiga\"").OrderBy(x => x.zanr).ToList <Knjiga>(); recenzije = mapper.Fetch <Recenzija>("select * from \"Recenzija\"").ToList <Recenzija>(); } else { Message = "User"; } } }
public void OnGet(string id, string zanr) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; } else { Message = "User"; } //Message = "Welcome " + korisnik.ime; } knjiga = mapper.First <Knjiga>("select * from \"Knjiga\" where \"knjigaID\"= ? and zanr= ?", id, zanr); recenzije = mapper.Fetch <Recenzija>("select * from \"Recenzija\" where \"knjigaID\"= ?", knjiga.knjigaID).ToList <Recenzija>(); izracunajOcene(); slicneKnjige = mapper.Fetch <Knjiga>("select * from \"Knjiga\" where zanr=?", zanr).ToList <Knjiga>(); for (int j = 0; j < slicneKnjige.Count; j++) { if (slicneKnjige.ElementAt(j).knjigaID.Equals(knjiga.knjigaID)) { slicneKnjige.RemoveAt(j); } } if (slicneKnjige.Count > 4) { for (int i = slicneKnjige.Count - 1; i > 3; i--) { slicneKnjige.RemoveAt(i); } } }
public IActionResult OnPost() { Cassandra.ISession session = SessionManager.GetSession(); if (session == null) { return(RedirectToPage("/Error")); } string fileName = saveBase64AsImage(novaKnjiga.slika); novaKnjiga.slika = "images/" + "Library" + "/" + fileName; String noviId = Cassandra.TimeUuid.NewId().ToString(); String query = $"insert into \"Knjiga\" (zanr, \"knjigaID\", autor, brstrana, godina, kolicina, naziv, opis, pismo, slika, jezik) values ('{novaKnjiga.zanr}', '" + noviId + $"', '{novaKnjiga.autor}', '{novaKnjiga.brstrana}', '{novaKnjiga.godina}', {novaKnjiga.kolicina}, '{novaKnjiga.naziv}', '{novaKnjiga.opis}', '{novaKnjiga.pismo}','{novaKnjiga.slika}','{novaKnjiga.jezik}')"; session.Execute(query); return(RedirectToPage("/Book", new { id = noviId, zanr = novaKnjiga.zanr })); }
public IActionResult OnPostLogin() { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); Korisnik user = mapper.FirstOrDefault <Korisnik>("select * from \"korisnik\" where email = '" + email + "'"); if (user == null) { ErrorMessage = "Invalid email adress."; WhatToShow = 1; return(Page()); } else if (user.sifra != password) { ErrorMessage = "Invalid password."; WhatToShow = 1; return(Page()); } HttpContext.Session.SetString("email", email); return(RedirectToPage("/Index")); }
/*public void OnGet(string SearchBook) * { * Cassandra.ISession session = SessionManager.GetSession(); * IMapper mapper = new Mapper(session); * * String email = HttpContext.Session.GetString("email"); * if(!String.IsNullOrEmpty(email)) * { * Korisnik korisnik = mapper.FirstOrDefault<Korisnik>("select * from korisnik where email = '" + email + "'"); * if(korisnik.tip==1) * Message="Admin"; * else * Message="User"; * //Message = "Welcome " + korisnik.ime; * } * * Knjiga k = mapper.FirstOrDefault<Knjiga>("select * from \"Knjiga\" where naziv = '" + SearchBook + "'"); * * }*/ public JsonResult OnGetLoadMore(string selektovaniZanr) { byte[] pagingState; bool gotPagingState = HttpContext.Session.TryGetValue("pagingState", out pagingState); if (!gotPagingState) { return(new JsonResult("nemaVise")); } Cassandra.ISession session = SessionManager.GetSession(); RowSet knjigeRaw; if (selektovaniZanr.CompareTo("All") == 0) { var ps = session.Prepare("SELECT * from \"Knjiga\" ;"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(7).SetPagingState(pagingState); knjigeRaw = session.Execute(statement); pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } else { HttpContext.Session.Remove("pagingState"); } } else { var ps = session.Prepare("SELECT * from \"Knjiga\" where zanr='" + selektovaniZanr + "';"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(5).SetPagingState(pagingState); knjigeRaw = session.Execute(statement); pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } else { HttpContext.Session.Remove("pagingState"); } } List <Knjiga> josKnjiga = new List <Knjiga>(); foreach (var knjigaRaw in knjigeRaw) { Knjiga knjiga = new Knjiga(); knjiga.autor = knjigaRaw["autor"] != null ? knjigaRaw["autor"].ToString() : string.Empty; knjiga.brstrana = knjigaRaw["brstrana"] != null ? knjigaRaw["brstrana"].ToString() : string.Empty; knjiga.godina = knjigaRaw["godina"] != null ? knjigaRaw["godina"].ToString() : string.Empty; knjiga.knjigaID = knjigaRaw["knjigaID"].ToString(); knjiga.kolicina = knjigaRaw["kolicina"] != null?Int32.Parse(knjigaRaw["kolicina"].ToString()) : 0; knjiga.naziv = knjigaRaw["naziv"] != null ? knjigaRaw["naziv"].ToString() : string.Empty; knjiga.opis = knjigaRaw["opis"] != null ? knjigaRaw["opis"].ToString() : string.Empty; knjiga.pismo = knjigaRaw["pismo"] != null ? knjigaRaw["pismo"].ToString() : string.Empty; knjiga.slika = knjigaRaw["slika"] != null?LoadImage(knjigaRaw["slika"].ToString()) : string.Empty; knjiga.zanr = knjigaRaw["zanr"] != null ? knjigaRaw["zanr"].ToString() : string.Empty; knjiga.jezik = knjigaRaw["jezik"] != null ? knjigaRaw["jezik"].ToString() : string.Empty; josKnjiga.Add(knjiga); } return(new JsonResult(josKnjiga)); }
public void OnGet(string zanr, string SearchBook) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; } else { Message = "User"; } //Message = "Welcome " + korisnik.ime; } if (!String.IsNullOrEmpty(SearchBook)) { knjigaSearch = mapper.FirstOrDefault <Knjiga>("select * from \"Knjiga\" where naziv like '" + SearchBook + "%'"); } if (String.IsNullOrEmpty(SearchBook) || knjigaSearch == null) { zanrFilter = zanr; HttpContext.Session.Remove("pagingState"); foreach (var zanrRaw in session.Execute("SELECT DISTINCT zanr FROM \"Knjiga\";")) { zanrovi.Add(zanrRaw["zanr"].ToString()); } RowSet knjigeRaw; if (String.IsNullOrEmpty(zanr) | !zanrovi.Contains(zanr)) {//all var ps = session.Prepare("SELECT * from \"Knjiga\" ;"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(10); knjigeRaw = session.Execute(statement); var pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } } else { var ps = session.Prepare("SELECT * from \"Knjiga\" where zanr='" + zanr + "';"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(5); knjigeRaw = session.Execute(statement); var pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } } foreach (var knjigaRaw in knjigeRaw) { Knjiga knjiga = new Knjiga(); knjiga.autor = knjigaRaw["autor"] != null ? knjigaRaw["autor"].ToString() : string.Empty; knjiga.brstrana = knjigaRaw["brstrana"] != null ? knjigaRaw["brstrana"].ToString() : string.Empty; knjiga.godina = knjigaRaw["godina"] != null ? knjigaRaw["godina"].ToString() : string.Empty; knjiga.knjigaID = knjigaRaw["knjigaID"].ToString(); knjiga.kolicina = knjigaRaw["kolicina"] != null?Int32.Parse(knjigaRaw["kolicina"].ToString()) : 0; knjiga.naziv = knjigaRaw["naziv"] != null ? knjigaRaw["naziv"].ToString() : string.Empty; knjiga.opis = knjigaRaw["opis"] != null ? knjigaRaw["opis"].ToString() : string.Empty; knjiga.pismo = knjigaRaw["pismo"] != null ? knjigaRaw["pismo"].ToString() : string.Empty; knjiga.slika = knjigaRaw["slika"] != null ? knjigaRaw["slika"].ToString() : string.Empty; knjiga.zanr = knjigaRaw["zanr"] != null ? knjigaRaw["zanr"].ToString() : string.Empty; knjiga.jezik = knjigaRaw["jezik"] != null ? knjigaRaw["jezik"].ToString() : string.Empty; sveKnjige.Add(knjiga); } } else { sveKnjige.Add(knjigaSearch); } }
public AutoController(Cassandra.ISession session) { _session = session; }
public PollutionController() { _cluster = Cluster.Builder().AddContactPoint("127.0.0.1").Build(); _session = _cluster.Connect("WaterPollution"); _mapper = new Mapper(_session); }
public CassandraContext() { var cluster = Cluster.Builder().AddContactPoint("127.0.0.1").Build(); _session = cluster.Connect("amico"); }
public IActionResult OnPostRez() { int brojac = 0; Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); Knjiga k = mapper.First <Knjiga>("select * from \"Knjiga\" where \"knjigaID\"= ? and zanr= ?", idKnjiga, zanr); //mogucnost da admin moze da rezervise neku knjigu za nekog korisnika ukoliko unese korisnikovu mail adresu if (korisnik.tip == 1) { Korisnik kor = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + emailKorisnika + "'"); if (kor != null) { String queryUpdate = $"update \"EBook\".\"Knjiga\" set kolicina = {k.kolicina-1} where \"knjigaID\"='{idKnjiga}' and zanr='{zanr}'"; session.Execute(queryUpdate); String query = $"insert into \"EBook\".\"Rezervacija\" (\"rezervacijaID\",\"korisnikID\", \"knjigaID\", datum, status, nazivknjige,zanrknjige,email) values ('" + Cassandra.TimeUuid.NewId() + $"','{kor.korisnikID.ToString()}','{idKnjiga}','{(DateTime.Now).ToString("yyyy-MM-dd'T'HH:mm:ssZ")}','Aktivno', '{k.naziv}', '{k.zanr}', '{emailKorisnika}')"; session.Execute(query); return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr + "&success=AdminTrue").ToString())); } return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr + "&success=AdminFalse").ToString())); } //da izbroji korisnikove rezervacije IList <Rezervacija> rezervacije = new List <Rezervacija>(); rezervacije = mapper.Fetch <Rezervacija>("select * from \"Rezervacija\" where \"korisnikID\"=?", korisnik.korisnikID).ToList <Rezervacija>(); for (int i = 0; i < rezervacije.Count; i++) { if (rezervacije.ElementAt(i).status.Equals("Na cekanju")) { brojac++; } } //ako postoji bar jedna knjiga u bazi sa tim imenom i zanrom if (k.kolicina > 0) { //ako korisnik ima vise od 5 aktivnih rezervacija da mu onemoguci dok ne preuzme odredjene rezervacije if (brojac >= 5) { return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr + "&success=false").ToString())); } else { String queryUpdate = $"update \"EBook\".\"Knjiga\" set kolicina = {k.kolicina-1} where \"knjigaID\"='{idKnjiga}' and zanr='{zanr}'"; session.Execute(queryUpdate); String query = $"insert into \"EBook\".\"Rezervacija\" (\"rezervacijaID\",\"korisnikID\", \"knjigaID\", datum, status, nazivknjige,zanrknjige,email) values ('" + Cassandra.TimeUuid.NewId() + $"','{korisnik.korisnikID.ToString()}','{idKnjiga}','{(DateTime.Now).ToString("yyyy-MM-dd'T'HH:mm:ssZ")}','Na cekanju', '{k.naziv}', '{k.zanr}', '{email}')"; session.Execute(query); return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr + "&success=true").ToString())); } } else { return(Redirect(("/Book?id=" + idKnjiga + "&zanr=" + zanr + "&success=out").ToString())); } } else { return(RedirectToPage("/Login")); } }