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();
- }
- }
- }
|