fix removing of entries

This commit is contained in:
Florian Stinglmayr 2024-04-13 12:07:38 +02:00
parent 2e8daca61c
commit 7e85159fd5

View File

@ -271,15 +271,27 @@ public partial class MainWindow : MetroWindow {
object obj = entries.SelectedItem;
bool removed = false;
if (obj.GetType() == typeof(Objective)) {
removed = report.Objectives.Remove(obj as Objective);
if (obj.GetType() == typeof(SystemObjectives)) {
removed = report.SystemObjectives.Remove(obj as SystemObjectives);
} else if (obj.GetType() == typeof(Objective)) {
report
.SystemObjectives
.ForEach(x => {
if (x.Objectives.Remove(obj as Objective)) {
removed = true;
}
});
} else if (obj.GetType() == typeof(UITransaction) ||
obj.GetType().IsSubclassOf(typeof(UITransaction))) {
foreach (Objective parent in report.Objectives) {
if (parent.UITransactions.Remove(obj as UITransaction)) {
removed = true;
}
}
obj.GetType().IsSubclassOf(typeof(UITransaction))) {
report
.SystemObjectives
.SelectMany(x =>
x.Objectives
.Where(x => x.UITransactions.Contains(obj as UITransaction))
)
.ToList()
.ForEach(x => removed = x.UITransactions.Remove(obj as UITransaction))
;
}
if (removed) {