public async Task <IActionResult> OtkaziPrijevoz(int IdPrijevoz)
        {
            var prijevoz = _context.Prijevoz.Where(p => p.Id == IdPrijevoz)
                           .Include(p => p.IdPonudaPrijevozaNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdStatusZahtjevaNavigation)
                           .FirstOrDefault();

            var zahtjev = _context.Zahtjev.Where(m => m.Id == prijevoz.IdPonudaPrijevozaNavigation.IdZahtjev).FirstOrDefault();

            StatusZahtjeva noviStatus = _context.StatusZahtjeva.Where(s => s.Status == "PristiglePonude").FirstOrDefault();

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


            var ponudaPrijevoza = _context.PonudaPrijevoza.Where(m => m.Id == prijevoz.IdPonudaPrijevoza).FirstOrDefault();

            StatusPonude statusGotovo = _context.StatusPonude.Where(s => s.Status == "Otvoreno").FirstOrDefault();

            ponudaPrijevoza.IdStatusPonude = statusGotovo.Id;
            _context.PonudaPrijevoza.Update(ponudaPrijevoza);

            _context.Prijevoz.Remove(prijevoz);

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

            await _context.SaveChangesAsync();

            return(RedirectToAction(urlString, "ProsireniZahtjevi"));
        }
예제 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Status")] StatusPonude statusPonude)
        {
            if (id != statusPonude.Id)
            {
                return(NotFound());
            }

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

                    TempData[Constants.Message]       = "Ažuriranje uspješno obavljeno";
                    TempData[Constants.ErrorOccurred] = false;
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!StatusPonudeExists(statusPonude.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(statusPonude));
        }
예제 #3
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"));
        }
예제 #4
0
        public async Task <IActionResult> Create([Bind("Id,Status")] StatusPonude statusPonude)
        {
            if (ModelState.IsValid)
            {
                _context.Add(statusPonude);
                await _context.SaveChangesAsync();

                TempData[Constants.Message]       = $"Status ponude  {statusPonude.Status} uspješno dodan";
                TempData[Constants.ErrorOccurred] = false;
                return(RedirectToAction(nameof(Index)));
            }
            return(View(statusPonude));
        }
        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));
        }
예제 #6
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);
        }