| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using System.Linq;
- using System.Windows;
- using InABox.DynamicGrid;
- namespace PRSDesktop.Integrations.V6;
- public partial class V6VariationSelection : Window
- {
-
- private V6Client _client;
- private V6Project _project;
- private Func<V6Variation, bool> _callback;
- private Func<V6Variation, bool>? _filter;
-
- public V6VariationSelection(V6Client client, V6Project project, Func<V6Variation,bool>? filter, Func<V6Variation,bool> callback)
- {
- _client = client;
- _callback = callback;
- _project = project;
- _filter = filter;
- InitializeComponent();
- Variations.Refresh(true, false);
- }
- private void V6GroupSelection_OnLoaded(object sender, RoutedEventArgs e)
- {
- if (_client.IsConnected)
- {
- Variations.Items = _client.GetVariations(_project).Where(x=> _filter == null || _filter(x)).ToList();
- if (Variations.Items.Count == 1)
- DialogResult = _callback.Invoke(Variations.Items.First());
- Variations.Refresh(false,true);
- }
- }
-
- private void Variations_OnOnSelectItem(object sender, DynamicGridSelectionEventArgs e)
- {
- OK.IsEnabled = Variations.SelectedRows.Any();
- }
- private void OK_Click(object sender, RoutedEventArgs e)
- {
- var variation = Variations.SelectedRows?.FirstOrDefault()?.ToObject<V6Variation>();
- if (variation == null)
- return;
- var result = _callback.Invoke(variation);
- DialogResult = result;
- }
- private void Cancel_Click(object sender, RoutedEventArgs e)
- {
- DialogResult = false;
- }
- }
|