diff --git a/ENI2/Controls/MaerskListControl.xaml.cs b/ENI2/Controls/MaerskListControl.xaml.cs index bf334d66..0ebeb899 100644 --- a/ENI2/Controls/MaerskListControl.xaml.cs +++ b/ENI2/Controls/MaerskListControl.xaml.cs @@ -488,7 +488,26 @@ namespace ENI2.Controls if (!md.ColM.IsNullOrEmpty()) { md.MessageCore = await DBManagerAsync.LoadCoreByVisitIdAsync(md.ColM); + if (md.MessageCore != null) + { + MaerskData existingMD = await DBManagerAsync.LoadMaerskDataForCoreAsync(md.MessageCore.Id.Value); + if(existingMD == null) + { + // we have a core but no MarskData for this import -> save it + md.MessageCoreId = (Guid) md.MessageCore.Id; + _ = DBManagerAsync.SaveAsync(md); + } + else + { + existingMD.Update(md); + _ = DBManagerAsync.SaveAsync(existingMD); + this.UpdateStatus(existingMD); + maerskDataList.Add(existingMD); + continue; // add existing instead of new one + } + } } + this.UpdateStatus(md); maerskDataList.Add(md); } @@ -531,26 +550,6 @@ namespace ENI2.Controls } } - /* - - private async void buttonSave_Click(object sender, RoutedEventArgs e) - { - busyControl.BusyState = Util.UIHelper.BusyStateEnum.BUSY; - - // save the current list to DB (only if the entries have matching cores!) - foreach(MaerskData md in this.maerskDataList) - { - if(md.MessageCore != null) - { - await DBManagerAsync.Save(md); - } - } - - busyControl.BusyState = Util.UIHelper.BusyStateEnum.NEUTRAL; - } - - */ - private async void buttonRequestIds_Click(object sender, RoutedEventArgs e) { // find all entries from now until 4 days into the future and track parallel requests