コード例 #1
0
        public void OIB_ValidacijaInvalid()
        {
            string oib   = "1246";
            bool   valid = OIB.CheckOIB(oib);

            Assert.IsFalse(valid);
        }
コード例 #2
0
        public void OIB_ValidacijaValid()
        {
            string oib   = "50050041051";
            bool   valid = OIB.CheckOIB(oib);

            Assert.IsTrue(valid);
        }
コード例 #3
0
        [ValidateAntiForgeryToken] //mehanizam koji nas štiti od cross site request
                                   // forgery  (poziva post metode izvan naše aplikacije)
        public ActionResult Azuriraj(Student s)
        {
            if (!OIB.CheckOIB(s.Oib))
            {
                ModelState.AddModelError("Oib", "Neispravan OIB");
            }

            DateTime datumPrije18g = DateTime.Now.AddYears(-18);

            if (s.DatumRodjenja > datumPrije18g)
            {
                ModelState.AddModelError("DatumRodjenja", "Osoba mora biti starija od 18");
            }

            //Ako je korisnik odabrao sliku spremamo je u direktorij Images
            if (s.ImageFile != null)
            {
                string fileName  = Path.GetFileNameWithoutExtension(s.ImageFile.FileName);
                string extension = Path.GetExtension(s.ImageFile.FileName);

                //kontroliramo ekstenziju datoteke
                if (extension == ".jpg" || extension == ".jpeg" || extension == ".png")
                {
                    fileName = fileName + "_" + DateTime.Now.Ticks + extension; //umjesto DateTime.Now.Ticks možemo koristiti i Guid.NewGuid()
                    string folderSlike = "~/Images/";
                    //u model spremamo putanju do slike
                    s.SlikaPutanja = folderSlike + fileName;
                    //generiramo putanju do slike na disku gdje je želimo spremiti
                    fileName = Path.Combine(Server.MapPath(folderSlike), fileName);
                    s.ImageFile.SaveAs(fileName);
                }
                else
                {
                    ModelState.AddModelError("SlikaPutanja", "Nepodržana ekstenzija");
                }
            }

            //ModelState.IsValid - provjera ispravnosti podataka
            //npr. ako je atribut int tipa a mi smo unijeli string u to polje na formi
            //neće proći validaciju i preusmjerit će korisnika na
            //stranicu za ažuriranje i ispisati grešku validacije
            //više o tome na narednim vježbama
            if (ModelState.IsValid)
            {
                //ako model ima vrijednost parametra Id različito od 0 tada znamo da korisnik ažurira podatke o studentu
                if (s.Id != 0)
                {
                    bazaPodataka.Entry(s).State = System.Data.Entity.EntityState.Modified;
                }
                //ako model ima vrijednost parametra Id jednak 0 tada se radi o dodavanju novog studenta
                else
                {
                    bazaPodataka.PopisStudenata.Add(s);
                }
                bazaPodataka.SaveChanges();

                //Preusmjeravanje na metodu koja vraća popis studenata
                return(RedirectToAction("Popis"));
            }

            //ukoliko je došlo do greške validacije potrebno je ponovno prikazati formu za unos s unešenim podacima
            //i ovisno dal se kreira (Id == 0) ili ažurira student modificiramo naslov stranice
            if (s.Id == 0)
            {
                ViewBag.Title = "Kreiranje studenta";
                ViewBag.Novi  = true;
            }
            else
            {
                ViewBag.Title = "Ažuriranje podataka o studentu";
                ViewBag.Novi  = false;
            }

            var smjerovi = bazaPodataka.PopisSmjerova.OrderBy(x => x.Naziv).ToList();

            smjerovi.Insert(0, new Smjer {
                Sifra = "", Naziv = "Nedefinirano"
            });
            ViewBag.Smjerovi = smjerovi;

            return(View(s));
        }