Guest User

Untitled

a guest
Aug 3rd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. MVC 3/EF repository pattern and proper data access
  2. if (MembershipService.ValidateUser(model.UserName, model.Password))
  3. {
  4. User newUser = new User();
  5.  
  6. using (AccountRepository repo = new AccountRepository())
  7. {
  8. newUser = repo.GetUser(model.UserName);
  9. ...
  10. }
  11. }
  12.  
  13. public override bool ValidateUser(string username, string password)
  14. {
  15. using (AccountRepository repo = new AccountRepository())
  16. {
  17. try
  18. {
  19. if (string.IsNullOrEmpty(password.Trim()) || string.IsNullOrEmpty(username.Trim()))
  20. return false;
  21.  
  22. string hash = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Trim(), "md5");
  23.  
  24. bool exists = false;
  25.  
  26. exists = repo.UserExists(username, hash);
  27.  
  28. return exists;
  29. }catch{
  30. return false;
  31. }
  32. }
  33. }
  34.  
  35. public User GetUser(string userName)
  36. {
  37. try
  38. {
  39. return entities.Users.SingleOrDefault(user => user.UserName == userName);
  40. }
  41. catch (Exception Ex)
  42. {
  43. throw new Exception("An error occurred: " + Ex.Message);
  44. }
  45. }
  46.  
  47. public bool UserExists(string userName, string userPassword)
  48. {
  49. if (userName == "" || userPassword == "")
  50. throw new ArgumentException(InvalidUsernamePassword);
  51.  
  52. try
  53. {
  54. bool exists = (entities.Users.SingleOrDefault(u => u.UserName == userName && u.Password == userPassword) != null);
  55. return exists;
  56. }
  57. catch (Exception Ex)
  58. {
  59. throw new Exception("An error occurred: " + Ex.Message);
  60. }
  61. }
  62.  
  63. public class AccountRepository : IDisposable
  64. {
  65. private DbContext entities;
  66.  
  67. public AccountRepository()
  68. {
  69. entities = new DbContext();
  70. }
  71.  
  72. ...
  73.  
  74. public void Dispose()
  75. {
  76. entities.Dispose();
  77. }
  78. }
  79.  
  80. var user = userRepository.GetUser("KallDrexx");
  81. var companies = companyRepository.GetCompaniesForUser(user.Id);
  82.  
  83. public class UserRepository
  84. {
  85. public User GetUser(string userName)
  86. {
  87. // GetUser code
  88. }
  89.  
  90. public User GetUserWithCompanies(string userName)
  91. {
  92. // query code here
  93. }
  94. }
  95.  
  96. public class MyController : Controller
  97. {
  98. private Entities context = new Entities();
  99.  
  100. ...
  101.  
  102. public override void Dispose()
  103. {
  104. context.Dispose();
  105. }
  106. }
  107.  
  108. repository.Users.GetUser(userName);
  109.  
  110. private UserRepository users;
  111.  
  112. public UserRepository Users
  113. {
  114. get
  115. {
  116. If (users == null)
  117. {
  118. users = new UserRepository(this);
  119. }
  120. return users;
  121. }
  122. }
  123.  
  124. repository.Users.GetUser(userName);
  125.  
  126. UserQuery query = new UserQuery(repository.Users);
  127.  
  128. repository.Area.Query(value1, value2, ...);
  129.  
  130. AreaQuery query = new AreaQuery { Property1 = value1, ... };
Add Comment
Please, Sign In to add comment