public async Task Potvrdi() { RezervacijaInsertRequest request = new RezervacijaInsertRequest { BrojDjece = BrojDjece, BrojOdraslih = BrojOdraslih, DatumRezervacije = DatumRezervacije, KlijentId = KlijentId, RezervacijaDo = RezervacijaDo, RezervacijaOd = RezervacijaOd, StatusRezervacijeId = 2, Sobe = new List <SobaModel>() }; foreach (SobaModel s in Sobe) { request.Sobe.Add(s); } await _rezervacijaService.Insert <RezervacijaInsertRequest>(request); KorisnikModel k = returnKorisnik(); Application.Current.MainPage = new MainPage(k); }
public RezervacijaInsertRequest Insert(RezervacijaInsertRequest model) { Klijent k = _context.Klijent.Where(x => x.KorisnikId == model.KlijentId).SingleOrDefault(); Rezervacija r = new Rezervacija { BrojDjece = model.BrojDjece, BrojOdraslih = model.BrojOdraslih, KlijentId = k.KlijentId, RezervacijaDo = model.RezervacijaDo, RezervacijaOd = model.RezervacijaOd, StatusRezervacijeId = 1, DatumRezervacije = model.DatumRezervacije, }; _context.Rezervacija.Add(r); _context.SaveChanges(); foreach (SobaModel s in model.Sobe) { RezervacijaSoba rs = new RezervacijaSoba { SobaId = s.SobaId, RezervacijaId = r.RezervacijaId }; _context.RezervacijaSoba.Add(rs); } _context.SaveChanges(); return(model); }
public Model.Rezervacija Update(int id, RezervacijaInsertRequest update) { var entity = _context.Rezervacija.Find(id); _mapper.Map(update, entity); _context.SaveChanges(); return(_mapper.Map <Model.Rezervacija>(entity)); }
public Model.Rezervacija Insert(RezervacijaInsertRequest insert) { var entity = _mapper.Map <Database.Rezervacija>(insert); _context.Rezervacija.Add(entity); _context.SaveChanges(); return(_mapper.Map <Model.Rezervacija>(entity)); }
public async Task <RezervacijaResponse> Insert(int korisnikID, RezervacijaInsertRequest request) { var entity = _mapper.Map <Rezervacija>(request); entity.KorisnikID = korisnikID; _context.Rezervacije.Add(entity); await _context.SaveChangesAsync(); return(_mapper.Map <RezervacijaResponse>(entity)); }
private async void AddReservaction_Clicked(object sender, EventArgs e) { RezervacijaInsertRequest request = new RezervacijaInsertRequest() { DatumRezervacije = ResrvationDatePicker.Date, Vrijeme = TimePickerReservation.Time.ToString(), KlijentId = 1, Otkazano = false, Prihvaceno = false, UslugeId = model.SelectedUsluga.Id, BrojOsoba = Convert.ToInt32(BrojGostiju.Text) }; await RezervacijaService.Insert <Rezervacija>(request); await Application.Current.MainPage.DisplayAlert("Rezervacija", "Uspjesna operacija!", "OK"); }
public async Task <IActionResult> RezervisiAsync(Rezervacija rezervacija) { if (ModelState.IsValid) { RezervacijaInsertRequest insertRequest = new RezervacijaInsertRequest { Telefon = rezervacija.Telefon, DatumVrijemeRezervacije = (DateTime)rezervacija.DatumVrijemeRezervacije, BrojMjesta = (int)rezervacija.BrojMjesta }; await _restoranApi.CreateRezervacijaAsync(insertRequest); return(RedirectToAction("UspjesnaRezervacija")); } return(View(rezervacija)); }
public async Task ButtonInit(int id) { Putnici p = await GetPutnik(); KartaInsertRequest kInsert = new KartaInsertRequest() { DatumIzdavanja = DateTime.Now, RezervacijaSjedistaId = 1, BrojKarte = getBrojKarte() }; if (SelectedVrstaKarte == null) { kInsert.VrstaKarteId = 1; } else { kInsert.VrstaKarteId = SelectedVrstaKarte.VrstaKarteId; } await _Karta.Insert <Karta>(kInsert); KartaSearchRequest searchKarta = new KartaSearchRequest() { BrojKarte = kInsert.BrojKarte }; Karta kGet = await GetKarta(searchKarta); RezervacijaInsertRequest rezInsert = new RezervacijaInsertRequest() { DatumKreiranja = DateTime.Now, DatumIsteka = DateTime.Now.AddDays(7), Otkazana = false, Qrcode = getBrojKarte(), PutnikId = p.PutnikId, KartaId = kGet.KartaId, RedVoznjeId = id }; await _Rezervacija.Insert <RezervacijaKarte>(rezInsert); await Application.Current.MainPage.DisplayAlert(" ", "Uspješno ste rezervisali vašu kartu!", "OK"); }
public async Task <ActionResult <RezervacijaResponse> > Insert(RezervacijaInsertRequest request) { var ID = HttpContext.GetUserID(); if (ID == null) { return(BadRequest()); } var response = await _service.Insert((int)ID, request); if (response == null) { return(BadRequest()); } PathString path = HttpContext.Request.Path; return(Created(path, response)); }
public PotvrdiRezervaciju(RezervacijaInsertRequest model, SmjestajModel returnmodelSmjestaj, KorisnikModel returnmodelKorisnik) { InitializeComponent(); _returnmodel = returnmodelSmjestaj; viewmodel = new PotvrdiRezervacijuVM { KlijentId = model.KlijentId, DatumRezervacije = model.DatumRezervacije, RezervacijaDo = model.RezervacijaDo, RezervacijaOd = model.RezervacijaOd, StatusRezervacijeId = 1, BrojDjece = model.BrojDjece, BrojOdraslih = model.BrojOdraslih, NazivSmjestaja = model.NazivSmjestaja, AdresaSmjestaja = model.AdresaSmjestaja }; viewmodel.Sobe = new ObservableCollection <SobaModel>(); foreach (SobaModel s in model.Sobe) { viewmodel.Sobe.Add(s); } viewmodel.BrojSoba = viewmodel.Sobe.Count; BindingContext = viewmodel; }
public virtual RezervacijaInsertRequest Insert(RezervacijaInsertRequest Model) { return(_service.Insert(Model)); }
public Rezervacija Insert(RezervacijaInsertRequest request) { var entity = _mapper.Map <Data.EntityModels.Rezervacija>(request); entity.KlijentId = _korisnikService.GetCurrentUser().Klijent.Id; if (request.ObradiIznajmljivanje) { var Stavke = GetTerminStavke(entity.KlijentId); foreach (var stavka in Stavke) { double cijena = 0; if (stavka.Bicikl != null) { cijena = stavka.Bicikl.CijenaPoDanu.Value * stavka.BrojDana; } entity.UkupniIznos += cijena * stavka.Kolicina; } double stopa_poreza = 17.0; entity.Osnovica = entity.UkupniIznos / (1 + stopa_poreza / 100); entity.UkupnoPoreza = entity.UkupniIznos - entity.Osnovica; entity.RezervacijaIznajmljenaBicikla = new List <Data.EntityModels.RezervacijaIznajmljenaBicikla>(); // Bicikla foreach (var naruceno_biciklo in Stavke.ToList()) { var bicikl_stanja = _context.BiciklStanje .Where(x => x.BiciklId == naruceno_biciklo.BiciklId) .Where(x => x.Aktivan == true) .Where(x => x.Kolicina > 0) .ToList(); if (bicikl_stanja.Sum(x => x.Kolicina) < naruceno_biciklo.Kolicina) { throw new UserException("Naručeno biciklo " + naruceno_biciklo.Bicikl.PuniNaziv + " nije dostupno u traženoj kolicini!"); } var trazena_kolicina = naruceno_biciklo.Kolicina; foreach (var bicikl_na_stanju in bicikl_stanja) { var dostupna_kolicina = Math.Min(trazena_kolicina, bicikl_na_stanju.Kolicina); bicikl_na_stanju.Kolicina -= dostupna_kolicina; trazena_kolicina -= dostupna_kolicina; for (int i = 0; i < dostupna_kolicina; i++) { entity.RezervacijaIznajmljenaBicikla.Add(new Data.EntityModels.RezervacijaIznajmljenaBicikla { BiciklStanjeId = bicikl_na_stanju.BiciklStanjeId, DatumPreuzimanja = naruceno_biciklo.DatumPreuzimanja, DatumVracanja = naruceno_biciklo.DatumVracanja }); } if (trazena_kolicina == 0) { break; } } } } else if (request.RezervacijaServis != null) { var DatumServisiranja = request.RezervacijaServis[0].DatumServisiranja; foreach (var stavka in request.RezervacijaServis) { var servis = _context.Servis.Where(x => x.ServisId == stavka.ServisId) .Where(x => x.IsDeleted == false).FirstOrDefault(); if (servis is null) { throw new UserException("Servis nije pronađen: " + stavka.ServisId); } stavka.DatumServisiranja = DatumServisiranja; DatumServisiranja = DatumServisiranja.AddHours(servis.Trajanje); entity.UkupniIznos += servis.Cijena; } double stopa_poreza = 17.0; entity.Osnovica = entity.UkupniIznos / (1 + stopa_poreza / 100); entity.UkupnoPoreza = entity.UkupniIznos - entity.Osnovica; entity.RezervacijaServis = new List <Data.EntityModels.RezervacijaServis>(); foreach (var rezervacija_servis in request.RezervacijaServis) { var item = _mapper.Map <Data.EntityModels.RezervacijaServis>(rezervacija_servis); entity.RezervacijaServis.Add(item); } } else { var Stavke = GetKorpaStavke(entity.KlijentId); foreach (var stavka in Stavke) { double cijena = 0; if (stavka.Bicikl != null) { cijena = stavka.Bicikl.Cijena.Value; } else if (stavka.Oprema != null) { cijena = stavka.Oprema.Cijena; } else if (stavka.Dio != null) { cijena = stavka.Dio.Cijena; } entity.UkupnoProizvodi += cijena * stavka.Kolicina; } double stopa_poreza = 17.0; entity.Postarina = 0.0; if (entity.NacinOtpremeId != 0) { entity.Postarina = _context.NacinOtpreme .Where(x => x.IsDeleted == false).Where(x => x.NacinOtpremeId == entity.NacinOtpremeId).Single()?.Cijena ?? 0.0; } entity.UkupniIznos = entity.UkupnoProizvodi; entity.Osnovica = entity.UkupniIznos / (1 + stopa_poreza / 100); entity.UkupnoPoreza = entity.UkupniIznos - entity.Osnovica; entity.UkupniIznos += entity.Postarina; entity.RezervacijaProdajaBicikla = new List <Data.EntityModels.RezervacijaProdajaBicikla>(); entity.RezervacijaProdajaDio = new List <Data.EntityModels.RezervacijaProdajaDio>(); entity.RezervacijaProdajaOprema = new List <Data.EntityModels.RezervacijaProdajaOprema>(); // Bicikla foreach (var naruceno_biciklo in Stavke.Where(x => x.BiciklId != null).ToList()) { var bicikl_stanja = _context.BiciklStanje .Where(x => x.BiciklId == naruceno_biciklo.BiciklId) .Where(x => x.Aktivan == true) .Where(x => x.Kolicina > 0) .ToList(); if (bicikl_stanja.Sum(x => x.Kolicina) < naruceno_biciklo.Kolicina) { throw new UserException("Naručeno biciklo " + naruceno_biciklo.Bicikl.PuniNaziv + " nije dostupno u traženoj kolicini!"); } var trazena_kolicina = naruceno_biciklo.Kolicina; foreach (var bicikl_na_stanju in bicikl_stanja) { var dostupna_kolicina = Math.Min(trazena_kolicina, bicikl_na_stanju.Kolicina); bicikl_na_stanju.Kolicina -= dostupna_kolicina; trazena_kolicina -= dostupna_kolicina; for (int i = 0; i < dostupna_kolicina; i++) { entity.RezervacijaProdajaBicikla.Add(new Data.EntityModels.RezervacijaProdajaBicikla { BiciklStanjeId = bicikl_na_stanju.BiciklStanjeId }); } if (trazena_kolicina == 0) { break; } } } // Dijelovi foreach (var naruceno_dio in Stavke.Where(x => x.DioId != null).ToList()) { var dio_stanja = _context.DioStanje .Where(x => x.DioId == naruceno_dio.DioId) .Where(x => x.Aktivan == true) .Where(x => x.KupacId == null) .Take(naruceno_dio.Kolicina) .ToList(); if (dio_stanja.Count < naruceno_dio.Kolicina) { throw new UserException("Naručeno dio " + naruceno_dio.Dio.Naziv + " nije dostupno u traženoj kolicini!"); } foreach (var dio_na_stanju in dio_stanja) { entity.RezervacijaProdajaDio.Add(new Data.EntityModels.RezervacijaProdajaDio { DioStanjeId = dio_na_stanju.DioStanjeId }); dio_na_stanju.Aktivan = false; dio_na_stanju.KupacId = entity.KlijentId; } } // Oprema foreach (var narucena_oprema in Stavke.Where(x => x.OpremaId != null).ToList()) { var oprema_stanja = _context.OpremaStanje .Where(x => x.OpremaId == narucena_oprema.OpremaId) .Where(x => x.Aktivan == true) .Where(x => x.KupacId == null) .Take(narucena_oprema.Kolicina) .ToList(); if (oprema_stanja.Count < narucena_oprema.Kolicina) { throw new UserException("Naručena oprema " + narucena_oprema.Oprema.Naziv + " nije dostupna u traženoj kolicini!"); } foreach (var oprema_na_stanju in oprema_stanja) { entity.RezervacijaProdajaOprema.Add(new Data.EntityModels.RezervacijaProdajaOprema { OpremaStanjeId = oprema_na_stanju.OpremaStanjeId }); oprema_na_stanju.Aktivan = false; oprema_na_stanju.KupacId = entity.KlijentId; } } } entity.DatumRezervacije = DateTime.Now; entity.StanjeRezervacije = Data.EntityModels.StanjeRezervacije.ekanje_uplate; if (entity.NacinOtpremeId == 0) { entity.NacinOtpremeId = _context.NacinOtpreme .Where(x => x.IsDeleted == false).First(x => x.Cijena == 0).NacinOtpremeId; } entity.NacinOtpreme = _context.NacinOtpreme.First(x => x.NacinOtpremeId == entity.NacinOtpremeId); _context.Rezervacija.Add(entity); _context.SaveChanges(); if (request.ObradiIznajmljivanje) { var termin_stavke = _context.TerminStavka.Where(x => x.KlijentId == entity.KlijentId).ToList(); foreach (var item in termin_stavke) { _context.TerminStavka.Remove(item); } } else if (request.RezervacijaServis != null) { // do nothing } else { var korpa_stavke = _context.KorpaStavka.Where(x => x.KlijentId == entity.KlijentId).ToList(); foreach (var item in korpa_stavke) { _context.KorpaStavka.Remove(item); } if (entity.NacinPlacanja != "online") { var zaposlenici = _context.Zaposlenik.Where(x => x.Korisnik.Aktivan == true).ToList(); foreach (var zaposlenik in zaposlenici) { var notifikacija = new Data.EntityModels.Notifikacija { ZaposlenikId = zaposlenik.Id, Tip = Data.EntityModels.TipNotifikacije.Nova_Narudzba, Rezervacija = entity, DatumVrijeme = DateTime.Now }; _context.Notifikacija.Add(notifikacija); } } } _context.SaveChanges(); return(_mapper.Map <Model.Rezervacija>(entity)); }
public Model.Rezervacija Update(int id, RezervacijaInsertRequest update) { return(_service.Update(id, update)); }
public Model.Rezervacija Insert(RezervacijaInsertRequest insert) { return(_service.Insert(insert)); }