Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # RPR Biblioteka
- ---
- Disclaimer: repozitorij je bio privatan za vrijeme trajanja zadace
- ## Podaci o autoru:
- Elvir Crncevic, index: 17455
- ## User credentials za koristenje aplikacije
- * Bibliotekar
- * Username: bibliotekar0
- * Password: aaa
- * Admin
- * Username: admin
- * Password: admin
- * Clan
- * Username: clan0
- * Password: aaa
- ## Baza podataka
- ### Tabele
- Za modeliranje baze podataka je koristen OracleManagedDataAccess.EntityFramework. To je omogucilo generisanje baze podataka uz 'neznatne' izmjene u samom modelu. U klasi ApplicationDbContext definisu su definisane sve tabele pomocu DBset propertija koje su napunjene kroz Seed metodu u Configuration klasi. Ova metoda je pokrenuta prije slanja zadace i nije preporucljivo njeno ponovno pokretanje. O dio ORM-a se nalaze u Bibliteka.Model,
- ### Servisi
- Biblioteka.BLL sadrzi service koji su zaduzeni za CRUD operacije. Svaki servis posjeduje objekat ApplicationDbContext preko kojeg pristupa bazi podataka. Kljucni dio implementacije svakog servisa (za primjer je uzet servis za knjige) je sljedece lazy (ili bar pokusaj) loadanja:
- ApplicationDbContext _context;
- private static readonly int SifraLength = 10;
- private List<Knjiga> _knjigasCache;
- private List<Knjiga> _knjige
- {
- get
- {
- if (_knjigasCache == null)
- return _knjigasCache = _context.Knjigas.Include("SpisakAutora").ToList();
- else
- return _knjigasCache;
- }
- }
- Ideja je da se svako pozivanje kontejnerskog objekta presretne sa pozivom na bazu(ako je to neophodno) i da se cache-iraju podaci ako to vec nije ucinjeno. To je ucinjeno za sve servise(managere) koji na pocetku dobijaju ApplicationDbContext
- using (ApplicationDbContext context = new ApplicationDbContext())
- {
- Run(new LogInForm(DataAPI.Inject(context)));
- }
- ...
- dataAPI.UserAPI = new UserManager(context);
- ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement