Exemple #1
0
        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;
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
        }
Exemple #7
0
        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();
                }
            }
        }