Preview for send all functionality

This commit is contained in:
Daniel Schick 2025-07-24 16:16:28 +02:00
parent 4d65172fbf
commit ffca8e5bdd
3 changed files with 73 additions and 37 deletions

View File

@ -432,21 +432,28 @@ namespace ENI2.DetailViewControls
{ {
MessageBoxResult result = MessageBox.Show(Properties.Resources.textConfirmSend, Properties.Resources.textConfirm, MessageBoxButton.YesNo, MessageBoxImage.Question); MessageBoxResult result = MessageBox.Show(Properties.Resources.textConfirmSend, Properties.Resources.textConfirm, MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes) if (result == MessageBoxResult.Yes)
{
this.SendMessages((IList<Message>)this.dataGridMessages.SelectedItems);
}
}
private void SendMessages(IList<Message> messages)
{ {
bool somethingsNotSaved = false; bool somethingsNotSaved = false;
foreach (Message selectedMessage in this.dataGridMessages.SelectedItems)
foreach (Message selectedMessage in messages)
{ {
if (selectedMessage.IsDirty) somethingsNotSaved = true; if (selectedMessage.IsDirty) somethingsNotSaved = true;
} }
if(somethingsNotSaved) if (somethingsNotSaved)
{ {
if (MessageBox.Show(Properties.Resources.textUnsavedChangesSendAnyWay, Properties.Resources.textConfirmation, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No) if (MessageBox.Show(Properties.Resources.textUnsavedChangesSendAnyWay, Properties.Resources.textConfirmation, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No)
return; return;
} }
List<Message> watchList = new List<Message>(); List<Message> watchList = new List<Message>();
foreach (Message selectedMessage in this.dataGridMessages.SelectedItems) foreach (Message selectedMessage in messages)
{ {
if (selectedMessage.Reset) selectedMessage.Reset = false; // "nochmal" Versenden ist möglich if (selectedMessage.Reset) selectedMessage.Reset = false; // "nochmal" Versenden ist möglich
selectedMessage.InternalStatus = Message.BSMDStatus.TOSEND; selectedMessage.InternalStatus = Message.BSMDStatus.TOSEND;
@ -469,7 +476,6 @@ namespace ENI2.DetailViewControls
this.OnRequestSendValidation(); this.OnRequestSendValidation();
this.dataGridMessages.Items.Refresh(); this.dataGridMessages.Items.Refresh();
/* /*
if (this.mssd == null) if (this.mssd == null)
{ {
@ -491,7 +497,6 @@ namespace ENI2.DetailViewControls
this.mssd.AddMessages(watchList); this.mssd.AddMessages(watchList);
*/ */
} }
}
private void contextResetMessage(object sender, RoutedEventArgs e) private void contextResetMessage(object sender, RoutedEventArgs e)
{ {
@ -828,7 +833,38 @@ namespace ENI2.DetailViewControls
private void buttonSendAll_Click(object sender, RoutedEventArgs e) private void buttonSendAll_Click(object sender, RoutedEventArgs e)
{ {
// TBD SelectImportClassesDialog sicd = new SelectImportClassesDialog();
List<Message> readyToSendMessages = new List<Message>();
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);
}
sicd.Messages = readyToSendMessages;
sicd.IsTransit = this.Core.IsTransit;
if ((sicd.ShowDialog() ?? false) && (sicd.SelectedClasses.Count > 0))
{
// now send all selected messages
List<Message> toSendMessages = new List<Message>();
foreach(NotificationClass notificationClass in sicd.SelectedClasses)
{
Message selectedMessage = readyToSendMessages.Find(x => x.MessageNotificationClass == notificationClass);
if (selectedMessage != null)
{
toSendMessages.Add(selectedMessage);
}
}
if (toSendMessages.Count > 0)
{
this.SendMessages(toSendMessages);
}
}
} }
#endregion #endregion

View File

@ -5306,7 +5306,7 @@ namespace ENI2.Properties {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Select classes to import. /// Looks up a localized string similar to Select message classes.
/// </summary> /// </summary>
public static string textSelectImportClasses { public static string textSelectImportClasses {
get { get {

View File

@ -1757,7 +1757,7 @@
<value>Select all</value> <value>Select all</value>
</data> </data>
<data name="textSelectImportClasses" xml:space="preserve"> <data name="textSelectImportClasses" xml:space="preserve">
<value>Select classes to import</value> <value>Select message classes</value>
</data> </data>
<data name="textSelectNone" xml:space="preserve"> <data name="textSelectNone" xml:space="preserve">
<value>Select none</value> <value>Select none</value>