Ejemplo n.º 1
0
        public void BuildEmailTemplate(int regId)
        {
            string webRoot = _env.WebRootPath;
            string body    = System.IO.File.ReadAllText(webRoot + "/EmailTemplate" + "/Text" + ".cshtml");

            var korisnik = _db.Klijenti.Where(x => x.Id == regId).FirstOrDefault();
            var url      = _config.WebHost + "/Confirm?regId=" + regId;

            body = body.Replace("@ViewBag.ConfirmationLink", url);
            body = body.ToString();

            //Send email using emailService
            _emailService.BuildEmailTemplate("Potvrda korisnickog racuna za autobusku stanicu", body, korisnik.Email);
        }
        public IActionResult DodajRezervaciju(RezervacijePrikazFormePlacanjeVM model)
        {
            Korisnik logirani = HttpContext.GetLogiraniKorisnik();

            if (string.IsNullOrEmpty(model.BrojKreditneKartice))
            {
                return(Content("niste unijeli kreditnu karticu"));
            }

            //Add new credit card
            Kartica novaKartica = new Kartica
            {
                BrojKartice        = model.BrojKreditneKartice,
                Klijenti           = (Klijenti)logirani,
                SredstvoPlacanjaId = 1,
                Banka = Banke.VratiBanke().Find(x => x.Value == model.OdabranaBankaId.ToString()).Text,
            };

            _db.Kartice.Add(novaKartica);

            //Picked reservation travels
            var ponudaRezervacije = _db.PosjecujeLokacije.Include(x => x.Linije)
                                    .FirstOrDefault(x => x.Id == Convert.ToInt32(HttpContext.Session.GetString("PonudaId")));

            //Crete new transaction of cards
            var transakcijaNova = new Transakcija();

            transakcijaNova.brojTransakcije = "1";
            transakcijaNova.datumKupovine   = DateTime.Now;
            transakcijaNova.otkazano        = false;
            transakcijaNova.Status          = "zaprimljena";
            transakcijaNova.Klijenti        = (Klijenti)logirani;
            transakcijaNova.Kartica         = novaKartica;

            TransakcijaStavke stavkeTransakcije = new TransakcijaStavke();

            //Add new transaction of cards in database
            foreach (var item in model.ProsliModel.Mjesta)
            {
                Karta karta = new Karta();

                stavkeTransakcije.Karta       = karta;
                stavkeTransakcije.Kolicina    = model.ProsliModel.Mjesta.Count;
                stavkeTransakcije.Transakcija = transakcijaNova;

                if (model.UkupnaCijenaPopust == 0)
                {
                    stavkeTransakcije.UkupnaCijena = model.UkupnaCijena;
                }
                else
                {
                    stavkeTransakcije.UkupnaCijena = model.UkupnaCijenaPopust;
                }

                karta.PosjecujeLokacije = ponudaRezervacije;
                karta.Aktivna           = true;
                karta.brojSjedista      = item.ToString();
                karta.BrojKarte         = "XXX-123";
                karta.datumPutovanja    = MySessionExtensions.Get <DateTime>(HttpContext.Session, "DatumRezervacije");

                //karta.datumPutovanja = new DateTime(Convert.ToInt32(godina[0]), Convert.ToInt32(razdvojeniDatum[1]), Convert.ToInt32(razdvojeniDatum[0]));
                karta.TipKarte = _db.TipoviKarte.FirstOrDefault(x => x.Tip == HttpContext.Session.GetString("TipKarte"));

                _db.Karte.Add(karta);
            }
            _db.TransakcijaStavke.Add(stavkeTransakcije);
            _db.SaveChanges();

            //Send user a email
            string bodyText = "Poštovani Uspješno ste platili rezervaciju za ponudu " + ponudaRezervacije.Linije.Naziv + " u iznosu od " + stavkeTransakcije.UkupnaCijena + "na dan " + transakcijaNova.datumKupovine.ToShortDateString() + " Pozdrav Vaša autobuska stanica";

            _emailService.BuildEmailTemplate("Potvrda  o uspješnosti rezervacije", bodyText, logirani.Email);

            return(Content("Rezervacija uspjesno provedena"));
        }