コード例 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Cijena,RokIstekaPonude,RokOtkazaPonude,CijenaOtkaza,IdZahtjev,IdPrijevoznik,IdStatusPonude")] PonudaPrijevoza ponudaPrijevoza)
        {
            if (id != ponudaPrijevoza.Id)
            {
                return(NotFound());
            }

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

                    TempData[Constants.Message]       = "Ažuriranje uspješno obavljeno";
                    TempData[Constants.ErrorOccurred] = false;
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PonudaPrijevozaExists(ponudaPrijevoza.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdPrijevoznik"]  = new SelectList(_context.Prijevoznik, "IdKorisnik", "IdKorisnik", ponudaPrijevoza.IdPrijevoznik);
            ViewData["IdStatusPonude"] = new SelectList(_context.StatusPonude, "Id", "Status", ponudaPrijevoza.IdStatusPonude);
            ViewData["IdZahtjev"]      = new SelectList(_context.Zahtjev, "Id", "Opis", ponudaPrijevoza.IdZahtjev);
            return(View(ponudaPrijevoza));
        }
コード例 #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
        public async Task <IActionResult> GotovPrijevozPrijevoznik(string StatusPonude, int IdPrijevoz)
        {
            var prijevoz = _context.Prijevoz.Where(p => p.Id == IdPrijevoz)
                           .Include(p => p.IdPonudaPrijevozaNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdStatusPonudeNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdPrijevoznikNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdPrijevoznikNavigation.IdKorisnikNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdStatusZahtjevaNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdNaruciteljNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation)
                           .FirstOrDefault();

            StatusPonude noviStatus = _context.StatusPonude.Where(s => s.Status == StatusPonude).FirstOrDefault();

            PonudaPrijevoza ponuda = _context.PonudaPrijevoza.Where(p => p.Id == prijevoz.IdPonudaPrijevoza).FirstOrDefault();

            prijevoz.IdPonudaPrijevozaNavigation.IdStatusPonude = noviStatus.Id;
            _context.PonudaPrijevoza.Update(ponuda);

            /*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 = "Informacije o prijevozu",
             *      Body = "Poštovani korisniče " + ponuda.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation.Ime + " " +
             *      ponuda.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation.Prezime + ", Vaš prijevoz je korisnik " +
             *      ponuda.IdPrijevoznikNavigation.IdKorisnikNavigation.Ime + " " + ponuda.IdPrijevoznikNavigation.IdKorisnikNavigation.Prezime +
             *      " označio kao " + noviStatus.Status + "."
             *  })
             *  {
             *      await smtpClient.SendMailAsync(message);
             *  }
             * }*/

            await _context.SaveChangesAsync();

            string urlString = "Details/" + prijevoz.Id.ToString();

            return(RedirectToAction(urlString));
        }
コード例 #4
0
        public PonudaPrijevoza Rezervacije(int IdPonuda, string noviStatus)
        {
            PonudaPrijevoza ponuda = _context.PonudaPrijevoza.Where(p => p.Id == IdPonuda)
                                     .Include(p => p.IdStatusPonudeNavigation)
                                     .Include(p => p.IdPrijevoznikNavigation.IdKorisnikNavigation)
                                     .Include(p => p.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation)
                                     .FirstOrDefault();

            StatusPonude status = _context.StatusPonude.Where(s => s.Status == noviStatus).FirstOrDefault();

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

            return(ponuda);
        }
コード例 #5
0
        //public async Task<IActionResult> Create([Bind("Id,Cijena,RokIstekaPonude,RokOtkazaPonude,CijenaOtkaza,IdZahtjev,IdPrijevoznik,IdStatusPonude")] PonudaPrijevoza ponudaPrijevoza)
        public async Task <IActionResult> Create(int IdZahtjev, [Bind("Id,Cijena,RokIstekaPonude,RokOtkazaPonude,CijenaOtkaza")] PonudaPrijevoza ponudaPrijevoza)
        {
            var             userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            ApplicationUser user   = _context.Users.Where(u => u.Id == userId).FirstOrDefault();


            if (ModelState.IsValid)
            {
                //mijenjanje statusa zahtjeva u PristiglePonude ako već nije
                Zahtjev zahtjev = _context.Zahtjev.Where(z => z.Id == IdZahtjev)
                                  .Include(z => z.IdStatusZahtjevaNavigation)
                                  .Include(z => z.IdNaruciteljNavigation.IdKorisnikNavigation).FirstOrDefault();

                if (zahtjev.IdStatusZahtjevaNavigation.Status == "Otvoreno")
                {
                    StatusZahtjeva status = _context.StatusZahtjeva.Where(s => s.Status == "PristiglePonude").FirstOrDefault();
                    zahtjev.IdStatusZahtjeva = status.Id;
                    _context.Zahtjev.Update(zahtjev);
                }

                PonudaPrijevoza novaPonudaPrijevoza = new PonudaPrijevoza
                {
                    Id              = ponudaPrijevoza.Id,
                    Cijena          = ponudaPrijevoza.Cijena,
                    RokIstekaPonude = ponudaPrijevoza.RokIstekaPonude,
                    RokOtkazaPonude = ponudaPrijevoza.RokOtkazaPonude,
                    CijenaOtkaza    = ponudaPrijevoza.CijenaOtkaza,
                    IdZahtjev       = IdZahtjev,
                    IdPrijevoznik   = user.IdKorisnik,
                    IdStatusPonude  = 1
                };

                _context.Add(novaPonudaPrijevoza);

                await _context.SaveChangesAsync();

                TempData[Constants.Message]       = $"Ponuda prijevoza dodana.";
                TempData[Constants.ErrorOccurred] = false;

                PonudaPrijevoza ponuda = _context.PonudaPrijevoza.Where(p => p.Id == ponudaPrijevoza.Id).
                                         Include(p => p.IdPrijevoznikNavigation.IdKorisnikNavigation).FirstOrDefault();


                if (zahtjev.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("*****@*****.**", zahtjev.IdNaruciteljNavigation.IdKorisnikNavigation.Email)
                    {
                        Subject = "Primljena ponuda",
                        Body = "Poštovani korisniče " + zahtjev.IdNaruciteljNavigation.IdKorisnikNavigation.Ime + " "
                               + zahtjev.IdNaruciteljNavigation.IdKorisnikNavigation.Prezime + ", zaprimili ste ponudu prijevoza od korisnika "
                               + ponuda.IdPrijevoznikNavigation.IdKorisnikNavigation.Ime + " " +
                               ponuda.IdPrijevoznikNavigation.IdKorisnikNavigation.Prezime + ". Ponuda se odnosi na zahtjev s opisom: "
                               + zahtjev.Opis + "."
                    })
                    {
                        await smtpClient.SendMailAsync(message);
                    }
                }

                string urlString = "Details/" + IdZahtjev.ToString();
                return(RedirectToAction(urlString, "ProsireniZahtjevi"));
            }
            ViewData["IdPrijevoznik"]  = new SelectList(_context.Prijevoznik, "IdKorisnik", "IdKorisnik", ponudaPrijevoza.IdPrijevoznik);
            ViewData["IdStatusPonude"] = new SelectList(_context.StatusPonude, "Id", "Status", ponudaPrijevoza.IdStatusPonude);
            ViewData["IdZahtjev"]      = new SelectList(_context.Zahtjev, "Id", "Opis", ponudaPrijevoza.IdZahtjev);
            return(View(ponudaPrijevoza));
        }