using System; using System.Collections.Generic; using System.Linq; using Comal.Classes; using InABox.Core; namespace comal.timesheets { public class EquipmentDetailsDataModel : ListDataModel { private IList _openKanbans = new List(); public IList OpenKanbans { get { return _openKanbans; } set { SetProperty(ref _openKanbans, value); } } private bool _openKanbansVisible = false; public bool OpenKanbansVisible { get { return _openKanbansVisible; } set { SetProperty(ref _openKanbansVisible, value); } } public override Columns Columns => new Columns(x => x.ID) .Add(x => x.Description) .Add(x => x.GroupLink.Description) .Add(x => x.DigitalKey.ID) .Add(x => x.Notes) .Add(x => x.SpecificationSheet.ID) .Add(x => x.Documents); //.Add(x => x.Kanbans); public override void BeforeLoad(MultiQuery query, Filter filter) { base.BeforeLoad(query, filter); query.Add( new Filter(x => x.Equipment.ID).InQuery(filter, x => x.ID) .And(x=>x.Completed).IsEqualTo(DateTime.MinValue), new Columns(x=>x.ID) .Add(x=>x.Title) ); } public override void AfterLoad(MultiQuery query, Filter filter) { OpenKanbans = new List( query.Get().Rows.Select(row => new EquipmentKanbanDataModelItem() { Row = row, Parent = this }) ); OpenKanbansVisible = OpenKanbans.Any(); base.AfterLoad(query, filter); } } public class EquipmentKanbanDataModelItem : CoreDataModelItem { public Guid ID => Row.Get(c => c.ID); public String Title => Row.Get(c => c.Title); } public class EquipmentDetailsDataModelItem : CoreDataModelItem { public Guid ID => Row.Get(c => c.ID); public String Description => Row.Get(c => c.Description); public String GroupName => Row.Get(c => c.GroupLink.Description); public String Notes => Row.Get(c => c.Notes); public bool DigitalKeyVisible => Row.Get(c => c.DigitalKey.ID) != Guid.Empty; public Guid SpecificationSheetID => Row.Get(c => c.SpecificationSheet.ID); public bool SpecificationSheetVisible => SpecificationSheetID != Guid.Empty; public bool DocumentsVisible => Row.Get(c => c.Documents) > 0; public String DocumentsDescription => $"Documents ({Row.Get(c => c.Documents)})"; public bool KanbansVisible => false; //Row.Get(c => c.Kanbans) > 0; public String KanbansDescription => $"View Tasks / History (0)"; //{Row.Get(c => c.Kanbans)})"; } }