Example #1
0
        /// <summary>
        /// Dohvaća prosječnu ocjenu ugostiteljskog objekta, odnosno prosječnu ocjenu koju su korisnici ostavili na recenzijama njihovih narudžbi.
        /// </summary>
        public double DohvatiProsjecnuOcjenuObjekta(int idObjekta)
        {
            double prosjecnaOcjena = 0;

            using (var db = new eat32Entities())
            {
                var sveNarudzbe  = db.dbNarudžba.Where(r => r.ugostiteljski_obrt_id == idObjekta);
                int ukupnaOcjena = 0;
                int brojac       = 0;

                foreach (var item in sveNarudzbe)
                {
                    var recenzijaNarudzbe = db.dbRecenzija.FirstOrDefault(r => r.narudzba_id == item.id_narudzbe);

                    if (recenzijaNarudzbe != null)
                    {
                        ukupnaOcjena += (int)recenzijaNarudzbe.ocjena;
                        brojac       += 1;
                    }
                }

                if (brojac != 0)
                {
                    prosjecnaOcjena = ukupnaOcjena / brojac;
                }
            }

            return(prosjecnaOcjena);
        }
Example #2
0
        /// <summary>
        /// Dohvaća sve recenzije ugostiteljskog objekta u listu
        /// </summary>
        public BindingList <dbRecenzija> DohvatiSveRecenzije(int idObjekta)
        {
            int objektId = idObjekta;
            BindingList <dbRecenzija> sveRecenzije = new BindingList <dbRecenzija>();

            BindingList <dbNarudžba> listaNarudzba = DohvatiNarudzbeObjekta(objektId);

            if (listaNarudzba != null)
            {
                using (var db = new eat32Entities())
                {
                    foreach (var item in listaNarudzba)
                    {
                        dbRecenzija novaRecenzija = db.dbRecenzija.FirstOrDefault(r => r.narudzba_id == item.id_narudzbe);

                        if (novaRecenzija != null)
                        {
                            sveRecenzije.Add(novaRecenzija);
                        }
                    }
                }
            }

            return(sveRecenzije);
        }
Example #3
0
        /// <summary>
        /// Upisuje ugostiteljski objekt u bazu podataka zajedno sa podacima o korisnickom racunu i podacima o objektu.
        /// </summary>
        public void UpisiUgostiteljskiObjekt(UgostiteljskiObjekt objekt)
        {
            using (var db = new eat32Entities())
            {
                dbKorisnickiRacun noviRacun = new dbKorisnickiRacun
                {
                    korisnicko_ime = objekt.KorisnickoIme,
                    lozinka        = objekt.Lozinka,
                    email          = objekt.Email,
                    adresa         = objekt.Adresa,
                    broj_telefona  = objekt.BrojTelefona,
                };

                db.dbKorisnickiRacun.Add(noviRacun);
                db.SaveChanges();

                int idRacuna = DohvatiIDRacuna(objekt.KorisnickoIme);

                dbUgostiteljskiObjekt noviObjekt = new dbUgostiteljskiObjekt
                {
                    id_ugostiteljskog_obrta = idRacuna,
                    naziv = objekt.Naziv,
                    radno_vrijeme_pocetak = objekt.RadnoVrijemePocetak,
                    radno_vrijeme_kraj    = objekt.RadnoVrijemeKraj
                };

                db.dbUgostiteljskiObjekt.Add(noviObjekt);
                db.SaveChanges();
            }
        }
Example #4
0
        /// <summary>
        /// Funkcija prvo provjerava da li je korisnik već pretplaćen na ugostiteljski objekt, i ukoliko nije upisuje pretplatu u bazu i vraća false, a u suprotnom samo vraća true.
        /// </summary>
        public bool PretplatiKorisnika(int idKorisnika, int idObjekta)
        {
            using (var db = new eat32Entities())
            {
                var pretraziPretplatu = db.dbPretplata.FirstOrDefault(r => r.korisnik_id == idKorisnika && r.ugostiteljski_obrt_id == idObjekta);

                if (pretraziPretplatu == null)
                {
                    dbPretplata novaPretplata = new dbPretplata
                    {
                        korisnik_id           = idKorisnika,
                        ugostiteljski_obrt_id = idObjekta
                    };

                    db.dbPretplata.Add(novaPretplata);
                    db.SaveChanges();

                    return(false);
                }

                else
                {
                    return(true);
                }
            }
        }
Example #5
0
        /// <summary>
        /// Upisuje obicnog korisnika u bazu podataka zajedno sa podacima o korisnickom racunu i podacima o korisniku.
        /// </summary>
        public void UpisiObicnogKorisnika(ObicniKorisnik korisnik)
        {
            using (var db = new eat32Entities())
            {
                dbKorisnickiRacun noviRacun = new dbKorisnickiRacun
                {
                    korisnicko_ime = korisnik.KorisnickoIme,
                    lozinka        = korisnik.Lozinka,
                    email          = korisnik.Email,
                    adresa         = korisnik.Adresa,
                    broj_telefona  = korisnik.BrojTelefona,
                };

                db.dbKorisnickiRacun.Add(noviRacun);
                db.SaveChanges();

                int idRacuna = DohvatiIDRacuna(korisnik.KorisnickoIme);

                dbObicniKorisnik noviKorisnik = new dbObicniKorisnik
                {
                    id_obicnog_korisnika = idRacuna,
                    ime     = korisnik.Ime,
                    prezime = korisnik.Prezime
                };

                db.dbObicniKorisnik.Add(noviKorisnik);
                db.SaveChanges();
            }
        }
Example #6
0
        /// <summary>
        /// Briše odabranu poruku iz korisnikove poste, odnosno iz baze podataka.
        /// </summary>
        public void IzbrisiPoruku(int idPoruke)
        {
            using (var db = new eat32Entities())
            {
                dbPoruka poruka = db.dbPoruka.FirstOrDefault(r => r.id_poruke == idPoruke);

                db.dbPoruka.Attach(poruka);
                db.dbPoruka.Remove(poruka);
                db.SaveChanges();
            }
        }
Example #7
0
        /// <summary>
        /// Dohvaća sve ugostiteljske objekte u obliku kolekcije tipa BindingList.
        /// </summary>
        public BindingList <dbUgostiteljskiObjekt> DohvatiSveUgostiteljskeObjekte()
        {
            BindingList <dbUgostiteljskiObjekt> sviObjekti = null;

            using (var db = new eat32Entities())
            {
                sviObjekti = new BindingList <dbUgostiteljskiObjekt>(db.dbUgostiteljskiObjekt.ToList());
            }

            return(sviObjekti);
        }
Example #8
0
        /// <summary>
        /// Dohvaca artikl iz baze podataka.
        /// </summary>
        public dbArtikl DohvatiArtikl(int idArtikla)
        {
            dbArtikl trazeniArtikl = null;

            using (var db = new eat32Entities())
            {
                trazeniArtikl = db.dbArtikl.FirstOrDefault(a => a.id_artikla == idArtikla);
            }

            return(trazeniArtikl);
        }
Example #9
0
        /// <summary>
        /// Dohvaca sve narudžbe objekta sa unesenim ID-om u obliku kolekcije tipa BindingList.
        /// </summary>
        public BindingList <dbNarudžba> DohvatiNarudzbeObjekta(int idRacuna)
        {
            BindingList <dbNarudžba> listaNarudzbi = null;

            using (var db = new eat32Entities())
            {
                var narudzbaUpit = db.dbNarudžba.Where(r => r.ugostiteljski_obrt_id == idRacuna).ToList();

                listaNarudzbi = new BindingList <dbNarudžba>(narudzbaUpit);
            }

            return(listaNarudzbi);
        }
Example #10
0
        /// <summary>
        /// Dohvaca sve poslane poruke trenutnog korisnika u obliku kolekcije poruka tipa BindingList. Ukoliko korisnik nema poslanih poruka, funkcija vraća null.
        /// </summary>
        public BindingList <dbPoruka> DohvatiMojePoslanePoruke(int idRacuna)
        {
            BindingList <dbPoruka> mojePoslanePoruke = null;

            using (var db = new eat32Entities())
            {
                var porukeUpit = db.dbPoruka.Where(r => r.posiljatelj_id == idRacuna).ToList();

                mojePoslanePoruke = new BindingList <dbPoruka>(porukeUpit);
            }

            return(mojePoslanePoruke);
        }
Example #11
0
        /// <summary>
        /// Dohvaća sve ponude ugostiteljskog objekta (ponude hrane, ponude pića i sl.) u obliku kolekcije tipa BindingList. Ako ugostiteljski objekt nema ponuda, funkcija vraća null vrijednost.
        /// </summary>
        public BindingList <dbPonuda> DohvatiPonudeObjekta(int idObjekta)
        {
            BindingList <dbPonuda> listaPonuda = null;

            using (var db = new eat32Entities())
            {
                var upitPonuda = db.dbPonuda.Where(p => p.ugostiteljski_obrt_id == idObjekta).ToList();

                listaPonuda = new BindingList <dbPonuda>(upitPonuda);
            }

            return(listaPonuda);
        }
Example #12
0
        /// <summary>
        /// Dohvaća sve artikle sa ponude preko njenog ID-a u obliku kolekcije tipa BindingList. Ukoliko nema artikala u ponudi, funkcija vraća null vrijednost.
        /// </summary>
        public BindingList <dbArtikl> DohvatiArtiklePonude(int idPonude)
        {
            BindingList <dbArtikl> listaArtikala = null;

            using (var db = new eat32Entities())
            {
                var upitArtikli = db.dbArtikl.Where(a => a.ponuda_id == idPonude).ToList();

                listaArtikala = new BindingList <dbArtikl>(upitArtikli);
            }

            return(listaArtikala);
        }
Example #13
0
        /// <summary>
        /// Pretrazuje ugostiteljske objekte i dohvaća sve objekte koji u sebi sadrže traženu ključnu riječ, odnosno sve objekte kojima je vrijednost bilo kojeg atributa jednaka traženoj riječi. U slučaju neuspjeha, vraća null.
        /// </summary>
        public BindingList <dbUgostiteljskiObjekt> PretraziUgostiteljskeObjekte(string kljucnaRijec)
        {
            BindingList <dbUgostiteljskiObjekt> nadeniObjekti = null;

            using (var db = new eat32Entities())
            {
                var objektiUpit = db.dbUgostiteljskiObjekt.Where(r => r.naziv.Contains(kljucnaRijec)).ToList();

                nadeniObjekti = new BindingList <dbUgostiteljskiObjekt>(objektiUpit);
            }

            return(nadeniObjekti);
        }
Example #14
0
        /// <summary>
        /// Dohvaća sve narudžbe korisnika
        /// </summary>
        public BindingList <dbNarudžba> DohvatiMojeNarudzbe(int idKorisnika)
        {
            int korisnikID = idKorisnika;
            BindingList <dbNarudžba> sveNarudzbe = null;

            using (var db = new eat32Entities())
            {
                var trenutnaNarudzba = db.dbNarudžba.Where(r => r.korisnik_id == korisnikID).ToList();
                sveNarudzbe = new BindingList <dbNarudžba>(trenutnaNarudzba);
            }

            return(sveNarudzbe);
        }
Example #15
0
        /// <summary>
        /// Dohvaća korisnicko ime prema ID-u narudžbe
        /// </summary>
        public string DohvatiImeRecenzenta(int idNarudzbe)
        {
            int    posiljatelj;
            string imePosiljatelja;

            using (var db = new eat32Entities())
            {
                dbNarudžba trazenaNarudzba = db.dbNarudžba.FirstOrDefault(r => r.id_narudzbe == idNarudzbe);
                posiljatelj     = trazenaNarudzba.korisnik_id;
                imePosiljatelja = DohvatiKorisnickoIme(posiljatelj);
            }

            return(imePosiljatelja);
        }
Example #16
0
        /// <summary>
        /// Upisuje ponudu ugostiteljskog objekta u bazu podataka. Potrebno je proslijediti ID objekta kojem se pridruzuje ponuda, te opis ponude.
        /// </summary>
        public void UpisiPonudu(int idObjekta, string opisVal)
        {
            using (var db = new eat32Entities())
            {
                dbPonuda novaPonuda = new dbPonuda
                {
                    ugostiteljski_obrt_id = idObjekta,
                    opis = opisVal
                };

                db.dbPonuda.Add(novaPonuda);
                db.SaveChanges();
            }
        }
Example #17
0
        /// <summary>
        /// Provjerava da li u bazi podataka već postoji korisnik sa unesenim korisnickim imenom, u slucaju postojanja vraća false a u suprotnom true.
        /// </summary>
        public bool DostupnoKorisnickoIme(string korisnickoIme)
        {
            bool dostupno = true;

            using (var db = new eat32Entities())
            {
                int brojRedova = db.dbKorisnickiRacun.Count(r => r.korisnicko_ime == korisnickoIme);

                if (brojRedova != 0)
                {
                    dostupno = false;
                }
            }
            return(dostupno);
        }
Example #18
0
        /// <summary>
        /// Funkcija šalje poruku svim korisnicima koji su pretplaćeni na ugostiteljski objekt sa zadanim ID-om.
        /// </summary>
        public void ObavijestiPretplatnike(int idObjekta, string poruka)
        {
            using (var db = new eat32Entities())
            {
                var pretplaceniKorisnici = db.dbPretplata.Where(r => r.ugostiteljski_obrt_id == idObjekta);

                if (pretplaceniKorisnici != null)
                {
                    foreach (var item in pretplaceniKorisnici)
                    {
                        PosaljiPoruku(idObjekta, (int)item.korisnik_id, "[Pretplata]", poruka);
                    }
                }
            }
        }
Example #19
0
        /// <summary>
        /// Dohvaća ID korisnickog racuna preko njegovog korisnickog imena, a ako korisnik ne postoji vraća -1.
        /// </summary>
        public int DohvatiIDRacuna(string korisnickoImeRacuna)
        {
            int ID = -1;

            using (var db = new eat32Entities())
            {
                var redObjekta = db.dbKorisnickiRacun.FirstOrDefault(r => r.korisnicko_ime == korisnickoImeRacuna);

                if (redObjekta != null)
                {
                    ID = redObjekta.id_korisnika;
                }
            }
            return(ID);
        }
Example #20
0
        /// <summary>
        /// Upisuje artikl u bazu podataka. Potrebno je proslijediti ID ponude u koju se upisuje artikl, te njegov naziv i cijenu.
        /// </summary>
        public void UpisiArtikl(int idPonude, string nazivVal, int cijenaVal)
        {
            using (var db = new eat32Entities())
            {
                dbArtikl noviArtikl = new dbArtikl
                {
                    ponuda_id = idPonude,
                    naziv     = nazivVal,
                    cijena    = cijenaVal.ToString()
                };

                db.dbArtikl.Add(noviArtikl);
                db.SaveChanges();
            }
        }
Example #21
0
        /// <summary>
        /// Dohvaća korisnicko ime racuna preko njegovog ID-a. U slucaju da ne postoji racun sa unesenim ID-em, funkcija vraća null vrijednost.
        /// </summary>
        public string DohvatiKorisnickoIme(int idRacuna)
        {
            string korime = null;

            using (var db = new eat32Entities())
            {
                var korisnickiRacun = db.dbKorisnickiRacun.FirstOrDefault(k => k.id_korisnika == idRacuna);

                if (korisnickiRacun != null)
                {
                    korime = korisnickiRacun.korisnicko_ime;
                }
            }

            return(korime);
        }
Example #22
0
        /// <summary>
        /// Kreira stavku narudzbe i automatski ju dodaje u narudzbu.
        /// </summary>
        public void KreirajStavkuNarudzbe(int idArtikla, int idNarudzbe, int kolicinaValue)
        {
            using (var db = new eat32Entities())
            {
                dbStavkaNarudzbe novaStavka = new dbStavkaNarudzbe
                {
                    artikl_id   = idArtikla,
                    narudzba_id = idNarudzbe,
                    kolicina    = kolicinaValue,
                    popust      = 0
                };

                db.dbStavkaNarudzbe.Add(novaStavka);
                db.SaveChanges();
            }
        }
Example #23
0
        /// <summary>
        /// Dohvaca sve stavke narudzbe preko njenog ID-a u obliku kolekcije tipa BindingList. Ako narudzba nema stavki, funkcija vraca null vrijednost.
        /// </summary>
        public BindingList <dbStavkaNarudzbe> DohvatiStavkeNarudzbe(int idNarudzbe)
        {
            BindingList <dbStavkaNarudzbe> listaStavki = null;

            using (var db = new eat32Entities())
            {
                var stavkeUpit = db.dbStavkaNarudzbe.Where(s => s.narudzba_id == idNarudzbe).ToList();

                if (stavkeUpit.Count != 0)
                {
                    listaStavki = new BindingList <dbStavkaNarudzbe>(stavkeUpit);
                }
            }

            return(listaStavki);
        }
Example #24
0
        /// <summary>
        /// Salje poruku drugom korisniku, odnosno unosi novu poruku u bazu podataka.
        /// </summary>
        public void PosaljiPoruku(int idPosiljatelja, int idPrimatelja, string header, string text)
        {
            using (var db = new eat32Entities())
            {
                dbPoruka novaPoruka = new dbPoruka
                {
                    posiljatelj_id = idPosiljatelja,
                    primatelj_id   = idPrimatelja,
                    naslov         = header,
                    tekst          = text
                };

                db.dbPoruka.Add(novaPoruka);
                db.SaveChanges();
            }
        }
Example #25
0
        // <summary>
        /// Kreira recenziju korisnika za zeljenu narudžbu.
        /// </summary>
        ///
        public dbRecenzija KreirajRecenziju(int idNarudzbe, int ocjenaNarudzbe, string komentarNarudzbe)
        {
            using (var db = new eat32Entities())
            {
                dbRecenzija novaRecenzija = new dbRecenzija
                {
                    narudzba_id = idNarudzbe,
                    komentar    = komentarNarudzbe,
                    ocjena      = ocjenaNarudzbe
                };

                db.dbRecenzija.Add(novaRecenzija);
                db.SaveChanges();

                return(novaRecenzija);
            }
        }
Example #26
0
        /// <summary>
        /// Kreira narudžbu korisnika za zeljeni ugostiteljski objekt.
        /// </summary>
        public dbNarudžba KreirajNarudzbu(int idUgostiteljskogObjekta, int idKorisnika, DateTime datumVrijeme)
        {
            using (var db = new eat32Entities())
            {
                dbNarudžba novaNarudzba = new dbNarudžba
                {
                    korisnik_id           = idKorisnika,
                    ugostiteljski_obrt_id = idUgostiteljskogObjekta,
                    datum = datumVrijeme
                };

                db.dbNarudžba.Add(novaNarudzba);
                db.SaveChanges();

                return(novaNarudzba);
            }
        }
Example #27
0
        /// <summary>
        /// Dohvaca obicnog korisnika preko ID-a racuna, a ukoliko nije pronaden obicni korisnik sa tim ID-em funkcija ce vratiti null.
        /// </summary>
        public ObicniKorisnik DohvatiObicnogKorisnika(int idRacuna)
        {
            ObicniKorisnik korisnik = null;

            using (var db = new eat32Entities())
            {
                var trazeniRacun = db.dbKorisnickiRacun.FirstOrDefault(r => r.id_korisnika == idRacuna);

                if (trazeniRacun != null)
                {
                    var trazeniKorisnik = db.dbObicniKorisnik.First(r => r.id_obicnog_korisnika == idRacuna);

                    korisnik          = new ObicniKorisnik(trazeniRacun.korisnicko_ime, trazeniRacun.lozinka, trazeniRacun.email, trazeniRacun.adresa, trazeniRacun.broj_telefona, trazeniKorisnik.ime, trazeniKorisnik.prezime);
                    korisnik.IDRacuna = trazeniKorisnik.id_obicnog_korisnika;
                }
            }
            return(korisnik);
        }
Example #28
0
        /// <summary>
        /// Dohvaca ugostiteljskoi objekt preko ID-a racuna, a ukoliko nije pronaden ugostiteljski objekt sa tim ID-em funkcija ce vratiti null.
        /// </summary>
        public UgostiteljskiObjekt DohvatiUgostiteljskiObjekt(int idRacuna)
        {
            UgostiteljskiObjekt objekt = null;

            using (var db = new eat32Entities())
            {
                var trazeniRacun = db.dbKorisnickiRacun.FirstOrDefault(r => r.id_korisnika == idRacuna);

                if (trazeniRacun != null)
                {
                    var trazeniObjekt = db.dbUgostiteljskiObjekt.First(r => r.id_ugostiteljskog_obrta == idRacuna);

                    objekt          = new UgostiteljskiObjekt(trazeniRacun.korisnicko_ime, trazeniRacun.lozinka, trazeniRacun.email, trazeniRacun.adresa, trazeniRacun.broj_telefona, trazeniObjekt.naziv, (TimeSpan)trazeniObjekt.radno_vrijeme_pocetak, (TimeSpan)trazeniObjekt.radno_vrijeme_kraj);
                    objekt.IDRacuna = trazeniObjekt.id_ugostiteljskog_obrta;
                }
            }

            return(objekt);
        }
Example #29
0
        /// <summary>
        /// Dohvaća ukupan iznos narudzbe preko unesenog ID-a narudzbe. Ukoliko je narudzba prazna, vraća 0.
        /// </summary>
        public int IzracunajIznosNarudzbe(int idNarudzbe)
        {
            int iznosNarudzbe = 0;

            using (var db = new eat32Entities())
            {
                var stavkeNarudzbe = DohvatiStavkeNarudzbe(idNarudzbe);

                if (stavkeNarudzbe != null)
                {
                    foreach (var stavka in stavkeNarudzbe)
                    {
                        dbArtikl artikl = DohvatiArtikl(stavka.artikl_id);
                        iznosNarudzbe += int.Parse(artikl.cijena) * stavka.kolicina;
                    }
                }
            }

            return(iznosNarudzbe);
        }
Example #30
0
        /// <summary>
        /// Izvršava autentifikaciju korisnika, odnosno provjerava da li u bazi postoji korisnicki racun sa tim korisnickim imenom i lozinkom. Ako se radi o obicnom korisniku onda vraca 1, za ugostiteljski objekt 2, a u slucaju nepostojeceg racuna vraca 0.
        /// </summary>
        public int Autentikacija(string username, string password)
        {
            int status = 0;

            using (var db = new eat32Entities())
            {
                var redKorisnik = db.dbKorisnickiRacun.FirstOrDefault(r => r.korisnicko_ime == username && r.lozinka == password);

                if (redKorisnik != null)
                {
                    if (db.dbObicniKorisnik.Any(r => r.id_obicnog_korisnika == redKorisnik.id_korisnika))
                    {
                        status = 1;
                    }
                    else
                    {
                        status = 2;
                    }
                }
            }
            return(status);
        }