using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Windows; using Comal.Classes; using InABox.Clients; using InABox.Core; using InABox.DynamicGrid; using InABox.Integration.Logikal; using InABox.Wpf; using InABox.WPF; using Microsoft.Win32; using PRSDesktop.Integrations.Logikal; using sun.rmi.server; namespace PRSDesktop; public partial class LogikalProjectImport : Window { private void UpdateStatus(LogikalResponse response) { Status.Content = response.ToString(); } private Func? _filter; private Action? _selected; public LogikalProjectImport(Func filter, Action selected) { InitializeComponent(); _filter = filter; _selected = selected; ProjectCentres.Refresh(true, false); Projects.Refresh(true, false); } private void OK_Click(object sender, RoutedEventArgs e) { var project = Projects.SelectedRows.FirstOrDefault()?.ToObject(); if (project == null) return; _selected?.Invoke(project); DialogResult = true; } private void Cancel_Click(object sender, RoutedEventArgs e) { DialogResult = false; } private void Window_Loaded(object sender, RoutedEventArgs e) { ProjectCentres.Get(); } private void ProjectCentres_OnSelectItem(object sender, DynamicGridSelectionEventArgs e) { var id = e.Rows?.FirstOrDefault()?.Get(x => x.ID) ?? Guid.Empty; var _centre = ProjectCentres.Items.FirstOrDefault(x => x.ID == id); Projects.Items = _centre?.Projects.Where(x=>_filter == null || _filter(x)).ToList() ?? new List(); Projects.Refresh(false, true); Status.Content = $"{Projects.Items.Count} Projects Found"; } private void Projects_OnSelectItem(object sender, DynamicGridSelectionEventArgs e) { var id = e.Rows?.FirstOrDefault()?.Get(x => x.ID) ?? Guid.Empty; OK.IsEnabled = id != Guid.Empty; } }