Пример #1
0
        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"));
        }
Пример #2
0
        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
        }
Пример #3
0
        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);
        }
Пример #4
0
        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();
        }
Пример #5
0
        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
        }