Exemplo n.º 1
0
        public async Task <IActionResult> Create([Bind("Id,Naziv,Grad")] Kompanija kompanija)
        {
            if (ModelState.IsValid)
            {
                _context.Add(kompanija);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(kompanija));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Create([Bind("Id,Naziv")] TipPrevoza tipPrevoza)
        {
            if (ModelState.IsValid)
            {
                _context.Add(tipPrevoza);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(tipPrevoza));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create([Bind("Id,Ime,Prezime,DatumRodjenja,Email,BrojTelefona")] Korisnik korisnik)
        {
            if (ModelState.IsValid)
            {
                _context.Add(korisnik);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(korisnik));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Create([Bind("Id,DrzavaId,Grad,Opis,Slika")] Destinacija destinacija)
        {
            if (ModelState.IsValid)
            {
                _context.Add(destinacija);
                await _context.SaveChangesAsync();

                return(RedirectToAction("List"));
            }
            ViewData["DrzavaId"] = new SelectList(_context.Drzava, "Id", "Naziv", destinacija.DrzavaId);
            return(View(destinacija));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Create([Bind("Id,DestinacijaId,Naziv,Opis,Adresa,Slika")] Smjestaj smjestaj)
        {
            if (ModelState.IsValid)
            {
                _context.Add(smjestaj);
                await _context.SaveChangesAsync();

                return(RedirectToAction("List"));
            }
            ViewData["DestinacijaId"] = new SelectList(_context.Destinacija, "Id", "Grad", smjestaj.DestinacijaId);
            return(View(smjestaj));
        }
        public async Task <IActionResult> Create([Bind("Id,KompanijaId,TipPrevozaId,Opis,Slika")] Prevoz prevoz)
        {
            if (ModelState.IsValid)
            {
                _context.Add(prevoz);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["KompanijaId"]  = new SelectList(_context.Kompanija, "Id", "Naziv", prevoz.KompanijaId);
            ViewData["TipPrevozaId"] = new SelectList(_context.TipPrevoza, "Id", "Naziv", prevoz.TipPrevozaId);
            return(View(prevoz));
        }
        public async Task <IActionResult> Create([Bind("Id,SmjestajId,DestinacijaId,PrevozId,Naziv,Opis,Slika,Pocetak,Kraj,Cijena,BrojMijesta")] Ponuda ponuda)
        {
            if (ModelState.IsValid)
            {
                ponuda.DatumKreiranja = DateTime.Now;
                _context.Add(ponuda);
                await _context.SaveChangesAsync();

                return(RedirectToAction("List"));
            }
            ViewData["DestinacijaId"] = new SelectList(_context.Destinacija, "Id", "Grad", ponuda.DestinacijaId);
            ViewData["PrevozId"]      = new SelectList(_context.Prevoz, "Id", "Opis", ponuda.PrevozId);
            ViewData["SmjestajId"]    = new SelectList(_context.Smjestaj, "Id", "Naziv", ponuda.SmjestajId);
            return(View(ponuda));
        }
        public async Task <IActionResult> Create(int ponudaId, Rezervacija rezervacija)
        {
            if (rezervacija == null)
            {
                return(NotFound());
            }
            int korisnikId = rezervacija.KorisnikId;

            // Ako unosimo novog korisnika u bazu, tada cemo njega prvo dodati u bazu Korisnik
            if (korisnikId == 0)
            {
                // Provjeravamo da li se vec u tabeli Korisnik nalazi korisnik sa istim imenom, prezimenom i Email adresom
                var existingUser = _context.Korisnik
                                   .Where(x => x.Ime.ToLower().Trim() == rezervacija.Korisnik.Ime.ToLower().Trim() &&
                                          x.Prezime.ToLower().Trim() == rezervacija.Korisnik.Prezime.ToLower().Trim() &&
                                          x.Email.ToLower().Trim() == x.Email.ToLower().Trim())
                                   .FirstOrDefault();

                if (existingUser != null)
                {
                    korisnikId = existingUser.Id;
                }
                else
                {
                    _context.Add(rezervacija.Korisnik);
                    await _context.SaveChangesAsync().ConfigureAwait(false);

                    var noviKorisnik = _context.Korisnik
                                       .OrderByDescending(x => x.Id)
                                       .FirstOrDefault();
                    korisnikId = noviKorisnik.Id;
                }
            }

            var korisnik = await _context.Korisnik.FindAsync(korisnikId).ConfigureAwait(false);

            if (korisnik == null)
            {
                return(NotFound());
            }
            rezervacija.Korisnik = korisnik;

            var ponuda = await _context.Ponuda.FindAsync(rezervacija.PonudaId).ConfigureAwait(false);

            if (ponuda == null)
            {
                return(NotFound());
            }

            var rezervacijaPostoji = _context.Rezervacija
                                     .Where(e => e.PonudaId == ponudaId && e.KorisnikId == korisnikId)
                                     .FirstOrDefault();

            if (rezervacijaPostoji != null)
            {
                TempData["ErrorMessage"] = "Korisnik " + korisnik.Ime + " " + korisnik.Prezime + " [" + korisnik.Email + "]" +
                                           " je već rezervisao/la ponudu: " + ponuda.Naziv + "!";
                return(RedirectToAction("Index", new { ponudaId = rezervacija.PonudaId }));
            }

            if (ponuda.BrojMijesta == 0)
            {
                TempData["ErrorMessage"] = "Nema više slobodnih mijesta za ovu ponudu!";
                return(RedirectToAction("Index", new { ponudaId = rezervacija.PonudaId }));
            }

            if (ModelState.IsValid)
            {
                rezervacija.KorisnikId       = korisnikId;
                rezervacija.Iznos            = ponuda.Cijena;
                rezervacija.DatumRezervacije = DateTime.Now;

                ponuda.BrojMijesta -= 1;
                _context.Update(ponuda);

                _context.Add(rezervacija);
                await _context.SaveChangesAsync().ConfigureAwait(false);

                return(RedirectToAction("Index", new { ponudaId = rezervacija.PonudaId }));
            }

            var korisnikList = _context.Korisnik
                               .Select(x => new
            {
                Id     = x.Id,
                Podaci = x.Ime.ToString() + " " + x.Prezime.ToString() + " [" + x.Email.ToString() + "]"
            });

            ViewData["KorisnikId"] = new SelectList(korisnikList, "Id", "Podaci", rezervacija.KorisnikId);
            return(View(rezervacija));
        }