DeviationDataModel.cs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using GreenTree.Nachtragsmanagement.Web.Models.Appendix;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web;
  6. namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
  7. {
  8. public class DeviationDataModel
  9. : IRequireAppendixDataModel, IRequireStatusDataModel, IRequireDisturbanceDataModel, IRequireKindDataModel
  10. {
  11. public int Id { get; set; }
  12. public string CustomNumber { get; set; }
  13. public DateTime ReceiptDate { get; set; }
  14. public decimal Value { get; set; }
  15. public int? StatusId { get; set; }
  16. public string StatusDescription { get; set; }
  17. public int? DisturbanceId { get; set; }
  18. public string DisturbanceDescription { get; set; }
  19. public int? KindId { get; set; }
  20. public string KindDescription { get; set; }
  21. public string Comment { get; set; }
  22. public string AppendixDescription { get; set; }
  23. public int? AppendixId { get; set; }
  24. public static DeviationDataModel FromDeviation(Core.Domain.Deviation.Deviation deviationEntity, bool newWhenIsNull)
  25. {
  26. if (deviationEntity == null && newWhenIsNull)
  27. return new DeviationDataModel
  28. {
  29. Id = -1
  30. };
  31. if (deviationEntity == null && !newWhenIsNull)
  32. throw new ArgumentNullException("deviationEntity", "Cannot create DeviationDataModel from NULL deviation entity.");
  33. return new DeviationDataModel
  34. {
  35. Id = deviationEntity.Id,
  36. CustomNumber = deviationEntity.CustomNumber,
  37. ReceiptDate = deviationEntity.ReceiptDate,
  38. Value = deviationEntity.Value.Value,
  39. AppendixId = deviationEntity.AppendixId,
  40. AppendixDescription = deviationEntity.Appendix == null
  41. ? null
  42. : deviationEntity.Appendix.CustomNumber,
  43. StatusId = deviationEntity.StatusId.Value,
  44. StatusDescription = deviationEntity.Status == null
  45. ? null
  46. : deviationEntity.Status.Description,
  47. DisturbanceId = deviationEntity.DisturbanceId.Value,
  48. DisturbanceDescription = deviationEntity.Disturbance == null
  49. ? null
  50. : deviationEntity.Disturbance.Description,
  51. KindId = deviationEntity.KindId.Value,
  52. KindDescription = deviationEntity.Kind == null
  53. ? null
  54. : deviationEntity.Kind.Description,
  55. Comment = deviationEntity.Comment
  56. };
  57. }
  58. public Core.Domain.Deviation.Deviation ToDeviation()
  59. {
  60. return new Core.Domain.Deviation.Deviation
  61. {
  62. Id = this.Id,
  63. CustomNumber = this.CustomNumber,
  64. ReceiptDate = this.ReceiptDate,
  65. Value = this.Value,
  66. AppendixId = this.AppendixId,
  67. StatusId = this.StatusId,
  68. DisturbanceId = this.DisturbanceId,
  69. KindId = this.KindId,
  70. Comment = this.Comment
  71. };
  72. }
  73. }
  74. }