Пример #1
0
        public IHttpActionResult OktaziVoznju(PromenaVoznjeModel otkazivanje)
        {
            if (GetBlockedUsers.Contains(otkazivanje.SenderID))
            {
                return(Content(HttpStatusCode.Forbidden, "Blokirani ste!"));
            }

            if (!GetLoggedUsers.Contains(otkazivanje.SenderID))
            {
                return(Unauthorized());
            }

            Korisnik k = kor.Korisnici.Find(otkazivanje.SenderID);

            if (k == null)
            {
                return(NotFound());
            }

            if (k.Uloga != EUloga.MUSTERIJA)
            {
                return(Unauthorized());
            }

            Voznja v = db.Voznjas.Find(otkazivanje.VoznjaID);

            if (v == null)
            {
                return(NotFound());
            }

            if (v.StatusVoznje != EStatus.KREIRANA)
            {
                return(Content(HttpStatusCode.NotAcceptable, "Voznja je u medjuvremenu promenila stanje"));
            }

            v.StatusVoznje          = EStatus.OTKAZANA;
            v.Odrediste_XKoordinata = null;
            v.Odrediste_YKoordinata = null;

            db.Entry(v).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!VoznjaExists(v.VoznjaID))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(Ok(v));
        }
Пример #2
0
        public IHttpActionResult OdbaciVoznju(PromenaVoznjeModel prom)
        {
            if (!GetLoggedUsers.Contains(prom.SenderID))
            {
                return(Unauthorized());
            }

            if (GetBlockedUsers.Contains(prom.SenderID))
            {
                return(Content(HttpStatusCode.Forbidden, "Blokirani ste!"));
            }


            Korisnik k = kor.Korisnici.Include(voz => voz.Voznje).ToList().Find(korisnik => korisnik.KorisnikID == prom.SenderID);

            if (k.Uloga != EUloga.VOZAC)
            {
                return(Unauthorized());
            }

            Voznja ciljanaVoznja = db.Voznjas.Find(prom.VoznjaID);

            if (ciljanaVoznja == null)
            {
                return(NotFound());
            }

            if (ciljanaVoznja.StatusVoznje != EStatus.FORMIRANA && ciljanaVoznja.StatusVoznje != EStatus.OBRADJENA && ciljanaVoznja.StatusVoznje != EStatus.PRIHVACENA && ciljanaVoznja.StatusVoznje != EStatus.UTOKU)
            {
                return(Content(HttpStatusCode.NotAcceptable, "Voznja je u medjuvremenu promenila status"));
            }

            ciljanaVoznja.StatusVoznje          = EStatus.NEUSPESNA;
            ciljanaVoznja.Odrediste_XKoordinata = null;
            ciljanaVoznja.Odrediste_YKoordinata = null;

            db.Entry(ciljanaVoznja).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!VoznjaExists(ciljanaVoznja.VoznjaID))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(Ok(ciljanaVoznja));
        }
Пример #3
0
        public IHttpActionResult PreuzmiVoznju(PromenaVoznjeModel prom)
        {
            if (!GetLoggedUsers.Contains(prom.SenderID))
            {
                return(Unauthorized());
            }

            if (GetBlockedUsers.Contains(prom.SenderID))
            {
                return(Content(HttpStatusCode.Forbidden, "Blokirani ste!"));
            }

            Korisnik k = kor.Korisnici.Include(voz => voz.Voznje).ToList().Find(korisnik => korisnik.KorisnikID == prom.SenderID);

            if (k.Uloga != EUloga.VOZAC)
            {
                return(Unauthorized());
            }

            List <Voznja> korisnikoveVoznje = db.Voznjas.Where(a => a.VozacID == prom.SenderID).ToList();

            if (korisnikoveVoznje.Any(voznja => voznja.StatusVoznje == EStatus.UTOKU))
            {
                return(Content(HttpStatusCode.NotAcceptable, "Imate voznju u toku"));
            }

            Voznja ciljanaVoznja = db.Voznjas.Find(prom.VoznjaID);

            if (ciljanaVoznja == null)
            {
                return(NotFound());
            }

            if (ciljanaVoznja.StatusVoznje != EStatus.KREIRANA)
            {
                return(Content(HttpStatusCode.NotAcceptable, "Voznja je u medjuvremenu promenila status"));
            }

            if (ciljanaVoznja.ZeljeniTip != ETipAutomobila.PROIZVOLJNO && ciljanaVoznja.ZeljeniTip != k.ZeljeniTip)
            {
                return(Content(HttpStatusCode.NotAcceptable, "Nemate trazeni tip vozila"));
            }

            ciljanaVoznja.StatusVoznje = EStatus.PRIHVACENA;
            ciljanaVoznja.StatusVoznje = EStatus.UTOKU;
            ciljanaVoznja.VozacID      = k.KorisnikID;

            ciljanaVoznja.Odrediste_XKoordinata = null;
            ciljanaVoznja.Odrediste_YKoordinata = null;

            db.Entry(ciljanaVoznja).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!VoznjaExists(ciljanaVoznja.VoznjaID))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(Ok(ciljanaVoznja));
        }