public IActionResult Dodaj(DodajBiciklVM model, IFormFile Slika) { if (ModelState.IsValid) { Bicikl NoviBicikl = new Bicikl() { BojaId = model.BojaId, StarosnaGrupaId = model.StarosnaGrupaId, VelicinaOkviraId = model.VelicinaOkviraId, Cijena = model.Cijena, CijenaPoDanu = model.CijenaPoDanu, GodinaProizvodnje = model.GodinaProizvodnje, ModelId = model.ModelId, NoznaKocnica = model.NoznaKocnica, Slika = model.Slika, Stanje = model.Stanje, Opis = model.Opis, Aktivan = true }; db.Bicikl.Add(NoviBicikl); if (Slika == null || Slika.Length == 0) { NoviBicikl.Slika = new byte[0]; } else { using (var ms = new MemoryStream()) { Slika.CopyTo(ms); NoviBicikl.Slika = ms.ToArray(); } } db.SaveChanges(); if (model.BiciklStanja_Lokacije != null && model.BiciklStanja_Kolicine != null) { for (int i = 0; i < model.BiciklStanja_Lokacije.Count; i++) { BiciklStanje stanje = new BiciklStanje { BiciklId = NoviBicikl.BiciklId, LokacijaId = model.BiciklStanja_Lokacije[i], Kolicina = model.BiciklStanja_Kolicine[i] }; db.BiciklStanje.Add(stanje); } db.SaveChanges(); } } else { return(View("Dodaj", model)); } return(RedirectToAction("Index")); }
public StatusCodeResult KupiBicikl(int Id, int kolicina) { Bicikl Bicikl = db.Bicikl .Include(x => x.BiciklStanje) .Where(x => x.BiciklId == Id) .Where(x => x.Stanje == Stanje.Novo || x.Stanje == Stanje.Polovno) .FirstOrDefault(); if (Bicikl == null) { return(new NotFoundResult());// 404 } if (kolicina < 1) { return(new BadRequestResult()); } var Klijent = HttpContext.GetLogiraniKorisnik().Klijent; var ukupno_u_skladistu = Bicikl.BiciklStanje.Where(x => x.Aktivan == true).Sum(x => x.Kolicina); var ukupno_u_kosarici = db.KorpaStavka.Where(x => x.KlijentId == Klijent.Id && x.BiciklId == Id).Sum(x => x.Kolicina); if (kolicina > ukupno_u_skladistu - ukupno_u_kosarici) { return(new BadRequestResult()); // 400 } var PostojecaStvaka = db.KorpaStavka.Where(x => x.KlijentId == Klijent.Id && x.BiciklId == Id).FirstOrDefault(); if (PostojecaStvaka != null) { PostojecaStvaka.Kolicina += kolicina; } else { db.KorpaStavka.Add(new KorpaStavka { KlijentId = Klijent.Id, BiciklId = Id, Kolicina = kolicina }); } db.SaveChanges(); return(new OkResult()); // 200 }
public bool OdaberiTermin(Model.Requests.BiciklOdaberiTerminRequest request) { int StanjeInt = (int)Stanje.Korišteno; Data.EntityModels.Stanje StanjeEnum = (Data.EntityModels.Stanje)StanjeInt; Bicikl Bicikl = _context.Bicikl .Include(x => x.BiciklStanje) .Where(x => x.BiciklId == request.Id) .Where(x => x.Stanje == StanjeEnum) .FirstOrDefault(); if (Bicikl == null) { throw new UserException("Biciklo nije pronađeno."); } if (request.DatumPreuzimanja.Date < DateTime.Now.Date || request.DatumPreuzimanja.Date > request.DatumVracanja.Date) { throw new UserException("Forma nije ispravno popunjena."); } var Klijent = korisnikService.GetCurrentUser().Klijent; int ukupno_u_skladistu = Bicikl.BiciklStanje.Where(x => x.Aktivan == true).Sum(x => x.Kolicina); int ukupno_u_kosarici = _context.TerminStavka.Where(x => x.KlijentId == Klijent.Id && x.BiciklId == request.Id) .Where(x => ( (x.DatumPreuzimanja.Date >= request.DatumPreuzimanja.Date && x.DatumPreuzimanja.Date <= request.DatumVracanja.Date) || (x.DatumVracanja.Date >= request.DatumPreuzimanja.Date && x.DatumVracanja.Date <= request.DatumVracanja.Date) ) || ( (request.DatumPreuzimanja.Date >= x.DatumPreuzimanja.Date && request.DatumPreuzimanja.Date <= x.DatumVracanja.Date) || (request.DatumVracanja.Date >= x.DatumPreuzimanja.Date && request.DatumVracanja.Date <= x.DatumVracanja.Date) )) .Sum(x => x.Kolicina); var broj_termina_kolizija = _context.RezervacijaIznajmljenaBicikla .Where(x => x.BiciklStanje.BiciklId == request.Id) .Where(x => ( (x.DatumPreuzimanja.Date >= request.DatumPreuzimanja.Date && x.DatumPreuzimanja.Date <= request.DatumVracanja.Date) || (x.DatumVracanja.Date >= request.DatumPreuzimanja.Date && x.DatumVracanja.Date <= request.DatumVracanja.Date) ) || ( (request.DatumPreuzimanja.Date >= x.DatumPreuzimanja.Date && request.DatumPreuzimanja.Date <= x.DatumVracanja.Date) || (request.DatumVracanja.Date >= x.DatumPreuzimanja.Date && request.DatumVracanja.Date <= x.DatumVracanja.Date) ) ) .ToList(); int ukupno_dostupno = ukupno_u_skladistu - ukupno_u_kosarici - broj_termina_kolizija.Count(); if (request.Kolicina > ukupno_dostupno) { if (ukupno_dostupno == 0) { throw new UserException("Nema dostupnih termina za odabrani dan ili vremenski opseg."); } throw new UserException("Biciklo nije dostupno u traženoj količini za odabrani vremenski opseg."); } var PostojecaStvaka = _context.TerminStavka.Where(x => x.KlijentId == Klijent.Id && x.BiciklId == request.Id && x.DatumPreuzimanja == request.DatumPreuzimanja && x.DatumVracanja == request.DatumVracanja).FirstOrDefault(); if (PostojecaStvaka != null) { PostojecaStvaka.Kolicina += request.Kolicina; } else { _context.TerminStavka.Add(new TerminStavka { KlijentId = Klijent.Id, BiciklId = request.Id, Kolicina = request.Kolicina, DatumPreuzimanja = request.DatumPreuzimanja.Date, DatumVracanja = request.DatumVracanja.Date.AddHours(23).AddMinutes(59).AddSeconds(59) }); } _context.SaveChanges(); return(true); }
private void buttonVoziloGod_Click(object sender, EventArgs e) { ISession session = DataLayer.GetSession(); ITransaction transakcija = session.BeginTransaction(); if (radioButtonBicikl.Checked) { //naziv rama je naziv modela greska u imenovanju if (textBoxNazivRama.Text != "" && textBoxProizvodjac.Text != "" && textBoxVelicinaRama.Text != "" && listBoxZaposleni.SelectedIndex != -1) { Bicikl vozilo = new Bicikl(); vozilo.Model = textBoxNazivRama.Text; vozilo.Proizvodjac = textBoxProizvodjac.Text; vozilo.Ram = int.Parse(textBoxVelicinaRama.Text); // vozilo.IdZaposleni = null; //} //else //{ //Mapiranje ovo samo radi Dostavljac dostavljac = session.Load <Dostavljac>(((Dostavljac)listBoxZaposleni.SelectedItem).Id); vozilo.IdZaposleni = dostavljac; session.Save(vozilo); dostavljac.Vozila.Add(vozilo); transakcija.Commit(); //session.Save(vozilo); //transakcija.Commit(); } else { MessageBox.Show("Unesite sve podatke!"); } } else if (radioButtonSkuter.Checked) { if (textBoxNazivRama.Text != "" && textBoxProizvodjac.Text != "" && textBoxBrojDozvole.Text != "" && textBoxRegistracioniBroj.Text != "" && listBoxZaposleni.SelectedIndex != -1) { Skuter skuter = new Skuter(); skuter.Model = textBoxNazivRama.Text; skuter.Proizvodjac = textBoxProizvodjac.Text; skuter.Registracija = textBoxRegistracioniBroj.Text; skuter.Dozvola = int.Parse(textBoxBrojDozvole.Text); if (listBoxZaposleni.SelectedIndex != -1) { Dostavljac dostavljac = session.Load <Dostavljac>(((Dostavljac)listBoxZaposleni.SelectedItem).Id); skuter.IdZaposleni = dostavljac; session.Save(skuter); dostavljac.Vozila.Add(skuter); transakcija.Commit(); } else { session.Save(skuter); transakcija.Commit(); } } else { MessageBox.Show("Unesite sve podatke!"); } } else if (radioButtonAutomobil.Checked) { if (textBoxNazivRama.Text != "" && textBoxProizvodjac.Text != "" && textBoxBrojDozvole.Text != "" && textBoxRegistracioniBroj.Text != "" && listBoxZaposleni.SelectedIndex != -1) { Automobil skuter = new Automobil(); skuter.Model = textBoxNazivRama.Text; skuter.Proizvodjac = textBoxProizvodjac.Text; skuter.Registracija = textBoxRegistracioniBroj.Text; skuter.Dozvola = int.Parse(textBoxBrojDozvole.Text); if (listBoxZaposleni.SelectedIndex != -1) { Dostavljac dostavljac = session.Load <Dostavljac>(((Dostavljac)listBoxZaposleni.SelectedItem).Id); skuter.IdZaposleni = dostavljac; session.Save(skuter); dostavljac.Vozila.Add(skuter); transakcija.Commit(); } else { session.Save(skuter); transakcija.Commit(); } } else { MessageBox.Show("Unesite sve podatke!"); } } else { MessageBox.Show("Izaberite tip vozila koji ubacujete"); } session.Close(); this.Close(); }
public StatusCodeResult OdaberiTermin(IznajmiBiciklVM VM) { Bicikl Bicikl = db.Bicikl .Include(x => x.BiciklStanje) .Where(x => x.BiciklId == VM.Id) .Where(x => x.Stanje == Stanje.Korišteno) .FirstOrDefault(); if (Bicikl == null) { return(new NotFoundResult());// 404 } if (!ModelState.IsValid || VM.DatumPreuzimanja.Date < DateTime.Now.Date || VM.DatumPreuzimanja.Date > VM.DatumVracanja.Date) { return(new UnprocessableEntityResult()); // 422 } var Klijent = HttpContext.GetLogiraniKorisnik().Klijent; int ukupno_u_skladistu = Bicikl.BiciklStanje.Where(x => x.Aktivan == true).Sum(x => x.Kolicina); int ukupno_u_kosarici = db.TerminStavka.Where(x => x.KlijentId == Klijent.Id && x.BiciklId == VM.Id) .Where(x => ( (x.DatumPreuzimanja.Date >= VM.DatumPreuzimanja.Date && x.DatumPreuzimanja.Date <= VM.DatumVracanja.Date) || (x.DatumVracanja.Date >= VM.DatumPreuzimanja.Date && x.DatumVracanja.Date <= VM.DatumVracanja.Date) ) || ( (VM.DatumPreuzimanja.Date >= x.DatumPreuzimanja.Date && VM.DatumPreuzimanja.Date <= x.DatumVracanja.Date) || (VM.DatumVracanja.Date >= x.DatumPreuzimanja.Date && VM.DatumVracanja.Date <= x.DatumVracanja.Date) )) .Sum(x => x.Kolicina); var broj_termina_kolizija = db.RezervacijaIznajmljenaBicikla .Where(x => x.BiciklStanje.BiciklId == VM.Id) .Where(x => ( (x.DatumPreuzimanja.Date >= VM.DatumPreuzimanja.Date && x.DatumPreuzimanja.Date <= VM.DatumVracanja.Date) || (x.DatumVracanja.Date >= VM.DatumPreuzimanja.Date && x.DatumVracanja.Date <= VM.DatumVracanja.Date) ) || ( (VM.DatumPreuzimanja.Date >= x.DatumPreuzimanja.Date && VM.DatumPreuzimanja.Date <= x.DatumVracanja.Date) || (VM.DatumVracanja.Date >= x.DatumPreuzimanja.Date && VM.DatumVracanja.Date <= x.DatumVracanja.Date) ) ) .ToList(); int ukupno_dostupno = ukupno_u_skladistu - ukupno_u_kosarici - broj_termina_kolizija.Count(); if (VM.Kolicina > ukupno_dostupno) { if (ukupno_dostupno == 0) { return(new BadRequestResult()); // 400 } return(new StatusCodeResult(417)); } var PostojecaStvaka = db.TerminStavka.Where(x => x.KlijentId == Klijent.Id && x.BiciklId == VM.Id && x.DatumPreuzimanja == VM.DatumPreuzimanja && x.DatumVracanja == VM.DatumVracanja).FirstOrDefault(); if (PostojecaStvaka != null) { PostojecaStvaka.Kolicina += VM.Kolicina; } else { db.TerminStavka.Add(new TerminStavka { KlijentId = Klijent.Id, BiciklId = VM.Id, Kolicina = VM.Kolicina, DatumPreuzimanja = VM.DatumPreuzimanja, DatumVracanja = VM.DatumVracanja.AddHours(23).AddMinutes(59).AddSeconds(59) }); } db.SaveChanges(); return(new OkResult()); // 200 }