コード例 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,OcjenaPrijevoznika,OcjenaNarucitelja,OpisUslugePrijevoznika,OpisUslugeNarucitelja,IdPonudaPrijevoza")] Prijevoz prijevoz)
        {
            if (id != prijevoz.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(prijevoz);
                    await _context.SaveChangesAsync();

                    TempData[Constants.Message]       = "Ažuriranje uspješno obavljeno";
                    TempData[Constants.ErrorOccurred] = false;
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PrijevozExists(prijevoz.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdPonudaPrijevoza"] = new SelectList(_context.PonudaPrijevoza, "Id", "Id", prijevoz.IdPonudaPrijevoza);
            return(View(prijevoz));
        }
コード例 #2
0
        // POST: Otkaži zahtjev za rezervacijom
        public async Task <IActionResult> PrihvatiRezervaciju(int IdPonuda)
        {
            PonudaPrijevoza ponuda = _context.PonudaPrijevoza.Where(p => p.Id == IdPonuda)
                                     .Include(p => p.IdPrijevoznikNavigation.IdKorisnikNavigation)
                                     .Include(p => p.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation)
                                     .Include(p => p.IdStatusPonudeNavigation).FirstOrDefault();
            StatusPonude status = _context.StatusPonude.Where(s => s.Status == "Rezervirano").FirstOrDefault();

            ponuda.IdStatusPonude = status.Id;
            _context.PonudaPrijevoza.Update(ponuda);

            Zahtjev        zahtjev     = _context.Zahtjev.Where(z => z.Id == ponuda.IdZahtjev).FirstOrDefault();
            StatusZahtjeva rezervirano = _context.StatusZahtjeva.Where(s => s.Status == "Rezervirano").FirstOrDefault();

            zahtjev.IdStatusZahtjeva = rezervirano.Id;
            _context.Zahtjev.Update(zahtjev);

            Prijevoz prijevoz = new Prijevoz
            {
                IdPonudaPrijevoza = IdPonuda
            };

            _context.Prijevoz.Add(prijevoz);


            await _context.SaveChangesAsync();

            TempData[Constants.Message]       = $"Rezervacija ponude uspješna";
            TempData[Constants.ErrorOccurred] = false;

            if (ponuda.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation.PrimaEmail)
            {
                var smtpClient = new SmtpClient
                {
                    Host        = "smtp.gmail.com", // set your SMTP server name here
                    Port        = 587,              // Port
                    EnableSsl   = true,
                    Credentials = new NetworkCredential("*****@*****.**", "carryon1")
                };

                using (var message = new MailMessage("*****@*****.**", ponuda.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation.Email)
                {
                    Subject = "Uspješna rezervacija prijevoza",
                    Body = "Poštovani korisniče " + ponuda.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation.Ime + " " +
                           ponuda.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation.Prezime + ", Vaš zahtjev za rezervacijom ponude prijevoza od korisnika " +
                           ponuda.IdPrijevoznikNavigation.IdKorisnikNavigation.Ime + " " + ponuda.IdPrijevoznikNavigation.IdKorisnikNavigation.Prezime +
                           " je uspješna. Rezervacija se odnosila na zahtjev s opisom: " + ponuda.IdZahtjevNavigation.Opis + "."
                })
                {
                    await smtpClient.SendMailAsync(message);
                }
            }

            string urlString = "Details/" + ponuda.IdZahtjev.ToString();

            return(RedirectToAction(urlString, "ProsireniZahtjevi"));
        }
コード例 #3
0
 private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
 {
     UkljuciGumb();
     TabKontrola.SelectedIndex += 1;
     CmbPrirez.ItemsSource      = Prirezi.ListaPrireza();
     CmbPrirez.SelectedIndex    = 0;
     CmbPrijevoz.ItemsSource    = Prijevoz.ListaStanica();
     CmbPrijevoz.SelectedIndex  = 0;
 }
コード例 #4
0
        private void CmbPrijevoz_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            IznosPrijevoza = Math.Round(Prijevoz.VratiIznosPrijevoza(CmbPrijevoz.SelectedItem.ToString()), 2);
            var prijevoz = IznosPrijevoza;

            prijevoz           += GetNeto();
            LblPrijevoz.Content = prijevoz.ToString("C", new CultureInfo("hr-HR"));
            var odbitak = decimal.Parse(TxtBoxOdbici.Value.ToString());

            VratiTotal(prijevoz, odbitak);
        }
コード例 #5
0
        public async Task <IActionResult> Create([Bind("Id,OcjenaPrijevoznika,OcjenaNarucitelja,OpisUslugePrijevoznika,OpisUslugeNarucitelja,IdPonudaPrijevoza")] Prijevoz prijevoz)
        {
            if (ModelState.IsValid)
            {
                _context.Add(prijevoz);
                await _context.SaveChangesAsync();

                TempData[Constants.Message]       = $"Prijevoz dodan.";
                TempData[Constants.ErrorOccurred] = false;
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdPonudaPrijevoza"] = new SelectList(_context.PonudaPrijevoza, "Id", "Id", prijevoz.IdPonudaPrijevoza);
            return(View(prijevoz));
        }
コード例 #6
0
        public IActionResult Ukloni(int id)
        {
            int to, from;
            TeretRezervacija teret    = _db.TeretRezervacija.Where(x => x.TeretRezervacijaID == id).FirstOrDefault();
            Prijevoz         prijevoz = _db.Prijevoz.Where(x => x.PrijevozID == teret.PrijevozID).FirstOrDefault();

            to   = teret.UserID;
            from = teret.Prijevoz.PrijevoznikID;
            if (prijevoz != null)
            {
                _db.Prijevoz.Remove(prijevoz);
                teret.PrijevozID = null;
                teret.Prihvaceno = false;
                _db.SaveChanges();
            }
            _notifikacijaService.posaljiNotifikacijeKlijentu(to, from, new NotifikacijaVM()
            {
                Poruka = "Prijevoznik je otkazao vasu rezervaciju!",
                Url    = "#"
            });
            return(RedirectToActionPermanent(nameof(Index)));
        }
コード例 #7
0
        public async Task <IActionResult> NoviPrijevozSnimiAsync(PrijevozNoviVM model)
        {
            if (!ModelState.IsValid)
            {
                return(View(nameof(NoviPrijevoz), model));
            }
            //kreiranje klijenta
            string username = model.Email;
            await _signInManager.CreateAsync(new ApplicationUser
            {
                UserName          = username,
                Email             = username,
                Ime               = model.Ime,
                Prezime           = model.Prezime,
                Adresa            = model.Adresa,
                Grad              = _context.Grad.Where(g => g.GradID == 1).SingleOrDefault(),
                JMBG              = model.jmbg,
                DatumRodjenja     = DateTime.Parse(model.DatumRodjenja),
                DatumRegistracije = System.DateTime.Now,
                Spol              = model.Spol,
                Slika             = "nema",
            });

            var klijent = await _signInManager.FindByEmailAsync(username);

            //pravljenje novog prijevoza
            Prijevoz novi = new Prijevoz();

            novi.DatumRezervacije = DateTime.Now;
            novi.DatumPrijevoza   = DateTime.Parse(model.DatumPrijevoza);
            novi.NacinPlacanja    = model.NacinPlacanja;
            novi.TipPrijevoza     = model.TipPrijevoza;
            novi.Klijent          = klijent;

            //na osnovu tipa prijevoza se generise cijene
            if (model.TipPrijevoza == 1)
            {
                novi.CijenaCekanjaPoSatu = 10;
                novi.CijenaPoKilometru   = 2;
                novi.CijenaPoVozacu      = 50;
            }
            else if (model.TipPrijevoza == 2)
            {
                novi.CijenaCekanjaPoSatu = 8;
                novi.CijenaPoKilometru   = 1;
                novi.CijenaPoVozacu      = 30;
            }
            else
            {
                novi.CijenaCekanjaPoSatu = 5;
                novi.CijenaPoKilometru   = 0.8;
                novi.CijenaPoVozacu      = 20;
            }

            //postavljanje broj vozaca i vozila na 0
            novi.BrojVozaca = 0;
            novi.BrojVozila = 0;

            _context.Add(novi);
            _context.SaveChanges();


            int pID = _context.Prijevoz.Where(p => p.Klijent.Email == klijent.Email).Select(s => s.PrijevozID).SingleOrDefault();

            return(RedirectToAction(nameof(DodajVozilaPrijevoz), new { id = pID }));
        }
コード例 #8
0
        public IActionResult Dodaj(PrijevozDodajVM model, int id)
        {
            string                  _id              = User.FindFirstValue(ClaimTypes.NameIdentifier);
            int                     _PrijevoznikID   = _db.Prijevoznik.Where(x => x.UserID == int.Parse(_id)).Select(x => x.PrijevoznikID).FirstOrDefault();
            bool                    trigger          = false;
            List <Prijevoz>         prijevozi        = _db.Prijevoz.ToList();
            List <TeretRezervacija> teretRezervacija = _db.TeretRezervacija.ToList();

            foreach (var item in teretRezervacija)
            {
                foreach (var item2 in prijevozi)
                {
                    if (item.PrijevozID == item2.PrijevozID && item2.DatumPotvrde == null && item.Prijevoz.PrijevoznikID == _PrijevoznikID)
                    {
                        Prijevoz prijevoz = _db.Prijevoz.Where(x => x.PrijevozID == item2.PrijevozID).FirstOrDefault();
                        if (prijevoz != null)
                        {
                            prijevoz.DatumPotvrde   = DateTime.Now;
                            prijevoz.DatumPrijevoza = model.DatumPrijevoza;
                            prijevoz.Kilometraza    = model.Kilometraza;
                            prijevoz.Cijena         = model.Cijena;
                            prijevoz.TipPrijevoza   = model.TipPrijevoza;
                            prijevoz.VoziloID       = model.VoziloID;
                            TeretRezervacija temp = _db.TeretRezervacija.Where(x => x.TeretRezervacijaID == id).FirstOrDefault();
                            temp.Prihvaceno = true;
                            _db.SaveChanges();
                            _notifikacijaService.posaljiNotifikacijeKlijentu(temp.UserID, temp.Prijevoz.PrijevoznikID, new NotifikacijaVM()
                            {
                                Poruka = "Prijevoznik je prihvatio vasu rezervaciju!",
                                Url    = "#"
                            });
                        }
                        trigger = true;
                    }
                }
            }
            if (!trigger)
            {
                Prijevoz p = new Prijevoz()
                {
                    PrijevoznikID  = _PrijevoznikID,
                    Cijena         = model.Cijena,
                    DatumPotvrde   = DateTime.Now,
                    DatumPrijevoza = model.DatumPrijevoza,
                    Kilometraza    = model.Kilometraza,
                    TipPrijevoza   = model.TipPrijevoza,
                    VoziloID       = model.VoziloID
                };
                _db.Prijevoz.Add(p);
                _db.SaveChanges();
                TeretRezervacija temp = _db.TeretRezervacija.Where(x => x.TeretRezervacijaID == id).FirstOrDefault();
                if (temp != null)
                {
                    temp.PrijevozID = p.PrijevozID;
                    temp.Prihvaceno = true;
                    _db.SaveChanges();
                }
                _notifikacijaService.posaljiNotifikacijeKlijentu(temp.UserID, temp.Prijevoz.PrijevoznikID, new NotifikacijaVM()
                {
                    Poruka = "Prijevoznik je prihvatio vasu rezervaciju!",
                    Url    = "#"
                });
            }
            return(RedirectToActionPermanent(nameof(Index)));
        }
コード例 #9
0
        public async Task <IActionResult> MojZahtjev(int id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var zahtjev = _context.Zahtjev.Where(m => m.Id == id).Include(m => m.IdStatusZahtjevaNavigation)
                          .Include(m => m.IdNaruciteljNavigation)
                          .Include(m => m.IdNaruciteljNavigation.IdKorisnikNavigation).FirstOrDefault();

            if (id != zahtjev.Id)
            {
                return(NotFound());
            }

            var lokacijeZahtjeva = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == id)
                                   .Include(z => z.IdLokacijaNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdVrstaLokacijeNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdMjestoNavigation);

            Lokacija pocetnaLokacija   = null;
            Lokacija odredisnaLokacija = null;

            foreach (var lokacija in lokacijeZahtjeva)
            {
                if (lokacija.IdLokacijaNavigation.IdVrstaLokacijeNavigation.Vrsta == "po?etna")
                {
                    pocetnaLokacija = lokacija.IdLokacijaNavigation;
                }
                else
                {
                    odredisnaLokacija = lokacija.IdLokacijaNavigation;
                }
            }

            Mjesto pocetnoMjesto   = pocetnaLokacija.IdMjestoNavigation;
            Mjesto odredisnoMjesto = odredisnaLokacija.IdMjestoNavigation;


            ProsireniZahtjevViewModel prosireniZahtjev = new ProsireniZahtjevViewModel();

            prosireniZahtjev.Id                         = zahtjev.Id;
            prosireniZahtjev.VrijemePocetka             = zahtjev.VrijemePocetka;
            prosireniZahtjev.VrijemeZavrsetka           = zahtjev.VrijemeZavrsetka;
            prosireniZahtjev.CijenaNeizvrsenja          = zahtjev.CijenaNeizvrsenja;
            prosireniZahtjev.Sirina                     = zahtjev.Sirina;
            prosireniZahtjev.Visina                     = zahtjev.Visina;
            prosireniZahtjev.Duiljina                   = zahtjev.Duiljina;
            prosireniZahtjev.Masa                       = zahtjev.Masa;
            prosireniZahtjev.Opis                       = zahtjev.Opis;
            prosireniZahtjev.IdNarucitelj               = zahtjev.IdNarucitelj;
            prosireniZahtjev.IdNaruciteljNavigation     = zahtjev.IdNaruciteljNavigation;
            prosireniZahtjev.IdStatusZahtjeva           = zahtjev.IdStatusZahtjeva;
            prosireniZahtjev.IdStatusZahtjevaNavigation = zahtjev.IdStatusZahtjevaNavigation;
            prosireniZahtjev.PocetnaLokacijaUlica       = pocetnaLokacija.Ulica;
            prosireniZahtjev.PocetnaLokacijaKucniBroj   = pocetnaLokacija.KucniBroj;
            prosireniZahtjev.PocetnoMjesto              = pocetnoMjesto.Naziv;
            prosireniZahtjev.PocetnoMjestoPbr           = pocetnoMjesto.PostanskiBroj;
            prosireniZahtjev.OdredisnaLokacijaUlica     = odredisnaLokacija.Ulica;
            prosireniZahtjev.OdredisnaLokacijaKucniBroj = odredisnaLokacija.KucniBroj;
            prosireniZahtjev.OdredisnoMjesto            = odredisnoMjesto.Naziv;
            prosireniZahtjev.OdredisnoMjestoPbr         = odredisnoMjesto.PostanskiBroj;

            var ponudePrijevoza = _context.PonudaPrijevoza.Where(p => p.IdZahtjev == zahtjev.Id)
                                  .Include(p => p.IdPrijevoznikNavigation)
                                  .Include(p => p.IdPrijevoznikNavigation.IdKorisnikNavigation)
                                  .Include(p => p.IdStatusPonudeNavigation).ToList();

            var vozila = _context.Vozilo.Include(z => z.IdPrijevoznikNavigation).ToList();

            ZahtjevPonudeViewModel zahtjevPonude = new ZahtjevPonudeViewModel();

            zahtjevPonude.ProsireniZahtjev = prosireniZahtjev;
            zahtjevPonude.PonudePrijevoza  = ponudePrijevoza;
            zahtjevPonude.Vozila           = vozila;

            //vrati ID prijevoza ako postoji
            if (_context.Prijevoz.Any(p => p.IdPonudaPrijevozaNavigation.IdZahtjev == zahtjev.Id))
            {
                Prijevoz prijevoz = _context.Prijevoz.Where(p => p.IdPonudaPrijevozaNavigation.IdZahtjev == zahtjev.Id).FirstOrDefault();
                ViewData["IdPrijevoz"] = prijevoz.Id;
            }
            else
            {
                ViewData["IdPrijevoz"] = null;
            }

            return(View(zahtjevPonude));
        }