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)); }
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)); }
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)); }