using System; using System.Collections.Generic; using System.Linq; using Comal.Classes; using comal.timesheets; using InABox.Core; namespace comal.timesheets { public class AssignmentEditDataModel : SingleDataModel { public List> Activities { get; private set; } public override Columns Columns => new Columns(x => x.ID) .Add(x => x.Title) .Add(x => x.Description) .Add(x => x.Start) .Add(x => x.Finish) .Add(c => c.JobLink.ID) .Add(c => c.JobLink.JobNumber) .Add(c => c.JobLink.Name) .Add(c => c.ActivityLink.ID) .Add(c => c.ActivityLink.Code) .Add(c => c.ActivityLink.Description); public override void BeforeLoad(MultiQuery query, Guid id) { base.BeforeLoad(query, id); query.Add( new Filter(x => x.ID).InQuery( new Filter(x => x.Employee.ID).IsEqualTo(App.Data.Employee.ID), x => x.Activity.ID), LookupFactory.DefineColumns() ); } public override void AfterLoad(MultiQuery query, Guid id) { base.AfterLoad(query, id); Activities = query.Get().ToDictionary( x => x.ID, (row) => String.Format("{0}: {1}", row.Get(c => c.Code), row.Get(c => c.Description)), x => x.Code ).ToList(); } } }