EmployeeDigitalForm.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.SqlTypes;
  4. using System.Linq;
  5. using System.Linq.Expressions;
  6. using InABox.Core;
  7. namespace Comal.Classes
  8. {
  9. public interface IEmployeeDigitalForm
  10. {
  11. EmployeeLink Employee { get; set; }
  12. DigitalFormLink Form { get; set; }
  13. }
  14. public class EmployeeDigitalFormCrossGenerator : AutoEntityCrossGenerator<IEmployeeDigitalForm,EmployeeRole,RoleForm>
  15. {
  16. public override Expression<Func<EmployeeRole, Guid>> LeftProperty => x => x.EmployeeLink.ID;
  17. public override Expression<Func<IEmployeeDigitalForm, Guid>> LeftMapping => x => x.Employee.ID;
  18. public override Expression<Func<EmployeeRole, Guid>> LeftLink => x => x.RoleLink.ID;
  19. public override Expression<Func<RoleForm, Guid>> RightProperty => x => x.Form.ID;
  20. public override Expression<Func<IEmployeeDigitalForm, Guid>> RightMapping => x => x.Form.ID;
  21. public override Expression<Func<RoleForm, Guid>> RightLink => x => x.Role.ID;
  22. public override bool Distinct => true;
  23. public override Column<IEmployeeDigitalForm>[] IDColumns => new Column<IEmployeeDigitalForm>[]
  24. {
  25. new Column<IEmployeeDigitalForm>(x => x.Employee.ID),
  26. new Column<IEmployeeDigitalForm>(x => x.Form.ID)
  27. };
  28. }
  29. [UserTracking(typeof(Employee))]
  30. [AutoEntity(typeof(EmployeeDigitalFormCrossGenerator))]
  31. public class EmployeeDigitalForm : Entity, IRemotable, IPersistent, IEmployeeDigitalForm,
  32. ILicense<CoreLicense>
  33. {
  34. public EmployeeLink Employee { get; set; }
  35. public DigitalFormLink Form { get; set; }
  36. protected override void Init()
  37. {
  38. base.Init();
  39. Employee = new EmployeeLink();
  40. Form = new DigitalFormLink();
  41. }
  42. }
  43. }