public IHttpActionResult IzmeniManifestaciju(IzmenaManifestacijeDTO imdto)
        {
            Korisnik korisnikSesija = (Korisnik)HttpContext.Current.Session["Korisnik"];

            if (korisnikSesija == null)
            {
                korisnikSesija = new Korisnik();
                HttpContext.Current.Session["Korisnik"] = korisnikSesija;
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            bp.listaManifestacija = (Dictionary <string, Manifestacija>)HttpContext.Current.Application["Manifestacije"];
            if (bp.listaManifestacija.ContainsKey(imdto.Id))
            {
                bp.listaManifestacija[imdto.Id].Naziv                = imdto.Naziv;
                bp.listaManifestacija[imdto.Id].BrojMesta            = imdto.BrojMesta;
                bp.listaManifestacija[imdto.Id].BrojRegularKarata    = imdto.BrojRegularKarata;
                bp.listaManifestacija[imdto.Id].BrojVipKarata        = imdto.BrojVipKarata;
                bp.listaManifestacija[imdto.Id].BrojFanpitKarata     = imdto.BrojFanpitpKarata;
                bp.listaManifestacija[imdto.Id].DatumVremeOdrzavanja = imdto.DatumVremeOdrzavanja;
                bp.listaManifestacija[imdto.Id].CenaRegularKarte     = imdto.CenaRegularKarte;

                bp.AzurirajManifestacije();
                return(Ok());
            }

            return(BadRequest());
        }
        public IHttpActionResult ObrisiKorisnika(string id)
        {
            bp.listaManifestacija = (Dictionary <string, Manifestacija>)HttpContext.Current.Application["Manifestacije"];
            bp.listaKorisnika     = (Dictionary <string, Korisnik>)HttpContext.Current.Application["Korisnici"];
            bp.listaKarata        = (Dictionary <string, Karta>)HttpContext.Current.Application["Karte"];

            Korisnik korisnikSesija = (Korisnik)HttpContext.Current.Session["Korisnik"];

            if (korisnikSesija == null)
            {
                korisnikSesija = new Korisnik();
                HttpContext.Current.Session["Korisnik"] = korisnikSesija;
            }

            if (korisnikSesija.Uloga == Enums.Uloga.ADMINISTRATOR)
            {
                bp.listaKorisnika[id].IsDeleted = bool.Parse("True");

                if (bp.listaKorisnika[id].Uloga == Enums.Uloga.KUPAC)
                {
                    Kupac k = (Kupac)bp.listaKorisnika[id];
                    foreach (var item in k.SveMojeKarteBezObziraNaStatus)
                    {
                        bp.listaKarata[item].IsDeleted = bool.Parse("True");
                    }
                    bp.AzurirajKarte();
                }
                else if (bp.listaKorisnika[id].Uloga == Enums.Uloga.PRODAVAC)
                {
                    Prodavac p = (Prodavac)bp.listaKorisnika[id];

                    foreach (var item in p.SveMojeManifestacije)
                    {
                        bp.listaManifestacija[item].IsDeleted = bool.Parse("True");
                    }
                    bp.AzurirajManifestacije();
                }

                bp.AzurirajKorisnike();
            }

            return(Ok());
        }
        public IHttpActionResult RezervisiKarte(GenerisanjeKarataDTO gdto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //BazaPodataka bp = new BazaPodataka();
            bp.listaKarata        = (Dictionary <string, Karta>)HttpContext.Current.Application["Karte"];
            bp.listaManifestacija = (Dictionary <string, Manifestacija>)HttpContext.Current.Application["Manifestacije"];

            Guid   guid = Guid.NewGuid();
            string idKarte;

            DateTime dt          = DateTime.ParseExact(gdto.DatumVremeManifestacije.ToString(), "M/d/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
            var      date        = dt.Date;
            string   datumString = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

            bp.listaKorisnika = (Dictionary <string, Korisnik>)HttpContext.Current.Application["Korisnici"];
            Kupac kup = (Kupac)bp.listaKorisnika[gdto.KupacID];

            if (kup.SveMojeKarteBezObziraNaStatus.Contains(""))
            {
                kup.SveMojeKarteBezObziraNaStatus.Remove("");
            }


            for (int i = 0; i < gdto.BrojRezervisanihKarata; i++)
            {
                guid    = Guid.NewGuid();
                idKarte = guid.ToString();

                Karta k = new Karta(idKarte, gdto.ManifestacijaID, datumString, gdto.Cena.ToString(), gdto.KupacID, Enums.StatusKarte.REZERVISANA.ToString(), gdto.Tip.ToString(), "01/01/2001", "False");
                bp.listaKarata.Add(k.Id, k);
                k.SacuvajKartu();

                if (gdto.Tip == Enums.TipKarte.REGULAR)
                {
                    bp.listaManifestacija[gdto.ManifestacijaID].BrojRegularKarata--;
                    bp.AzurirajManifestacije();
                }
                else if (gdto.Tip == Enums.TipKarte.VIP)
                {
                    bp.listaManifestacija[gdto.ManifestacijaID].BrojVipKarata--;
                    bp.AzurirajManifestacije();
                }
                else if (gdto.Tip == Enums.TipKarte.FANPIT)
                {
                    bp.listaManifestacija[gdto.ManifestacijaID].BrojFanpitKarata--;
                    bp.AzurirajManifestacije();
                }


                kup.SveMojeKarteBezObziraNaStatus.Add(idKarte);

                kup.BrojSakupljenihBodova += gdto.BrojDodatnihBodova;

                if (kup.BrojSakupljenihBodova >= kup.TipKorisn.PotrebanBrojBodovaZlato)
                {
                    kup.TipKorisn.ImeTipa = Enums.TipKorisnika.ZLATNI;
                    kup.TipKorisn.Popust  = 20;
                }
                else if (kup.BrojSakupljenihBodova >= kup.TipKorisn.PotrebanBrojBodovaSrebro)
                {
                    kup.TipKorisn.ImeTipa = Enums.TipKorisnika.SREBRNI;
                    kup.TipKorisn.Popust  = 10;
                }
                else
                {
                    kup.TipKorisn.ImeTipa = Enums.TipKorisnika.BRONZANI;
                    kup.TipKorisn.Popust  = 5;
                }

                bp.AzurirajKorisnike();
            }

            return(Ok());
        }