Guest User

Untitled

a guest
Apr 20th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.54 KB | None | 0 0
  1. public class AMUserStore : IUserStore<ApplicationUser>,
  2. IUserPasswordStore<ApplicationUser>,
  3. IUserRoleStore<ApplicationUser>,
  4. IUserEmailStore<ApplicationUser>
  5.  
  6.  
  7. {
  8. protected AMDbContext _db;
  9. protected PortalContext _dbPortalContext;
  10.  
  11. public AMUserStore()
  12. {
  13. _db = new AMDbContext();
  14. _dbPortalContext = new PortalContext();
  15. }
  16.  
  17. public void Dispose()
  18. {
  19. _db.Dispose();
  20. }
  21.  
  22. public async Task<ApplicationUser> FindByIdAsync(string userId)
  23. {
  24. ApplicationUser result = null;
  25.  
  26. Guid userIdGuid = Guid.Parse(userId);
  27. var user = await _db.Users.Where(p => p.Id == userIdGuid).FirstOrDefaultAsync();
  28.  
  29. if (user != null)
  30. {
  31. result = new ApplicationUser();
  32. result.Id = user.Id.ToString();
  33. result.UserName = user.Username;
  34. result.PasswordHash = user.Password;
  35. }
  36.  
  37. return result;
  38. }
  39.  
  40. public async Task<ApplicationUser> FindByNameAsync(string userName)
  41. {
  42. ApplicationUser result = null;
  43.  
  44. var user = await _db.Users.Where(p => p.Username == userName).FirstOrDefaultAsync();
  45. //var roles = ((IList<string>)_dbPortalContext.UserRoles.Where(x => x.UserId.Equals(userIdGuid)).Select(x => x.Roles.ToString()).ToList());
  46.  
  47. if (user != null)
  48. {
  49. result = new ApplicationUser();
  50. result.Id = user.Id.ToString();
  51. result.UserName = user.Username;
  52. result.PasswordHash = user.Password;
  53. }
  54.  
  55. return result;
  56. }
  57.  
  58.  
  59.  
  60. public Task<string> GetPasswordHashAsync(ApplicationUser user)
  61. {
  62. return Task.FromResult(user.PasswordHash);
  63. }
  64.  
  65. public Task<bool> HasPasswordAsync(ApplicationUser user)
  66. {
  67. return Task.FromResult(string.IsNullOrEmpty(user.PasswordHash));
  68. }
  69.  
  70. public Task SetPasswordHashAsync(ApplicationUser user, string passwordHash)
  71. {
  72. var userId = Guid.Parse(user.Id);
  73. var selectedUser = _db.Users.FirstOrDefault(u => u.Id.Equals(userId));
  74.  
  75. selectedUser.Password = passwordHash;
  76.  
  77. return _db.SaveChangesAsync();
  78.  
  79. }
  80.  
  81. public Task UpdateAsync(ApplicationUser user)
  82. {
  83. var userId = Guid.Parse(user.Id);
  84. var selectedUser = _db.Users.FirstOrDefault(u => u.Id.Equals(userId));
  85. var context = _db;
  86. context.Entry(selectedUser).State = EntityState.Modified;
  87. return _db.SaveChangesAsync();
  88.  
  89. }
  90. public Task CreateAsync(ApplicationUser user)
  91. {
  92. throw new NotImplementedException();
  93. }
  94.  
  95. public Task DeleteAsync(ApplicationUser user)
  96. {
  97. throw new NotImplementedException();
  98. }
  99.  
  100. public Task AddToRoleAsync(ApplicationUser user, string roleName)
  101. {
  102. // convert roleName to enum Roles
  103. Roles roleNameEnum = (Roles)Enum.Parse(typeof(Roles), roleName);
  104. Guid userIdGuid = Guid.Parse(user.Id);
  105. var roles = _dbPortalContext.UserRoles.Where(x => x.UserId.Equals(userIdGuid)).Select(x => x.Roles).ToList();
  106. if (!roles.Contains(roleNameEnum))
  107. {
  108. UserRole userRole = new UserRole
  109. {
  110. Id = Guid.NewGuid(),
  111. UserId = Guid.Parse(user.Id),
  112. Roles = roleNameEnum
  113. };
  114.  
  115. _dbPortalContext.UserRoles.Add(userRole);
  116.  
  117. }
  118. return _dbPortalContext.SaveChangesAsync();
  119.  
  120. }
  121.  
  122. public Task RemoveFromRoleAsync(ApplicationUser user, string roleName)
  123. {
  124. Guid userIdGuid = Guid.Parse(user.Id);
  125. var roles = _dbPortalContext.UserRoles.Where(x => x.UserId.Equals(userIdGuid)).FirstOrDefault();
  126. if (roles == null)
  127. {
  128.  
  129. }
  130. _dbPortalContext.UserRoles.Remove(roles);
  131.  
  132. return _dbPortalContext.SaveChangesAsync();
  133. }
  134.  
  135. public Task<IList<string>> GetRolesAsync(ApplicationUser user)
  136. {
  137. Guid userIdGuid = Guid.Parse(user.Id);
  138. var roles = ((IList<string>)_dbPortalContext.UserRoles.Where(x => x.UserId.Equals(userIdGuid)).Select(x => x.Roles.ToString()).ToList());
  139. return Task.FromResult(roles);
  140. }
  141.  
  142. public Task<bool> IsInRoleAsync(ApplicationUser user, string roleName)
  143. {
  144. Guid userIdGuid = Guid.Parse(user.Id);
  145. Roles roleNameEnum = (Roles)Enum.Parse(typeof(Roles), roleName);
  146. var roles = _dbPortalContext.UserRoles.Where(x => x.UserId.Equals(userIdGuid)).Select(x => x.Roles).ToList();
  147.  
  148.  
  149. return Task.FromResult(roles.Contains(roleNameEnum));
  150. }
  151.  
  152. public Task SetEmailAsync(ApplicationUser user, string email)
  153. {
  154. throw new NotImplementedException();
  155. }
  156.  
  157. public Task<string> GetEmailAsync(ApplicationUser user)
  158. {
  159. var userId = Guid.Parse(user.Id);
  160. var result = _dbPortalContext.Accounts.Include(a => a.User).FirstOrDefault(a => a.User.Id.Equals(userId));
  161. string userEmail = null;
  162. if (result != null)
  163. {
  164. userEmail = result.Sol_Cust_Contact;
  165. return Task.FromResult(userEmail);
  166. }
  167.  
  168.  
  169. else
  170. return Task.FromResult(userEmail);
  171. }
  172.  
  173.  
  174. public Task<bool> GetEmailConfirmedAsync(ApplicationUser user)
  175. {
  176. var userId = Guid.Parse(user.Id);
  177. var selectedUser = _dbPortalContext.Users.Where(u => u.Id.Equals(userId)).FirstOrDefault();
  178. return Task.FromResult(selectedUser.EmailValidated);
  179. }
  180.  
  181. public Task SetEmailConfirmedAsync(ApplicationUser user, bool confirmed)
  182. {
  183. throw new NotImplementedException();
  184. }
  185.  
  186. public Task<ApplicationUser> FindByEmailAsync(string email)
  187. {
  188. ApplicationUser result = null;
  189. var user = _db.Users.Where(u => u.Email.Equals(email)).FirstOrDefault();
  190. if (user != null)
  191. {
  192. result = new ApplicationUser();
  193. result.Id = user.Id.ToString();
  194. result.UserName = user.Username;
  195. result.Email = user.Email;
  196.  
  197. }
  198.  
  199. return Task.FromResult(result);
  200. }
  201. }
Add Comment
Please, Sign In to add comment