public void OIB_ValidacijaInvalid() { string oib = "1246"; bool valid = OIB.CheckOIB(oib); Assert.IsFalse(valid); }
public void OIB_ValidacijaValid() { string oib = "50050041051"; bool valid = OIB.CheckOIB(oib); Assert.IsTrue(valid); }
[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)); }