reacted to some more corrections, Version 7.9.0.5

This commit is contained in:
Daniel Schick 2023-02-23 12:28:18 +01:00
parent f529fa9ac9
commit 6f5e5b66e9
5 changed files with 50 additions and 28 deletions

View File

@ -60,9 +60,12 @@ namespace ENI2.Controls
md.Status = MaerskData.MDStatus.ID; md.Status = MaerskData.MDStatus.ID;
md.ColM = core.VisitId; md.ColM = core.VisitId;
await DBManagerAsync.Save(md); await DBManagerAsync.Save(md);
_dbWatchDog.UnRegister(core);
this.Dispatcher.Invoke(() => this.Dispatcher.Invoke(() =>
{ {
this.dataGridPOCores.Items.Refresh(); this.dataGridPOCores.Items.Refresh();
if(_dbWatchDog.Idle)
busyControl.BusyState = Util.UIHelper.BusyStateEnum.NEUTRAL;
}); });
} }
} }
@ -205,9 +208,9 @@ namespace ENI2.Controls
private async void PerformSearch() private async void PerformSearch()
{ {
busyControl.BusyState = Util.UIHelper.BusyStateEnum.BUSY;
Dictionary<MessageCore.SearchFilterType, string> filterDict = new Dictionary<MessageCore.SearchFilterType, string>(); Dictionary<MessageCore.SearchFilterType, string> filterDict = new Dictionary<MessageCore.SearchFilterType, string>();
// Die Suche findet in dem eingestellten Intervall statt // Die Suche findet in dem eingestellten Intervall statt
uint from = this.dateTimePickerFrom.Value.Value.ToUniversalTime().ToUnixTimeStamp(); uint from = this.dateTimePickerFrom.Value.Value.ToUniversalTime().ToUnixTimeStamp();
@ -218,7 +221,7 @@ namespace ENI2.Controls
// suche auslösen // suche auslösen
List<MessageCore> searchResult = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessageCoresWithFilters(filterDict); List<MessageCore> searchResult = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessageCoresWithFilters(filterDict);
// alle anderen Häfen weg // alle anderen Häfen weg
searchResult.RemoveAll(item => (item.PoC == null) || (!item.PoC.Equals(PortLocode))); searchResult.RemoveAll(item => (item.PoC == null) || (!item.PoC.Equals(PortLocode)));
@ -237,6 +240,7 @@ namespace ENI2.Controls
} }
this.dataGridPOCores.SelectedItem = null; this.dataGridPOCores.SelectedItem = null;
busyControl.BusyState = Util.UIHelper.BusyStateEnum.NEUTRAL;
} }
private string ReadFieldAsString(IExcelDataReader reader, int fieldNum) private string ReadFieldAsString(IExcelDataReader reader, int fieldNum)
@ -306,7 +310,20 @@ namespace ENI2.Controls
} }
MaerskData md = new MaerskData(); MaerskData md = new MaerskData();
md.ColA = ReadFieldAsString(reader, 0); if (!reader.IsDBNull(0))
{
if (reader.GetFieldType(0) == typeof(DateTime))
{
md.ETA = reader.GetDateTime(0);
md.ColA = md.ETA.ToString();
}
else
{
md.ColA = reader.GetString(0);
if (DateTime.TryParse(md.ColA, out DateTime aDateTime))
md.ETA = aDateTime;
}
}
if (!reader.IsDBNull(1)) md.ColB = ReadFieldAsString(reader, 1); if (!reader.IsDBNull(1)) md.ColB = ReadFieldAsString(reader, 1);
if (!reader.IsDBNull(2)) md.ColC = ReadFieldAsString(reader, 2); if (!reader.IsDBNull(2)) md.ColC = ReadFieldAsString(reader, 2);
if (!reader.IsDBNull(3)) md.ColD = ReadFieldAsString(reader, 3); if (!reader.IsDBNull(3)) md.ColD = ReadFieldAsString(reader, 3);
@ -322,19 +339,7 @@ namespace ENI2.Controls
throw new InvalidOperationException($"{md.ColI} found in import to {PortLocode}, this is probably an error. Aborting import"); throw new InvalidOperationException($"{md.ColI} found in import to {PortLocode}, this is probably an error. Aborting import");
} }
if (!reader.IsDBNull(9)) md.ColJ = ReadFieldAsString(reader, 9); if (!reader.IsDBNull(9)) md.ColJ = ReadFieldAsString(reader, 9);
if (!reader.IsDBNull(10)) { if (!reader.IsDBNull(10)) md.ColK = ReadFieldAsString(reader, 10);
if (reader.GetFieldType(10) == typeof(DateTime))
{
md.ETA = reader.GetDateTime(10);
md.ColK = md.ETA.ToString();
}
else
{
md.ColK = reader.GetString(10);
if (DateTime.TryParse(md.ColK, out DateTime aDateTime))
md.ETA = aDateTime;
}
}
if (!reader.IsDBNull(11)) md.ColL = ReadFieldAsString(reader, 11); if (!reader.IsDBNull(11)) md.ColL = ReadFieldAsString(reader, 11);
if (!reader.IsDBNull(12)) md.ColM = ReadFieldAsString(reader, 12); if (!reader.IsDBNull(12)) md.ColM = ReadFieldAsString(reader, 12);
if (!reader.IsDBNull(13)) md.Remark = ReadFieldAsString(reader, 13); if (!reader.IsDBNull(13)) md.Remark = ReadFieldAsString(reader, 13);
@ -362,7 +367,10 @@ namespace ENI2.Controls
if (this.maerskDataList.Contains(md)) if (this.maerskDataList.Contains(md))
{ {
// update record with imported record // update record with imported record
MaerskData foundData = this.maerskDataList.First((m) => (m.ColF != null) && m.ColF.Equals(md.ColF) && (m.ColG != null) && m.ColG.Equals(md.ColG) && (md.ColH != null) && md.ColH.Equals(md.ColH)); MaerskData foundData = this.maerskDataList.First((m) => (m.ColF != null) ? m.ColF.Equals(md.ColF) : (md.ColF == null) &&
(m.ColG != null) ? m.ColG.Equals(md.ColG) : (md.ColG == null) &&
(m.ColH != null) ? m.ColH.Equals(md.ColH) : (md.ColH == null));
if(foundData.ETA.HasValue && ((foundData.ETA.Value - DateTime.Now).TotalSeconds > 0) && foundData.Update(md)) if(foundData.ETA.HasValue && ((foundData.ETA.Value - DateTime.Now).TotalSeconds > 0) && foundData.Update(md))
foundData.Status = MaerskData.MDStatus.UPDATED; foundData.Status = MaerskData.MDStatus.UPDATED;
} }
@ -463,14 +471,16 @@ namespace ENI2.Controls
MessageBox.Show("No valid rows selected", "Warning", MessageBoxButton.OK, MessageBoxImage.Exclamation); MessageBox.Show("No valid rows selected", "Warning", MessageBoxButton.OK, MessageBoxImage.Exclamation);
} }
else else
{ {
busyControl.BusyState = Util.UIHelper.BusyStateEnum.BUSY;
foreach (MaerskData md in requestList) foreach (MaerskData md in requestList)
{ {
md.Status = MaerskData.MDStatus.REQUESTING_ID; md.Status = MaerskData.MDStatus.REQUESTING_ID;
// create MessageCore and message classes // create MessageCore and message classes
md.MessageCore = new MessageCore(); md.MessageCore = new MessageCore();
md.MessageCore.InitialHIS = Message.NSWProvider.DBH; md.MessageCore.InitialHIS = Message.NSWProvider.DBH_MAERSK;
md.MessageCore.IMO = md.ColF; md.MessageCore.IMO = md.ColF;
md.MessageCore.ETA = md.ETA; md.MessageCore.ETA = md.ETA;
md.MessageCore.IsTransit = false; md.MessageCore.IsTransit = false;

View File

@ -97,6 +97,11 @@ namespace ENI2.EditControls
private void LocodePoC_PropertyChanged(object sender, PropertyChangedEventArgs e) private void LocodePoC_PropertyChanged(object sender, PropertyChangedEventArgs e)
{ {
this.CheckComplete(); this.CheckComplete();
string locode = this.locodePoC.LocodeValue;
if ((locode != null) && (locode.Equals("DEBRV") || locode.Equals("DEBRE")))
{
this.comboBoxInitialHIS.SelectedValue = Message.NSWProvider.DBH;
}
} }
private void doubleUpDownIMO_ValueChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<object> e) private void doubleUpDownIMO_ValueChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<object> e)

View File

@ -96,6 +96,11 @@ namespace ENI2.EditControls
private void LocodePoC_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) private void LocodePoC_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{ {
this.CheckComplete(); this.CheckComplete();
string locode = this.locodePoC.LocodeValue;
if((locode != null) && (locode.Equals("DEBRV") || locode.Equals("DEBRE")))
{
this.comboBoxInitialHIS.SelectedValue = Message.NSWProvider.DBH;
}
} }
private void datePickerETA_SelectedDateChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) private void datePickerETA_SelectedDateChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
@ -128,7 +133,7 @@ namespace ENI2.EditControls
isComplete &= validLocode; isComplete &= validLocode;
isComplete &= (comboBoxInitialHIS.SelectedValue != null); isComplete &= comboBoxInitialHIS.SelectedValue != null;
this.EnableOK(isComplete); this.EnableOK(isComplete);
} }

View File

@ -31,6 +31,8 @@ namespace ENI2.Util
this.bgTimer.Interval = Properties.Settings.Default.changeTimerTimeout; this.bgTimer.Interval = Properties.Settings.Default.changeTimerTimeout;
} }
public bool Idle => _watchedEntities.Count == 0;
private void BgTimer_Elapsed(object sender, ElapsedEventArgs e) private void BgTimer_Elapsed(object sender, ElapsedEventArgs e)
{ {
lock (this._entityLock) lock (this._entityLock)
@ -91,7 +93,7 @@ namespace ENI2.Util
} }
public void UnRegister(MessageCore entity) public void UnRegister(MessageCore entity)
{ {
lock (this._entityLock) lock (this._entityLock)
{ {
@ -105,7 +107,7 @@ namespace ENI2.Util
#region private / protected #region private / protected
protected void OnDatabaseEntityChanged(DatabaseEntity entity) protected void OnDatabaseEntityChanged(DatabaseEntity entity)
{ {
this.DatabaseEntityChanged?.Invoke(entity); this.DatabaseEntityChanged?.Invoke(entity);
} }

View File

@ -177,7 +177,7 @@ namespace bsmd.database
if (!reader.IsDBNull(15)) md.Remark = reader.GetString(15); if (!reader.IsDBNull(15)) md.Remark = reader.GetString(15);
// try parsing the column to datetime // try parsing the column to datetime
if (DateTime.TryParse(md.ColK, out DateTime eta)) if (DateTime.TryParse(md.ColA, out DateTime eta))
md.ETA = eta; md.ETA = eta;
} }
return md; return md;
@ -244,10 +244,10 @@ namespace bsmd.database
/// </summary> /// </summary>
public bool Equals(MaerskData other) public bool Equals(MaerskData other)
{ {
if (this.ColG == null) return false;
if (this.ColH == null) return false;
if (this.ColF == null) return false;
if (other == null) return false; if (other == null) return false;
if (this.ColG == null) return (other.ColG == null);
if (this.ColH == null) return (other.ColH == null);
if (this.ColF == null) return (other.ColF == null);
return this.ColF.Equals(other.ColF) && this.ColG.Equals(other.ColG) && this.ColH.Equals(other.ColH); return this.ColF.Equals(other.ColF) && this.ColG.Equals(other.ColG) && this.ColH.Equals(other.ColH);
} }