| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq.Expressions;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     [UserTracking(typeof(Qualification))]
 
-     public class JobQualificationCount : CoreAggregate<JobQualification, JobEmployeeQualification, Guid>
 
-     {
 
-         public override Expression<Func<JobEmployeeQualification, Guid>> Aggregate => x => x.ID;
 
-         public override Dictionary<Expression<Func<JobEmployeeQualification, object>>, Expression<Func<JobQualification, object>>> Links =>
 
-             new Dictionary<Expression<Func<JobEmployeeQualification, object>>, Expression<Func<JobQualification, object>>>()
 
-             {
 
-                 { JobEmployeeQualification => JobEmployeeQualification.Required.ID, JobQualification => JobQualification.ID }
 
-             };
 
-         public override AggregateCalculation Calculation => AggregateCalculation.Count;
 
-         public override Filter<JobEmployeeQualification> Filter
 
-         {
 
-             get
 
-             {
 
-                 var start = new Filter<JobEmployeeQualification>(x => x.Available.Employee.StartDate).IsEqualTo(DateTime.MinValue)
 
-                     .Or(x => x.Available.Employee.StartDate).IsLessThanOrEqualTo(DateTime.Today);
 
-                 var finish = new Filter<JobEmployeeQualification>(x => x.Available.Employee.FinishDate).IsEqualTo(DateTime.MinValue)
 
-                     .Or(x => x.Available.Employee.FinishDate).IsGreaterThanOrEqualTo(DateTime.Today);
 
-                 var expiry = new Filter<JobEmployeeQualification>(x => x.Available.Expiry).IsGreaterThanOrEqualTo(DateTime.Today);
 
-                 var result = expiry.And(start).And(finish);
 
-                 return result;
 
-             }
 
-         }
 
-     }
 
-     [UserTracking(typeof(Qualification))]
 
-     public class JobQualification : Entity, IRemotable, IPersistent, IManyToMany<Job, Qualification>, ILicense<ProjectManagementLicense>
 
-     {
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public JobLink Job { get; set; }
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public QualificationLink Qualification { get; set; }
 
-         [CheckBoxEditor]
 
-         public bool Required { get; set; }
 
-         [IntegerEditor(Visible = Visible.Default, Editable = Editable.Disabled)]
 
-         [Aggregate(typeof(JobQualificationCount))]
 
-         public int Count { get; set; }
 
-         protected override void Init()
 
-         {
 
-             base.Init();
 
-             Job = new JobLink();
 
-             Qualification = new QualificationLink();
 
-         }
 
-     }
 
- }
 
 
  |