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)); }
// 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")); }
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)); }
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); }
//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)); }