1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System;
- using System.Linq;
- using System.Linq.Expressions;
- using Comal.Classes;
- using InABox.Core;
- using System.Diagnostics.CodeAnalysis;
- namespace comal.timesheets
- {
- public class EmployeeDetailModel : DetailModel<EmployeeDetailModel,EmployeeDetailShell,Employee>
- {
- public EmployeeDetailModel(IModelHost host, Func<Filter<Employee>> filter, bool transient = false) : base(host, filter, transient)
- {
- }
- public EmployeeDetailModel(IModelHost host, Func<Filter<Employee>> filter, [NotNull] string filename) : base(host, filter, filename)
- {
- }
- protected override void Initialize()
- {
- base.Initialize();
- Activities = new EmployeeActivityShell[] { };
- Forms = new EmployeeFormShell[] { };
- }
- public EmployeeActivityShell[] Activities { get; private set; }
- public EmployeeFormShell[] Forms { get; private set; }
-
- protected override Expression<Func<Employee, object>> ImageColumn => x => x.Thumbnail.ID;
- public override void BeforeLoad(MultiQuery query)
- {
- base.BeforeLoad(query);
-
- query.Add(
- new Filter<EmployeeActivity>(x => x.Employee.ID).InQuery(Filter(),x=>x.ID),
- EmployeeActivityShell.Columns.Columns
- );
-
- query.Add(
- new Filter<EmployeeForm>(x => x.Parent.ID).InQuery(Filter(),x=>x.ID),
- EmployeeFormShell.Columns.Columns
- );
- }
- public override void AfterLoad(MultiQuery query)
- {
- base.AfterLoad(query);
-
- Activities = query.Get<EmployeeActivity>()
- .Rows
- .Select(x => new EmployeeActivityShell() { Row = x, Parent = this })
- .ToArray();
-
- Forms = query.Get<EmployeeForm>()
- .Rows
- .Select(x => new EmployeeFormShell() { Row = x, Parent = this })
- .ToArray();
- }
- public Guid ID => Item?.ID ?? Guid.Empty;
- public String Name => Item?.Name ?? "";
- }
- }
|