public bool PotvrdaRezervacijeTerminaPost([FromBody] ServisPotvrdaRezervacijeTerminaRequest request) { return((bool)_service.PotvrdaRezervacijeTermina(request)); }
public object PotvrdaRezervacijeTermina(ServisPotvrdaRezervacijeTerminaRequest request) { var Korisnik = _korisnikService.GetCurrentUser(); var Klijent = Korisnik.Klijent; Data.EntityModels.Servis Servis = _context.Servis .Where(x => x.IsDeleted == false) .Where(x => x.ServisId == request.Id).FirstOrDefault(); if (request.Datum.Date <= DateTime.Now.Date || Servis == null) { throw new UserException("Neispravan unos."); } double TrajanjeServisa = Servis.Trajanje * request.Kolicina; if (TrajanjeServisa > 8) { throw new UserException("Ukupno trajanje servisa ne smije preci 8 sati."); } request.UkupniIznos = Servis.Cijena * request.Kolicina; request.BrojServisStavki = request.Kolicina; if (request.DetaljiServisa != null && request.DetaljiServisa.Length > 0) { double SumServiceHours = _context.RezervacijaServis.Where(x => x.DatumServisiranja.Date == request.Datum).Sum(x => (double?)x.Servis.Trajanje ?? 0); if (SumServiceHours + TrajanjeServisa > 8) { throw new UserException("Odabrani termin servisa prekoracuje dostupno vrijeme za odabrani dan."); } request.Datum = request.Datum.Add(request.Satnica); var lista_servisa = new List <Data.EntityModels.RezervacijaServis>(); for (int i = 0; i < request.DetaljiServisa.Length; i++) { lista_servisa.Add(new Data.EntityModels.RezervacijaServis { Boja = request.DetaljiServisa[i].Boja, Proizvodjac = request.DetaljiServisa[i].Proizvodjac, DodatniTroskovi = request.DetaljiServisa[i].DodatniTroskovi, Model = request.DetaljiServisa[i].Model, Opis = request.DetaljiServisa[i].Opis, ServisId = request.Id, Tip = (Data.EntityModels.Tip)((int)request.DetaljiServisa[i].Tip), DatumServisiranja = request.Datum }); request.Datum = request.Datum.AddHours(Servis.Trajanje); } Data.EntityModels.Rezervacija narudzba = new Data.EntityModels.Rezervacija { AdresaStanovanja = Korisnik.AdresaStanovanja, BrojTelefona = Korisnik.BrojTelefona, Email = Korisnik.Email, Grad = Korisnik.Grad.Naziv, Ime = Korisnik.Ime, Prezime = Korisnik.Prezime, DatumRezervacije = DateTime.Now, KlijentId = Klijent.Id, NacinOtpremeId = _context.NacinOtpreme .Where(x => x.IsDeleted == false).Where(x => x.Cijena == 0).First().NacinOtpremeId, NacinPlacanja = "online", UkupniIznos = request.UkupniIznos, RezervacijaServis = lista_servisa, StanjeRezervacije = Data.EntityModels.StanjeRezervacije.ekanje_uplate }; _context.Rezervacija.Add(narudzba); _context.SaveChanges(); return(true); } else { return(request); } }
public ServisPotvrdaRezervacijeTerminaRequest PotvrdaRezervacijeTerminaGet([FromQuery] ServisPotvrdaRezervacijeTerminaRequest request) { return((ServisPotvrdaRezervacijeTerminaRequest)_service.PotvrdaRezervacijeTermina(request)); }