JobDocumentSet.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Linq.Expressions;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. namespace Comal.Classes
  8. {
  9. public enum PaperSize
  10. {
  11. A0,
  12. A1,
  13. A2,
  14. A3,
  15. A4,
  16. A5,
  17. Custom,
  18. NotSet
  19. }
  20. public class JobDocumentSet : Entity, IRemotable, IPersistent, IOneToMany<Job>, IJobDocumentSet, ILicense<ProjectManagementLicense>
  21. {
  22. [EntityRelationship(DeleteAction.Cascade)]
  23. [NullEditor]
  24. public JobLink Job { get; set; }
  25. [EntityRelationship(DeleteAction.Cascade)]
  26. [NullEditor]
  27. public JobDocumentSetFolderLink Folder { get; set; }
  28. [NullEditor]
  29. [EntityRelationship(DeleteAction.Cascade)]
  30. public JobDocumentSetLink Parent { get; set; }
  31. [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
  32. [EditorSequence(1)]
  33. public string Code { get; set; }
  34. [TextBoxEditor]
  35. [EditorSequence(2)]
  36. public string Description { get; set; }
  37. [EditorSequence(3)]
  38. public JobDocumentSetDisciplineLink Discipline { get; set; }
  39. [EditorSequence(4)]
  40. public JobDocumentSetTypeLink Type { get; set; }
  41. [DateTimeEditor]
  42. [EditorSequence(5)]
  43. public DateTime Date { get; set; }
  44. [Caption("Assigned To")]
  45. [EditorSequence(6)]
  46. public EmployeeLink Employee { get; set; }
  47. [EnumLookupEditor(typeof(PaperSize))]
  48. [EditorSequence("Advanced", 1)]
  49. public PaperSize Size { get; set; } = PaperSize.NotSet;
  50. [CodeEditor(Editable = Editable.Enabled)]
  51. [EditorSequence("Advanced", 2)]
  52. public string Scale { get; set; } = "";
  53. [EditorSequence("Advanced", 3)]
  54. public JobDocumentSetCategoryLink Category { get; set; }
  55. [EditorSequence("Advanced", 4)]
  56. public JobITPLink Area { get; set; }
  57. [EditorSequence("Advanced", 5)]
  58. public DateTime Retired { get; set; }
  59. /*[Aggregate(typeof(JobDocumentSetCurrentAggregate))]
  60. public DateTime Current { get; set; }*/
  61. }
  62. /*
  63. public class JobDocumentSetCurrentAggregate : CoreAggregate<JobDocumentSet, JobDocumentSetMileStone, DateTime>
  64. {
  65. public override Expression<Func<JobDocumentSetMileStone, DateTime>> Aggregate => x => x.Date;
  66. public override Dictionary<Expression<Func<JobDocumentSetMileStone, object>>, Expression<Func<JobDocumentSet, object>>> Links => throw new NotImplementedException();
  67. public override AggregateCalculation Calculation => throw new NotImplementedException();
  68. }*/
  69. }