UserDataModel.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Linq;
  5. using System.Web;
  6. using GreenTree.Nachtragsmanagement.Core.Domain.User;
  7. using FluentValidation.Attributes;
  8. using GreenTree.Nachtragsmanagement.Web.Validation.Admin.User;
  9. namespace GreenTree.Nachtragsmanagement.Web.Models.Admin.User
  10. {
  11. public class UserDataModel
  12. {
  13. public int Id { get; set; }
  14. public string CustomNumber { get; set; }
  15. public string Forename { get; set; }
  16. public string Lastname { get; set; }
  17. public string MailAddress { get; set; }
  18. public string Password { get; set; }
  19. public bool IsActiveDirectory { get; set; }
  20. public ICollection<int> RoleValues { get; set; }
  21. public ICollection<string> RoleDescriptions { get; set; }
  22. public string RoleDescription
  23. {
  24. get
  25. {
  26. if (RoleDescriptions == null)
  27. return String.Empty;
  28. else
  29. return String.Join(", ", RoleDescriptions);
  30. }
  31. }
  32. public UserDataModel()
  33. {
  34. RoleValues = new List<int>();
  35. RoleDescriptions = new List<string>();
  36. }
  37. public static UserDataModel FromUser(Core.Domain.User.User userEntity, bool newWhenIsNull)
  38. {
  39. if (userEntity == null && newWhenIsNull)
  40. return new UserDataModel
  41. {
  42. Id = -1
  43. };
  44. if (userEntity == null && !newWhenIsNull)
  45. throw new ArgumentNullException("userEntity", "Cannot create UserDataModel from NULL user entity.");
  46. return new UserDataModel
  47. {
  48. Id = userEntity.Id,
  49. CustomNumber = userEntity.CustomNumber,
  50. Forename = userEntity.Forename,
  51. Lastname = userEntity.Lastname,
  52. MailAddress = userEntity.MailAddress,
  53. RoleValues =
  54. userEntity.Roles
  55. .Select(r => r.Id)
  56. .ToList(),
  57. RoleDescriptions =
  58. userEntity.Roles
  59. .Select(r => r.Description)
  60. .ToList()
  61. };
  62. }
  63. public Core.Domain.User.User ToUser()
  64. {
  65. return new Core.Domain.User.User
  66. {
  67. Id = this.Id,
  68. CustomNumber = this.CustomNumber,
  69. Forename = this.Forename,
  70. Lastname = this.Lastname,
  71. MailAddress = this.MailAddress
  72. };
  73. }
  74. }
  75. }