Fixes for send all functionality
This commit is contained in:
parent
b979136467
commit
54aa91afc1
@ -262,7 +262,7 @@ SelectionMode="Extended" AutoGenerateColumns="False" MouseDoubleClick="dataGrid_
|
||||
<DataTemplate>
|
||||
<!--Image Source="{Binding src:Util.ImageDict[ENINotificationDetailGroup]}" /-->
|
||||
<!--Image Source="{Binding Source={x:Static src:Util.ImageDict}, Path=[ENINotificationDetailGroup]}"></-->
|
||||
<Image Source="{Binding ENINotificationIconString, Converter={util:NullImageConverter}}" Height="20" />
|
||||
<Image Source="{Binding ENINotificationIconString, Converter={util:NullImageConverter}}" Height="24" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
|
||||
@ -834,19 +834,19 @@ namespace ENI2.DetailViewControls
|
||||
private void buttonSendAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SelectImportClassesDialog sicd = new SelectImportClassesDialog();
|
||||
List<Message> readyToSendMessages = new List<Message>();
|
||||
List<Message.NotificationClass> readyToSendMessages = new List<Message.NotificationClass>();
|
||||
|
||||
foreach (Message message in this.Messages)
|
||||
{
|
||||
if (message.MessageNotificationClass == NotificationClass.STO) continue;
|
||||
// other filters?
|
||||
|
||||
{
|
||||
if (((message.ViolationCount ?? 0) > 0) || ((message.ErrorCount ?? 0) > 0)) continue; // these need more work
|
||||
readyToSendMessages.Add(message);
|
||||
if (Message.IsListClass(message.MessageNotificationClass) && (message.Elements.Count == 0)) continue; // avoid suspend on empty list classes
|
||||
readyToSendMessages.Add(message.MessageNotificationClass);
|
||||
}
|
||||
|
||||
sicd.Messages = readyToSendMessages;
|
||||
sicd.Messages = this.Messages;
|
||||
sicd.PreselectedClasses.AddRange(readyToSendMessages);
|
||||
sicd.IsTransit = this.Core.IsTransit;
|
||||
sicd.IsImportMode = false;
|
||||
|
||||
if ((sicd.ShowDialog() ?? false) && (sicd.SelectedClasses.Count > 0))
|
||||
{
|
||||
@ -854,7 +854,7 @@ namespace ENI2.DetailViewControls
|
||||
List<Message> toSendMessages = new List<Message>();
|
||||
foreach(NotificationClass notificationClass in sicd.SelectedClasses)
|
||||
{
|
||||
Message selectedMessage = readyToSendMessages.Find(x => x.MessageNotificationClass == notificationClass);
|
||||
Message selectedMessage = this.Messages.Find(x => x.MessageNotificationClass == notificationClass);
|
||||
if (selectedMessage != null)
|
||||
{
|
||||
toSendMessages.Add(selectedMessage);
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:p="clr-namespace:ENI2.Properties"
|
||||
mc:Ignorable="d"
|
||||
Title="{x:Static p:Resources.textSelectImportClasses}" Height="600" Width="250" Background="AliceBlue">
|
||||
Title="{x:Static p:Resources.textSelectImportClasses}" Height="660" Width="250" Background="AliceBlue">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*" />
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
// Copyright (c) 2017-today schick Informatik
|
||||
// Description: Select classes for import
|
||||
// Description: Select classes for import via Excel or for sending them once completed
|
||||
// Returns: Array of selected classes as property
|
||||
|
||||
using System;
|
||||
@ -17,7 +17,8 @@ namespace ENI2.EditControls
|
||||
public partial class SelectImportClassesDialog : ENI2.Controls.EditWindowBase
|
||||
{
|
||||
private readonly List<SelectClass> _selectClasses = new List<SelectClass>();
|
||||
private readonly List<bsmd.database.Message.NotificationClass> _selectedClasses = new List<Message.NotificationClass>();
|
||||
private readonly List<Message.NotificationClass> _selectedClasses = new List<Message.NotificationClass>();
|
||||
private readonly List<Message.NotificationClass> _preselectedClasses = new List<Message.NotificationClass>();
|
||||
|
||||
public SelectImportClassesDialog()
|
||||
{
|
||||
@ -25,33 +26,62 @@ namespace ENI2.EditControls
|
||||
this.Loaded += SelectImportClassesDialog_Loaded;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// List of all message classes that are available for selection
|
||||
/// </summary>
|
||||
public List<Message.NotificationClass> SelectedClasses
|
||||
{
|
||||
get { return _selectedClasses; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Classes that should be checked already when the dialog is opened (relevant for send mode)
|
||||
/// </summary>
|
||||
public List<Message.NotificationClass > PreselectedClasses
|
||||
{
|
||||
get { return _preselectedClasses; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// These messages are needed to derive message classes from, already sorted in the right manner
|
||||
/// </summary>
|
||||
public List<Message> Messages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Flag to reduce selection amount in case of transit
|
||||
/// </summary>
|
||||
public bool IsTransit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Flag if dialog is used in import mode (default true). Set false for send all mode.
|
||||
/// </summary>
|
||||
public bool IsImportMode { get; set; } = true;
|
||||
|
||||
private void SelectImportClassesDialog_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
foreach(Message aMessage in this.Messages)
|
||||
|
||||
|
||||
foreach (Message aMessage in this.Messages)
|
||||
{
|
||||
// these are of no interest
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.VISIT) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.TRANSIT) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.STO))
|
||||
continue;
|
||||
|
||||
// these are never imported but may be sent
|
||||
if (IsImportMode)
|
||||
{
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.ATA) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.ATD))
|
||||
continue;
|
||||
}
|
||||
|
||||
// filter out messages not relevant for transit
|
||||
if (IsTransit && (
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.ATA) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.ATD) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.STO)
|
||||
) continue;
|
||||
|
||||
if (IsTransit &&
|
||||
((aMessage.MessageNotificationClass == Message.NotificationClass.BKRD) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.BPOL) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.BKRD) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.HAZD) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.INFO) ||
|
||||
(aMessage.MessageNotificationClass == Message.NotificationClass.LADG) ||
|
||||
@ -65,13 +95,14 @@ namespace ENI2.EditControls
|
||||
)) continue;
|
||||
|
||||
SelectClass sc = new SelectClass();
|
||||
sc.Name = Enum.GetName(typeof(bsmd.database.Message.NotificationClass), aMessage.MessageNotificationClass);
|
||||
sc.Name = Enum.GetName(typeof(Message.NotificationClass), aMessage.MessageNotificationClass);
|
||||
sc.Class = aMessage.MessageNotificationClass;
|
||||
sc.IsSelected = false;
|
||||
sc.IsSelected = this._preselectedClasses.Contains(sc.Class);
|
||||
_selectClasses.Add(sc);
|
||||
}
|
||||
|
||||
|
||||
this.checkListBoxClasses.ItemsSource = _selectClasses;
|
||||
this.checkListBoxClasses.ItemsSource = _selectClasses;
|
||||
this.OKClicked += SelectImportClassesDialog_OKClicked;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user