Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. # RPR Biblioteka
  2. ---
  3. Disclaimer: repozitorij je bio privatan za vrijeme trajanja zadace
  4.  
  5. ## Podaci o autoru:
  6. Elvir Crncevic, index: 17455
  7.  
  8. ## User credentials za koristenje aplikacije
  9.  
  10. * Bibliotekar
  11. * Username: bibliotekar0
  12. * Password: aaa
  13. * Admin
  14. * Username: admin
  15. * Password: admin
  16. * Clan
  17. * Username: clan0
  18. * Password: aaa
  19.  
  20. ## Baza podataka
  21.  
  22. ### Tabele
  23. 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,
  24. ### Servisi
  25. 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:
  26.  
  27. ApplicationDbContext _context;
  28. private static readonly int SifraLength = 10;
  29.  
  30. private List<Knjiga> _knjigasCache;
  31.  
  32. private List<Knjiga> _knjige
  33. {
  34. get
  35. {
  36. if (_knjigasCache == null)
  37. return _knjigasCache = _context.Knjigas.Include("SpisakAutora").ToList();
  38. else
  39. return _knjigasCache;
  40. }
  41. }
  42. 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
  43.  
  44. using (ApplicationDbContext context = new ApplicationDbContext())
  45. {
  46. Run(new LogInForm(DataAPI.Inject(context)));
  47. }
  48.  
  49. ...
  50.  
  51. dataAPI.UserAPI = new UserManager(context);
  52. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement