Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.63 KB | None | 0 0
  1. public partial class AdminUser
  2. {
  3. public AdminUser()
  4. {
  5. RoleAssign = new HashSet<RoleAssign>();
  6. }
  7.  
  8. public Guid UserId { get; set; }
  9. public string FirstName { get; set; }
  10. public string LastName { get; set; }
  11. public string Email { get; set; }
  12. public string UserName { get; set; }
  13. public byte[] Password { get; set; }
  14. public DateTime CreatedTimeStamp { get; set; }
  15. public DateTime? ModifiedTimeStamp { get; set; }
  16. public DateTime? LogDate { get; set; }
  17. public short? LogNumber { get; set; }
  18. public bool ReloadActiveFlag { get; set; }
  19. public bool IsActive { get; set; }
  20. public string ExtraText { get; set; }
  21. public string ResetPasswordToken { get; set; }
  22. public DateTime? ResetPasswordTokenCreatedTimeStamp { get; set; }
  23.  
  24. public virtual ICollection<RoleAssign> RoleAssign { get; set; }
  25. }
  26.  
  27. public partial class RoleAssign
  28. {
  29. public Guid RoleAssignId { get; set; }
  30. public Guid RoleId { get; set; }
  31. public Guid UserId { get; set; }
  32.  
  33. public virtual AdminRole Role { get; set; }
  34. public virtual AdminUser User { get; set; }
  35. }
  36.  
  37. modelBuilder.Entity<RoleAssign>(entity =>
  38. {
  39. entity.Property(e => e.RoleAssignId).ValueGeneratedNever();
  40.  
  41. entity.HasOne(d => d.Role)
  42. .WithMany(p => p.RoleAssign)
  43. .HasForeignKey(d => d.RoleId)
  44. .OnDelete(DeleteBehavior.ClientSetNull)
  45. .HasConstraintName("FK__RoleAssig__RoleI__160F4887");
  46.  
  47. entity.HasOne(d => d.User)
  48. .WithMany(p => p.RoleAssign)
  49. .HasForeignKey(d => d.UserId)
  50. .OnDelete(DeleteBehavior.ClientSetNull)
  51. .HasConstraintName("FK__RoleAssig__UserI__17036CC0");
  52. });
  53.  
  54. modelBuilder.Entity<AdminUser>(entity =>
  55. {
  56. entity.HasKey(e => e.UserId);
  57.  
  58. entity.Property(e => e.UserId).ValueGeneratedNever();
  59.  
  60. entity.Property(e => e.CreatedTimeStamp)
  61. .HasColumnType("datetime")
  62. .HasDefaultValueSql("(getdate())");
  63.  
  64. entity.Property(e => e.Email)
  65. .IsRequired()
  66. .IsUnicode(false);
  67.  
  68. entity.Property(e => e.ExtraText).IsUnicode(false);
  69.  
  70. entity.Property(e => e.FirstName)
  71. .IsRequired()
  72. .IsUnicode(false);
  73.  
  74. entity.Property(e => e.IsActive)
  75. .IsRequired()
  76. .HasColumnName("isActive")
  77. .HasDefaultValueSql("((1))");
  78.  
  79. entity.Property(e => e.LastName)
  80. .IsRequired()
  81. .IsUnicode(false);
  82.  
  83. entity.Property(e => e.LogDate).HasColumnType("datetime");
  84.  
  85. entity.Property(e => e.ModifiedTimeStamp).HasColumnType("datetime");
  86.  
  87. entity.Property(e => e.Password).IsRequired();
  88.  
  89. entity.Property(e => e.ResetPasswordToken).IsUnicode(false);
  90.  
  91. entity.Property(e => e.ResetPasswordTokenCreatedTimeStamp).HasColumnType("datetime");
  92.  
  93. entity.Property(e => e.UserName)
  94. .IsRequired()
  95. .IsUnicode(false);
  96. });
  97.  
  98. public async Task<UserViewModel> AdminAuthentication(UserViewModel userView)
  99. {
  100. var user = await _adminGenericRepository.FindAsync(x => x.IsActive && x.UserName.Equals(userView.UserName) && (AesEncryptAndDecrypt.DecryptStringFromBytes(x.Password, crytograpyKey, crytograpyIV).Equals(userView.Password)));
  101.  
  102. if (user != null)
  103. {
  104. return new UserViewModel
  105. {
  106. UserId = user.UserId,
  107. isActive = user.IsActive,
  108. UserName = user.UserName,
  109. LastName = user.LastName,
  110. FirstName = user.FirstName,
  111. SelectedRole = mapRoleDbDataToViewModel(user.RoleAssign != null ? user.RoleAssign.FirstOrDefault().Role : null)
  112. };
  113. }
  114. return null;
  115. }
  116.  
  117. private RoleViewModel mapRoleDbDataToViewModel(AdminRole dbRole)
  118. {
  119. if (dbRole != null)
  120. {
  121. return new RoleViewModel
  122. {
  123. RoleId = dbRole.RoleId,
  124. RoleName = dbRole.RoleName,
  125. RoleType = dbRole.RoleType,
  126. SortOrder = dbRole.SortOrder,
  127. TreeLevel = dbRole.TreeLevel,
  128. Permissions = GetRuleByRoleId(dbRole.RoleId)
  129. };
  130. }
  131. return null;
  132. }
  133.  
  134. public virtual async Task<T> FindAsync(Expression<Func<T, bool>> predicate)
  135. {
  136. return await _entities.Set<T>().SingleOrDefaultAsync(predicate);
  137. }
  138.  
  139. public IQueryable<T> FindBy(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
  140. {
  141. IQueryable<T> query = _entities.Set<T>().Where(predicate);
  142. return query;
  143. }
  144.  
  145. string encryptedPassword = AesEncryptAndDecrypt.EncryptString(userView.Password, crytograpyKey, crytograpyIV);
  146. var userData = await _adminGenericRepository.FindBy(x => x.IsActive && x.UserName == userView.UserName && x.Password == encryptedPassword)
  147. .Select( new
  148. {
  149. UserId = user.UserId,
  150. IsActive = user.IsActive,
  151. UserName = user.UserName,
  152. LastName = user.LastName,
  153. FirstName = user.FirstName,
  154. // When using FirstOrDefault, you should have an OrderBy to ensure the selection is predictable.
  155. SelectedRole = user.RoleAssign.OrderByDescending(x => x.Date).FirstOrDefault()?.Role
  156. // Cannot call C# methods here since this will go to SQL..
  157. // If you can populate a UserRoleViewModel in-line, then that can be put here to skip the extra mapping below.
  158. }).SingleOrDefaultAsync();
  159.  
  160. // At this point we will have the user details and it's selected Role ready for mapping.
  161. //This assumes that the mapping of the Role does not rely on any child relationships under the Role.
  162. if (userData != null)
  163. return new UserViewModel
  164. {
  165. UserId = userData.UserId,
  166. IsActive = userData.IsActive,
  167. UserName = userData.UserName,
  168. LastName = userData.LastName,
  169. FirstName = userData.FirstName,
  170. SelectedRole = mapRoleDbDataToViewModel(userData.SelectedRole)
  171. };
  172. else
  173. return null;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement