Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MVC 3/EF repository pattern and proper data access
- if (MembershipService.ValidateUser(model.UserName, model.Password))
- {
- User newUser = new User();
- using (AccountRepository repo = new AccountRepository())
- {
- newUser = repo.GetUser(model.UserName);
- ...
- }
- }
- public override bool ValidateUser(string username, string password)
- {
- using (AccountRepository repo = new AccountRepository())
- {
- try
- {
- if (string.IsNullOrEmpty(password.Trim()) || string.IsNullOrEmpty(username.Trim()))
- return false;
- string hash = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Trim(), "md5");
- bool exists = false;
- exists = repo.UserExists(username, hash);
- return exists;
- }catch{
- return false;
- }
- }
- }
- public User GetUser(string userName)
- {
- try
- {
- return entities.Users.SingleOrDefault(user => user.UserName == userName);
- }
- catch (Exception Ex)
- {
- throw new Exception("An error occurred: " + Ex.Message);
- }
- }
- public bool UserExists(string userName, string userPassword)
- {
- if (userName == "" || userPassword == "")
- throw new ArgumentException(InvalidUsernamePassword);
- try
- {
- bool exists = (entities.Users.SingleOrDefault(u => u.UserName == userName && u.Password == userPassword) != null);
- return exists;
- }
- catch (Exception Ex)
- {
- throw new Exception("An error occurred: " + Ex.Message);
- }
- }
- public class AccountRepository : IDisposable
- {
- private DbContext entities;
- public AccountRepository()
- {
- entities = new DbContext();
- }
- ...
- public void Dispose()
- {
- entities.Dispose();
- }
- }
- var user = userRepository.GetUser("KallDrexx");
- var companies = companyRepository.GetCompaniesForUser(user.Id);
- public class UserRepository
- {
- public User GetUser(string userName)
- {
- // GetUser code
- }
- public User GetUserWithCompanies(string userName)
- {
- // query code here
- }
- }
- public class MyController : Controller
- {
- private Entities context = new Entities();
- ...
- public override void Dispose()
- {
- context.Dispose();
- }
- }
- repository.Users.GetUser(userName);
- private UserRepository users;
- public UserRepository Users
- {
- get
- {
- If (users == null)
- {
- users = new UserRepository(this);
- }
- return users;
- }
- }
- repository.Users.GetUser(userName);
- UserQuery query = new UserQuery(repository.Users);
- repository.Area.Query(value1, value2, ...);
- AreaQuery query = new AreaQuery { Property1 = value1, ... };
Add Comment
Please, Sign In to add comment