using System; using System.Collections.Generic; using System.Linq; using System.Windows.Controls; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop { /// /// Interaction logic for JobMaterialPanel.xaml /// public partial class JobRequisitionPanel : UserControl, IPanel, IJobControl { public JobRequisitionPanel() { InitializeComponent(); Requisitions.OnSelectItem += Requisitions_OnSelectItem; } public Guid JobID { get => Requisitions.JobID; set { Requisitions.JobID = value; Items.JobID = value; } } public bool IsReady { get; set; } public event DataModelUpdateEvent OnUpdateDataModel; public void CreateToolbarButtons(IPanelHost host) { } public void Setup() { Requisitions.Refresh(true, false); Items.Refresh(true, false); } public void Shutdown() { } public void Refresh() { Requisitions.Refresh(false, true); Items.Refresh(false, true); } public string SectionName => "Job Requisitions"; public DataModel DataModel(Selection selection) { var ids = Requisitions.ExtractValues(x => x.ID, selection).ToArray(); return new AutoDataModel(new Filter(c => c.ID).InList(ids)); } public Dictionary Selected() { return new Dictionary(); } public void Heartbeat(TimeSpan time) { } private void Requisitions_OnSelectItem(object sender, DynamicGridSelectionEventArgs e) { var row = e.Rows?.FirstOrDefault(); Items.RequisitionID = row != null ? row.Get(x => x.ID) : CoreUtils.FullGuid; Items.JobID = row != null ? row.Get(x => x.Job.ID) : CoreUtils.FullGuid; Items.Refresh(false, true); } } }