private void GenerisiQRCode(Database.Karta karta, int eventId, int korisnikId) { Database.Korisnik korisnik = _ctx.Korisnik.Find(korisnikId); Database.Event Event = _ctx.Event.Find(eventId); if (korisnik == null || Event == null || karta == null) { return; } QRCodeGenerator qr = new QRCodeGenerator(); string text = Event.Id.ToString() + " - " + Event.Naziv + " - Broj karte: " + karta.Id + " - KorsnikId: " + korisnik.Id; QRCodeData data = qr.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q); QRCode qRCode = new QRCode(data); Bitmap qrCodeImage = qRCode.GetGraphic(20); MemoryStream ms = new MemoryStream(); qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] imageBytes = ms.ToArray(); karta.QrCode = imageBytes; }
public bool ProvjeriKorisnika(string username) { bool Provjera = false; Database.Korisnik korisnik = null; korisnik = _context.Korisnik.Where(x => x.KorisnickoIme == username).FirstOrDefault(); if (korisnik != null) { Provjera = true; } return(Provjera); }
public void PosaljiMail(int korisnikId, float cijena, int eventId) { Database.Korisnik korisnik = _ctx.Korisnik.Find(korisnikId); Database.Event Event = _ctx.Event.Find(eventId); if (korisnik == null || Event == null) { return; } var message = new MimeMessage(); message.From.Add(new MailboxAddress("Event Atteder", "*****@*****.**")); message.To.Add(new MailboxAddress(korisnik.Ime, korisnik.Email)); message.Subject = "Uspješna kupovina karte"; message.Body = new TextPart("plain") { Text = "Poštovani/a " + korisnik.Ime + " " + korisnik.Prezime + " uspješno ste obavili kupovinu " + "karte/karata za event " + Event.Naziv + ", " + "u iznosu od " + cijena + " KM. Hvala na povjerenju! " }; using (var client = new SmtpClient()) { client.Connect("smtp.gmail.com", 587, false); client.Authenticate("*****@*****.**", ""); client.Send(message); client.Disconnect(true); } }
public static void DopunaSlike(MojContext _ctx) { List <Event> eventi = _ctx.Event.Include(e => e.Kategorija).ToList(); if (eventi != null && eventi.Count > 0) { foreach (var e in eventi) { if (e.Slika == null) { if (e.Kategorija.Naziv == "Muzika") { e.Slika = Helper.ImageHelper.ReadFile("./Images/koncert.jpg"); e.SlikaThumb = Helper.ImageHelper.ReadFile("./Images/koncert.jpg"); /* var niz = e.VrijemeOdrzavanja.Split(":"); * int sati = int.Parse(niz[0]); * int minute = int.Parse(niz[1]); * * DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, sati, minute, 0); * e.DatumOdrzavanja = dt;*/ DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 20, 00, 0); e.DatumOdrzavanja = dt; e.VrijemeOdrzavanja = "20:00"; } else if (e.Kategorija.Naziv == "Kultura") { e.Slika = Helper.ImageHelper.ReadFile("./Images/opera.jpg"); e.SlikaThumb = Helper.ImageHelper.ReadFile("./Images/opera.jpg"); /* var niz = e.VrijemeOdrzavanja.Split(":"); * int sati = int.Parse(niz[0]); * int minute = int.Parse(niz[1]); * * DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, sati, minute, 0); * e.DatumOdrzavanja = dt;*/ DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 20, 00, 0); e.DatumOdrzavanja = dt; e.VrijemeOdrzavanja = "20:00"; } else { e.Slika = Helper.ImageHelper.ReadFile("./Images/fudbal.jpg"); e.SlikaThumb = Helper.ImageHelper.ReadFile("./Images/fudbal.jpg"); DateTime datum = e.DatumOdrzavanja.AddDays(30); DateTime dt = new DateTime(datum.Year, datum.Month, datum.Day, 20, 00, 0); e.DatumOdrzavanja = dt; e.VrijemeOdrzavanja = "20:00"; } _ctx.SaveChanges(); } } } var karte = _ctx.Karta.Include(k => k.KupovinaTip).Include(k => k.KupovinaTip.Kupovina).ToList(); if (karte != null && karte.Count > 0) { foreach (var k in karte) { Database.Korisnik korisnik = _ctx.Korisnik.Find(k.KupovinaTip.Kupovina.KorisnikId); Database.Event Event = _ctx.Event.Find(k.KupovinaTip.Kupovina.EventId); if (korisnik == null || Event == null) { return; } QRCodeGenerator qr = new QRCodeGenerator(); string text = Event.Id.ToString() + " - " + Event.Naziv + " - Broj karte: " + k.Id + " - KorsnikId: " + korisnik.Id; QRCodeData data = qr.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q); QRCode qRCode = new QRCode(data); Bitmap qrCodeImage = qRCode.GetGraphic(20); MemoryStream ms = new MemoryStream(); qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] imageBytes = ms.ToArray(); k.QrCode = imageBytes; _ctx.SaveChanges(); } } }
private void DatabaseIncijalizacija() { if (_ctx.Korisnik.Count() > 0 || _ctx.Administrator.Count() > 0) { return; } string salt1 = Helper.HashHelper.GenerateSalt(); string salt2 = Helper.HashHelper.GenerateSalt(); string salt3 = Helper.HashHelper.GenerateSalt(); Drzava drzava = new Drzava { Naziv = "BiH" }; _ctx.Drzava.Add(drzava); _ctx.SaveChanges(); Grad grad = new Grad { Naziv = "Sarajevo", Drzava = drzava }; _ctx.Grad.Add(grad); _ctx.SaveChanges(); var korisnik1 = new Database.Korisnik { Ime = "Korisnik1", Adresa = "Adresa1", Email = "*****@*****.**", Grad = grad, IsAktivan = true, PasswordSalt = salt1, PasswordHash = Helper.HashHelper.GenerateHash(salt1, "test"), PostanskiBroj = "71000", Prezime = "Prezime1", Telefon = "061000111", Uloga = "Korisnik", Username = "******" }; _ctx.Korisnik.Add(korisnik1); _ctx.SaveChanges(); var korisnik2 = new Database.Korisnik { Ime = "Korisnik2", Adresa = "Adresa2", Email = "*****@*****.**", Grad = grad, IsAktivan = true, PasswordSalt = salt2, PasswordHash = Helper.HashHelper.GenerateHash(salt2, "password2"), PostanskiBroj = "71000", Prezime = "Prezime2", Telefon = "061000222", Uloga = "Korisnik", Username = "******" }; _ctx.Korisnik.Add(korisnik2); _ctx.SaveChanges(); Administrator administrator = new Administrator { Email = "*****@*****.**", Grad = grad, Ime = "Admin1", Prezime = "Prezime1", PasswordSalt = salt3, PasswordHash = Helper.HashHelper.GenerateHash(salt3, "test"), Username = "******", Telefon = "061000333", Uloga = "Administrator" }; _ctx.Administrator.Add(administrator); var org1 = new Organizator { Naziv = "Org1", Email = "*****@*****.**", Grad = grad, Telefon = "062222222", Uloga = "..." }; var org2 = new Organizator { Naziv = "Org2", Email = "*****@*****.**", Grad = grad, Telefon = "062555555", Uloga = "..." }; var org3 = new Organizator { Naziv = "Org3", Email = "*****@*****.**", Grad = grad, Telefon = "062333333", Uloga = "..." }; _ctx.Organizator.Add(org1); _ctx.Organizator.Add(org2); _ctx.Organizator.Add(org3); _ctx.SaveChanges(); var tip1 = new TipProstoraOdrzavanja { Naziv = "Sala" }; var tip2 = new TipProstoraOdrzavanja { Naziv = "Dvorana" }; var tip3 = new TipProstoraOdrzavanja { Naziv = "Stadion" }; _ctx.TipProstoraOdrzavanja.Add(tip1); _ctx.TipProstoraOdrzavanja.Add(tip2); _ctx.TipProstoraOdrzavanja.Add(tip3); _ctx.SaveChanges(); var prostor1 = new ProstorOdrzavanja { Adresa = "Obala Kulina bana 9, Sarajevo", Grad = grad, Naziv = "Narodno pozorište Sarajevo", TipProstoraOdrzavanja = tip1 }; var prostor2 = new ProstorOdrzavanja { Adresa = "Alipašina bb, Sarajevo 71000", Grad = grad, Naziv = "Zetra", TipProstoraOdrzavanja = tip2 }; var prostor3 = new ProstorOdrzavanja { Adresa = "Zvornička 27 Sarajevo 71000", Grad = grad, Naziv = "Stadion Grbavica", TipProstoraOdrzavanja = tip3 }; _ctx.ProstorOdrzavanja.Add(prostor3); _ctx.ProstorOdrzavanja.Add(prostor2); _ctx.ProstorOdrzavanja.Add(prostor1); _ctx.SaveChanges(); var kategorija1 = new Kategorija { Naziv = "Muzika" }; var kategorija2 = new Kategorija { Naziv = "Kultura" }; var kategorija3 = new Kategorija { Naziv = "Sport" }; _ctx.Kategorija.Add(kategorija2); _ctx.Kategorija.Add(kategorija3); _ctx.Kategorija.Add(kategorija1); _ctx.SaveChanges(); var event1 = new Database.Event { DatumOdrzavanja = DateTime.Now.AddDays(30), IsOdobren = true, IsOtkazan = false, Kategorija = kategorija2, Naziv = "Event1", Opis = "...", Organizator = org1, ProstorOdrzavanja = prostor1, VrijemeOdrzavanja = "20:00", Administrator = administrator, Slika = Helper.ImageHelper.ReadFile("Images/opera.jpg"), SlikaThumb = Helper.ImageHelper.ReadFile("Images/opera.jpg"), }; _ctx.Event.Add(event1); _ctx.SaveChanges(); var event2 = new Database.Event { DatumOdrzavanja = DateTime.Now.AddDays(30), IsOdobren = true, IsOtkazan = false, Kategorija = kategorija1, Naziv = "Event2", Opis = "...", Organizator = org2, ProstorOdrzavanja = prostor2, VrijemeOdrzavanja = "20:00", Administrator = administrator, Slika = Helper.ImageHelper.ReadFile("Images/koncert.jpg"), SlikaThumb = Helper.ImageHelper.ReadFile("Images/koncert.jpg") }; _ctx.Event.Add(event2); _ctx.SaveChanges(); var event3 = new Database.Event { DatumOdrzavanja = DateTime.Now.AddDays(30), IsOdobren = true, IsOtkazan = false, Kategorija = kategorija3, Naziv = "Event3", Opis = "...", Organizator = org3, ProstorOdrzavanja = prostor3, VrijemeOdrzavanja = "20:00", Administrator = administrator, Slika = Helper.ImageHelper.ReadFile("Images/fudbal.jpg"), SlikaThumb = Helper.ImageHelper.ReadFile("Images/fudbal.jpg") }; _ctx.Event.Add(event3); _ctx.SaveChanges(); var tipKarte1 = new TipKarte { Naziv = "VIP" }; var tipKarte2 = new TipKarte { Naziv = "Parter" }; var tipKarte3 = new TipKarte { Naziv = "Tribina" }; var tipKarte4 = new TipKarte { Naziv = "Obicna" }; _ctx.TipKarte.Add(tipKarte4); _ctx.TipKarte.Add(tipKarte3); _ctx.TipKarte.Add(tipKarte2); _ctx.TipKarte.Add(tipKarte1); _ctx.SaveChanges(); var prodajaTip1 = new ProdajaTip { Event = event1, TipKarte = tipKarte1, BrojProdatihKarataTip = 0, CijenaTip = 15, PostojeSjedista = true, UkupnoKarataTip = 100 }; var prodajaTip2 = new ProdajaTip { Event = event2, TipKarte = tipKarte2, BrojProdatihKarataTip = 0, CijenaTip = 10, PostojeSjedista = false, UkupnoKarataTip = 1000 }; _ctx.ProdajaTip.Add(prodajaTip1); _ctx.ProdajaTip.Add(prodajaTip2); _ctx.SaveChanges(); }
public List <Models.Destinacija> GetPreporuka(int id) { //ideja je bila da se kreira cbf filter koji ce korisniku preporucivati najcesce rezervisane destinacije u odnosu na historiju pretrazivanja //posto svaka destinacija ima vise termina korisnik ce dobiti na pregled destinacije koje zadoolje kriteri //a klikom na destinaciju otvoriti ce mu se prozor koji prikazuje aktivne termine List <Models.Destinacija> listapreporucenihdestinacija = new List <Models.Destinacija>(); List <Models.Destinacija> rezultat = new List <Models.Destinacija>(); Database.Korisnik korisnik = _context.Korisnik.Find(id); if (korisnik != null) { var korisnikoveKarte = _context.Karta.Where(l => l.KorisnikId == korisnik.Id).ToList(); Dictionary <int, int> Angazman = new Dictionary <int, int>(); //var listaOdredista = new List<int>(); //var listaTermina = new List<int>(); //var listaVremenaPolaska = new List<DateTime>(); //var listaKorisnikovihDestinacija = new List<int>(); var sveDestinacije = _context.Destinacija.ToList(); //dictionary sadrz parove ida destinacije i broja rezervacija iste Dictionary <int, int> destinacijaibrojac = new Dictionary <int, int>(); foreach (var i in sveDestinacije) { var brojac1 = 0; foreach (var item in korisnikoveKarte) { var termin = _context.Termin.Include(x => x.Destinacija).Where(l => l.Id == item.TerminId).FirstOrDefault(); var terminmodel = _mapper.Map <Models.Termin>(termin); var destinacija = _context.Destinacija.Where(x => x.Id == termin.Destinacija.Id).FirstOrDefault(); //listaKorisnikovihDestinacija.Add(destinacija.Id); if (i.Id == destinacija.Id) { brojac1++; } //listaOdredista.Add(int.Parse(destinacija.GradId.ToString())); //listaVremenaPolaska.Add(karta.DatumPolaska); } //za svaku kartu se pronasao termin a za taj termin birana destinacija //ako u dictionariju ne postoji id destinacije ona se dodaje zajedno sa brojacem kao par if (!destinacijaibrojac.ContainsKey(i.Id)) { destinacijaibrojac.Add(i.Id, brojac1); } } foreach (var k in destinacijaibrojac.ToList()) { //ako je rezervisana vise od dva puta , destinacija se salje u listu preporucenih destinacija //koje su personalizirane sa svakog korisnika if (k.Value >= PreporucenBroj) { var destinacija = _context.Destinacija.Where(x => x.Id == k.Key).FirstOrDefault(); var d = _mapper.Map <Models.Destinacija>(destinacija); rezultat.Add(d); } } return(rezultat); } return(rezultat); }
public static void DopunaSlike(MojContext _ctx) { List <Event> eventi = _ctx.Event.Include(e => e.Kategorija).ToList(); if (eventi != null && eventi.Count > 0) { foreach (var e in eventi) { if (e.Slika == null) { if (e.Kategorija.Naziv == "Muzika") { e.Slika = Helper.ImageHelper.ReadFile("./Images/koncert.jpg"); e.SlikaThumb = Helper.ImageHelper.ReadFile("./Images/koncert.jpg"); } else if (e.Kategorija.Naziv == "Kultura") { e.Slika = Helper.ImageHelper.ReadFile("./Images/opera.jpg"); e.SlikaThumb = Helper.ImageHelper.ReadFile("./Images/opera.jpg"); } else { e.Slika = Helper.ImageHelper.ReadFile("./Images/fudbal.jpg"); e.SlikaThumb = Helper.ImageHelper.ReadFile("./Images/fudbal.jpg"); } _ctx.SaveChanges(); } } } var karte = _ctx.Karta.Include(k => k.KupovinaTip).Include(k => k.KupovinaTip.Kupovina).ToList(); if (karte != null && karte.Count > 0) { foreach (var k in karte) { Database.Korisnik korisnik = _ctx.Korisnik.Find(k.KupovinaTip.Kupovina.KorisnikId); Database.Event Event = _ctx.Event.Find(k.KupovinaTip.Kupovina.EventId); if (korisnik == null || Event == null) { return; } QRCodeGenerator qr = new QRCodeGenerator(); string text = Event.Id.ToString() + " - " + Event.Naziv + " - Broj karte: " + k.Id + " - KorsnikId: " + korisnik.Id; QRCodeData data = qr.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q); QRCode qRCode = new QRCode(data); Bitmap qrCodeImage = qRCode.GetGraphic(20); MemoryStream ms = new MemoryStream(); qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] imageBytes = ms.ToArray(); k.QrCode = imageBytes; _ctx.SaveChanges(); } } }