UserDataModel.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 CustomerNumber { 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 ICollection<int> RoleValues { get; set; }
  20. public ICollection<string> RoleDescriptions { get; set; }
  21. public UserDataModel()
  22. {
  23. RoleValues = new List<int>();
  24. RoleDescriptions = new List<string>();
  25. }
  26. public static UserDataModel FromUser(Core.Domain.User.User userEntity, bool newWhenIsNull)
  27. {
  28. if (userEntity == null && newWhenIsNull)
  29. return new UserDataModel
  30. {
  31. Id = -1
  32. };
  33. if (userEntity == null && !newWhenIsNull)
  34. throw new ArgumentNullException("userEntity", "Cannot create UserDataModel from NULL user entity.");
  35. return new UserDataModel
  36. {
  37. Id = userEntity.Id,
  38. CustomerNumber = userEntity.CustomNumber,
  39. Forename = userEntity.Forename,
  40. Lastname = userEntity.Lastname,
  41. MailAddress = userEntity.MailAddress,
  42. RoleValues =
  43. userEntity.Roles
  44. .Select(r => r.Id)
  45. .ToList(),
  46. RoleDescriptions =
  47. userEntity.Roles
  48. .Select(r => r.Description)
  49. .ToList()
  50. };
  51. }
  52. public Core.Domain.User.User ToUser()
  53. {
  54. return new Core.Domain.User.User
  55. {
  56. Id = this.Id,
  57. CustomNumber = this.CustomerNumber,
  58. Forename = this.Forename,
  59. Lastname = this.Lastname,
  60. MailAddress = this.MailAddress
  61. };
  62. }
  63. }
  64. }