public ActionResult KreirajRezervaciju([FromBody] RezervacijaDTO rezervacija) { try { IList <Kofer> koferi = DataProvider.VratiSveKofere(); Kofer kofer = null; foreach (Kofer k in koferi) { if (k.tip.Equals(rezervacija.Prtljag)) { kofer = k; break; } } if (kofer == null) { kofer = new Kofer(); kofer.tezina = 100; kofer.tip = rezervacija.Prtljag; DataProvider.KreirajKofer(kofer); } String[] timeNow = DateTime.Now.ToLongTimeString().Split(":"); String[] dateNow = DateTime.Now.ToShortDateString().Split("/"); Rezervacija r = new Rezervacija { Id = rezervacija.Id, BrojSedista = rezervacija.BrojSedista, PasosBytes = Convert.FromBase64String(rezervacija.PasosBytesBase64), CovidTestBytes = Convert.FromBase64String(rezervacija.CovidTestBytesBase64), Status = rezervacija.Status, KodRezervacije = "RE" + dateNow[0] + dateNow[1] + dateNow[2] + timeNow[0] + timeNow[1] + timeNow[2].ElementAt(0) + timeNow[2].ElementAt(1), ListaProizvoda = rezervacija.ListaProizvoda, Putnik = new ObjectId(rezervacija.Putnik), Let = new ObjectId(rezervacija.Let), Kofer = kofer.Id }; return(new JsonResult(DataProvider.KreirajRezervaciju(r).ToString())); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.ToString())); } }
private bool SlobodnaSoba(RezervacijaDTO rezervacija) { TimeRange nRange = new TimeRange(rezervacija.Prijava, rezervacija.Odjava); var rez = db.Rezervacije.Where(r => r.SobaID == rezervacija.SobaID); if (rez.Any()) { foreach (var r in rez) { TimeRange range = new TimeRange(r.Prijava, r.Odjava); if (nRange.IntersectsWith(range)) { return(false); } } } return(true); }
public IHttpActionResult Uredi(RezervacijaDTO rezervacija) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var trezervacija = db.Rezervacije.Find(rezervacija.RezervacijaID); if (trezervacija == null) { return(NotFound()); } var gost = db.Rezervacije.Count(r => r.GostID == rezervacija.GostID); if (gost == 0) { return(BadRequest("Gost ne postoji")); } var soba = db.Rezervacije.Count(r => r.SobaID == rezervacija.SobaID); if (soba == 0) { return(BadRequest("Soba ne postoji")); } var slobodnaSoba = SlobodnaSoba(rezervacija); if (!slobodnaSoba) { return(BadRequest("Soba je zauzeta")); } Mapper.Map(rezervacija, trezervacija); db.SaveChanges(); return(Ok(rezervacija)); }
public static RezervacijaDTO VratiRezervacijuPrekoId(string id) { IMongoDatabase db = Session.MongoDatabase; Rezervacija rez = db.GetCollection <Rezervacija>("rezervacije").Find(x => x.Id == new ObjectId(id)).FirstOrDefault(); IList <string> listProducts = new List <string>(); foreach (ObjectId idProz in rez.ListaProizvoda) { listProducts.Add(DataProvider.VratiProizvodPrekoIda(idProz.ToString()).naziv); } RezervacijaDTO rezDTO = new RezervacijaDTO() { Id = rez.Id, KodRezervacije = rez.KodRezervacije, Status = rez.Status, Proizvodi = listProducts }; return(rezDTO); }
public IHttpActionResult Dodaj([FromBody] RezervacijaDTO rezervacija) { if (!ModelState.IsValid) { return(BadRequest("Krivi unos")); } var gost = db.Gosti.FirstOrDefault(x => x.GostID == rezervacija.GostID); if (gost == null) { return(BadRequest("Gost ne postoji")); } var soba = db.Sobe.FirstOrDefault(x => x.SobaID == rezervacija.SobaID); if (soba == null) { return(BadRequest("Soba ne postoji")); } var rangeFromSelect = new TimeRange(rezervacija.Prijava, rezervacija.Odjava); var rezervacija1 = db.Rezervacije.ToList(); var unavailableRoomsId = rezervacija1 .Where(r => rangeFromSelect.IntersectsWith(new TimeRange(r.Prijava, r.Odjava, true))) .Select(r => r.SobaID).ToList(); if (unavailableRoomsId.Contains(rezervacija.SobaID)) { return(BadRequest()); } db.Rezervacije.Add(Mapper.Map <RezervacijaDTO, Rezervacija>(rezervacija)); db.SaveChanges(); return(Content(HttpStatusCode.Created, rezervacija)); }