From 2d912cfba3b30a20ad8aea2a5fb9ed9f624926ed Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Fri, 11 May 2018 10:46:22 +0000 Subject: [PATCH] Version 5.0.8: Zahlreiche Kleinigkeiten modifiziert und korrigiert, abgel. Zertifikat ENI2, System-Error bei Visit-Id Beantragung. --- ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs | 2 +- ...aritimeHealthDeclarationDetailControl.xaml | 2 +- ...timeHealthDeclarationDetailControl.xaml.cs | 1 + .../OverViewDetailControl.xaml.cs | 1 + .../TowageDetailControl.xaml | 12 +++---- ENI-2/ENI2/ENI2/ENI2.csproj | 7 ++-- ENI-2/ENI2/ENI2/ENI2_1_TemporaryKey.pfx | Bin 0 -> 1668 bytes .../CopyDeclarationDialog.xaml.cs | 1 + Stundensheet.xlsx | Bin 37457 -> 37523 bytes nsw/Source/bsmd.ExcelReadService/Util.cs | 18 ++++++++++ .../bsmd.LockingService.csproj.user | 1 + .../bsmd.ReportGenerator/ReportService.cs | 4 +-- nsw/Source/bsmd.database/Message.cs | 31 +++++++++++------- .../Properties/AssemblyProductInfo.cs | 2 +- .../Properties/AssemblyProjectInfo.cs | 2 +- nsw/Source/bsmd.hisnord/Response.cs | 25 ++++++++++++-- nsw/Source/bsmd.status/Settings.cs | 28 ++++++++++++++++ nsw/Source/misc/db.sqlite | Bin 13099008 -> 13099008 bytes 18 files changed, 108 insertions(+), 29 deletions(-) create mode 100644 ENI-2/ENI2/ENI2/ENI2_1_TemporaryKey.pfx create mode 100644 nsw/Source/bsmd.status/Settings.cs diff --git a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs index ff5b19ef..ce6c664b 100644 --- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs @@ -213,7 +213,7 @@ namespace ENI2 MessageCore existingCore = null; - if (newCore.IsDK && newCore.VisitId.IsNullOrEmpty() && newCore.TransitId.IsNullOrEmpty()) + if (!newCore.IsDK && newCore.VisitId.IsNullOrEmpty() && newCore.TransitId.IsNullOrEmpty()) { // deutsche Häfen fordern eine Visit-Id an, für DK erfolgt hier nur die Anlage eines Datensatzes newCore.BSMDStatusInternal = MessageCore.BSMDStatus.TOSEND; diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml index 88cc79a7..cfd06d26 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml @@ -80,7 +80,7 @@ - + diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs index 18af9999..d9a9d87f 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs @@ -232,6 +232,7 @@ namespace ENI2.DetailViewControls this.RegisterIntegerUpDownChange(this.integerUpDownNumberOfIllPersons, Message.NotificationClass.MDH); this.RegisterTextboxChange(this.textBoxPlaceOfIssue, Message.NotificationClass.MDH); this.RegisterTextboxChange(this.textBoxStowawaysJoiningLocation, Message.NotificationClass.MDH); + this.RegisterDatePickerChange(this.datePickerDateOfIssue, Message.NotificationClass.MDH); } diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs index 3c2a01fe..5d38bcbb 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs @@ -690,6 +690,7 @@ namespace ENI2.DetailViewControls for (int i = 0; i < this.dataGridMessages.SelectedItems.Count; i++) { Message selectedMessage = this.dataGridMessages.SelectedItems[i] as Message; + selectedMessage.LastStatus = selectedMessage.InternalStatus; selectedMessage.InternalStatus = Message.BSMDStatus.REPORT; selectedMessage.ReportingPartyId = App.UserId; // wichtig damit der Richtige(!) die Mail mit dem PDF bekommt DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(selectedMessage); diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml index 638e7f9f..5fc7ccb7 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml @@ -24,10 +24,10 @@ - + - - + + @@ -48,9 +48,9 @@ - - - + + + diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj index f39e35f3..eda3ca71 100644 --- a/ENI-2/ENI2/ENI2/ENI2.csproj +++ b/ENI-2/ENI2/ENI2/ENI2.csproj @@ -36,7 +36,7 @@ true publish.html 1 - 5.0.7.%2a + 5.0.8.%2a false true true @@ -84,10 +84,10 @@ Properties\app.manifest - C907F4E529D2646C3EAECBF9ACA831CCC99069A8 + DBBB0891995CB133BFEBAA82DFB101EE9701C465 - ENI2_TemporaryKey.pfx + ENI2_1_TemporaryKey.pfx true @@ -614,6 +614,7 @@ Settings.settings True + Reference.svcmap diff --git a/ENI-2/ENI2/ENI2/ENI2_1_TemporaryKey.pfx b/ENI-2/ENI2/ENI2/ENI2_1_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..9f66974a251876833d9f094f2f4ef4479293f4a0 GIT binary patch literal 1668 zcmZXTdpOi-6vyAW_*s`+XKI#|44R>-8KF_^(9E=2%nZ3qNEgLU7c?;lHKsPRG)(Pg zwYx4wjO4P)rAZo%$|j=d;*x5LMk$46U1ERr?AEi-{&CLxJ)iS_-{<|~9I^-!A`vLE z2y%sV?2dRI(ab|=BML+i2`z$%Ft#C!P__SQp-RvqR3VJ>;rI>G`^TlPi$E5LkhNqH zvYNaQ()}01j~k%BVlJU-m3p>~A(7f0Xc1CcUcw#E@G zJE)cv_}^nrWC<^%jM|ASMf8=8SG|v=+ZXk9Uc1voq^fi>3$sa~ z-f`nkrl2!f#Ub-tV`>KsQ)E_qYTnD#IFlSs}t(3AP9fJ>rZ9$Y?;=L(K`AW{883>%m66mI?KOiq#N_1 z9^1dBwtO4#erz%%@`DMh&E$kZ?iNR~6p|YWll?~2nezwa%fvEezhYHJFz1ciUvhB? zX)g69mvxOGabXY++#+@vWwtdymdrD~B^TG<%%|}RS5Te8HFn1SuDQP?6pI8QFAW9{ zZ<*gpN$n(?ejaljECoWN5dZ*k$QOvAuoiiPB(N5&15R+z0Ta$-Kmv|{0UQA3lcE4; zuo6~OxORpq3C;}I;{sN}#1U3x_+-HD6!IoW#~wnU5u#Pb2nuHr3-|yY2nT!+4feqi z0b+qA*Z}8`Bnm{r6&==zAO>d9aLor>Vg3ClmnGnQx+j3E?O+Gs!i98x1$J~@Mfi6_*m(30vQqaj(PSoZshywrh|6;(y%erj%cYrjL# zSiF@_gUg2+lN{6OdF*bhFrQ1eom;j|qn0I^H8W+ZY?+3oTwnOEnSkl$Njqx^0S||3 zpr#ENExH5lLQg*8&}&ZZt_t7G_K`^rE@6L{&JL~7Q&qqC9er^6RW(HiH;VF~_+vLG znrbl9}|^FMH;w|EUMtu$(2>iA{IeA*62Z@7HxokkYc^*|3H4VKKdKWR@d z|Mr#1xJ{e-z@25oO^Mb6X9lk9AF2vnL|hx}(R#e-p0c@p=Suc-8~r?1PM?qGUPVvD zL`z^KcJ@VwYSe@-6eI_2l3b~)dvY}tn|p9#u|We3C%)dCTxIOBw6}6dcgJSw9`oSg z<613Goxgi0Tc?xqwyaCzhDgf0EhWZw6qFWzb7|e=DJ!m(-{h`IU;O~3hi(5`CV35c zF&CnS4$(yf@I91uHZ?iTHIxVXD@#*gn8Y4eT*xff3)iLl$Z_jpIXY5RU JipR$R`x}6Sz=Qw* literal 0 HcmV?d00001 diff --git a/ENI-2/ENI2/ENI2/EditControls/CopyDeclarationDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/CopyDeclarationDialog.xaml.cs index 5d1e1184..9fc89ab5 100644 --- a/ENI-2/ENI2/ENI2/EditControls/CopyDeclarationDialog.xaml.cs +++ b/ENI-2/ENI2/ENI2/EditControls/CopyDeclarationDialog.xaml.cs @@ -126,6 +126,7 @@ namespace ENI2.EditControls { this.doubleUpDownIMO.IsEnabled = false; this.locodePoC.LocodeValue = newVisitId.Substring(0, 5); + this.locodePoC.IsEnabled = false; } else { diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 72f2a6955b89b6c2b7deab832f89e3476478a540..161c8cda09e6d36195dc2c32b58425a8196fd6e0 100644 GIT binary patch delta 24719 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 60) ibcPosition.FlashpointInformation = 1; // GT60CEL + else ibcPosition.FlashpointInformation = 2; // LE60CEL + } + } } reader.Conf.ConfirmText(ibc_flash, ibcPosition.Flashpoint_CEL, aReadState); ibcPosition.Quantity_KGM = (int ?) reader.ReadNumber(ibc_quantity); @@ -867,9 +875,19 @@ namespace bsmd.ExcelReadService if (!ibcPosition.Flashpoint_CEL.IsNullOrEmpty()) { if (ibcPosition.Flashpoint_CEL == "-") + { aReadState = ExcelReader.ReadState.FAIL; + } else + { aReadState = ExcelReader.ReadState.OK; + double flashval = 0; + if (double.TryParse(ibcPosition.Flashpoint_CEL, out flashval)) + { + if (flashval > 60) ibcPosition.FlashpointInformation = 1; // GT60CEL + else ibcPosition.FlashpointInformation = 2; // LE60CEL + } + } } reader.Conf.ConfirmText(ibc_flash, ibcPosition.Flashpoint_CEL, aReadState); ibcPosition.Quantity_KGM = (int?)reader.ReadNumber(ibc_quantity); diff --git a/nsw/Source/bsmd.LockingService/bsmd.LockingService.csproj.user b/nsw/Source/bsmd.LockingService/bsmd.LockingService.csproj.user index 98f83566..09edda29 100644 --- a/nsw/Source/bsmd.LockingService/bsmd.LockingService.csproj.user +++ b/nsw/Source/bsmd.LockingService/bsmd.LockingService.csproj.user @@ -2,6 +2,7 @@ true + Debug|Any CPU diff --git a/nsw/Source/bsmd.ReportGenerator/ReportService.cs b/nsw/Source/bsmd.ReportGenerator/ReportService.cs index 35a0eb6b..1278ee89 100644 --- a/nsw/Source/bsmd.ReportGenerator/ReportService.cs +++ b/nsw/Source/bsmd.ReportGenerator/ReportService.cs @@ -242,8 +242,8 @@ namespace bsmd.ReportGenerator if (aMessage.InternalStatus == Message.BSMDStatus.REPORT) { if ((aMessage.MessageNotificationClass != Message.NotificationClass.VISIT) && (aMessage.MessageNotificationClass != Message.NotificationClass.TRANSIT)) - reportMessages.Add(aMessage); - aMessage.InternalStatus = Message.BSMDStatus.PREPARE; + reportMessages.Add(aMessage); + aMessage.InternalStatus = aMessage.LastStatus.HasValue ? aMessage.LastStatus.Value : Message.BSMDStatus.PREPARE; DBManager.Instance.Save(aMessage); sb.Append(aMessage.MessageNotificationClassDisplay); sb.Append("_"); diff --git a/nsw/Source/bsmd.database/Message.cs b/nsw/Source/bsmd.database/Message.cs index 4c4519ac..39a73a90 100644 --- a/nsw/Source/bsmd.database/Message.cs +++ b/nsw/Source/bsmd.database/Message.cs @@ -256,6 +256,11 @@ namespace bsmd.database /// public BSMDStatus InternalStatus { get; set; } + /// + /// Vorheriger Status (z.B. für nach der Report-Generierung), wird nicht immer gesetzt + /// + public BSMDStatus? LastStatus { get; set; } + /// /// Erweiterte Erläuterung für Status(-wechsel) zur Darstellung im ENI /// @@ -404,6 +409,7 @@ namespace bsmd.database cmd.Parameters.AddWithNullableValue("@REPORTINGPARTYID", this.reportingPartyId); cmd.Parameters.AddWithValue("@BSMDSTATUS", this.InternalStatus); + cmd.Parameters.AddWithNullableValue("@LASTSTATUS", this.LastStatus); cmd.Parameters.AddWithValue("@HIS", this.HIS); cmd.Parameters.AddWithNullableValue("@CREATEDBY", this.CreatedBy); cmd.Parameters.AddWithNullableValue("@CHANGEDBY", this.ChangedBy); @@ -415,8 +421,8 @@ namespace bsmd.database { this.CreateId(); cmd.Parameters.AddWithValue("@ID", this.Id); - string query = string.Format("INSERT INTO {0} (Id, ClientRequestId, MessageCoreId, MessageId, SentAt, ReceivedAt, RequestedAt, NotificationClass, Reset, Cancel, Status, ReportingPartyId, BSMDStatus, HIS, CreatedBy, ChangedBy, StatusInfo, SendSuccess, SentBy) " + - "VALUES (@ID, @CLIENTREQUESTID, @MESSAGECOREID, @MESSAGEID, @SENTAT, @RECEIVEDAT, @REQUESTEDAT, @NOTIFICATIONCLASS, @RESET, @CANCEL, @STATUS, @REPORTINGPARTYID, @BSMDSTATUS, @HIS, @CREATEDBY, @CHANGEDBY, @STATUSINFO, @SENDSUCCESS, @SENTBY)", + string query = string.Format("INSERT INTO {0} (Id, ClientRequestId, MessageCoreId, MessageId, SentAt, ReceivedAt, RequestedAt, NotificationClass, Reset, Cancel, Status, ReportingPartyId, BSMDStatus, LastStatus, HIS, CreatedBy, ChangedBy, StatusInfo, SendSuccess, SentBy) " + + "VALUES (@ID, @CLIENTREQUESTID, @MESSAGECOREID, @MESSAGEID, @SENTAT, @RECEIVEDAT, @REQUESTEDAT, @NOTIFICATIONCLASS, @RESET, @CANCEL, @STATUS, @REPORTINGPARTYID, @BSMDSTATUS, @LASTSTATUS, @HIS, @CREATEDBY, @CHANGEDBY, @STATUSINFO, @SENDSUCCESS, @SENTBY)", this.Tablename); cmd.CommandText = query; } @@ -424,7 +430,7 @@ namespace bsmd.database { cmd.Parameters.AddWithValue("@ID", this.Id); cmd.CommandText = string.Format("UPDATE {0} SET ClientRequestId = @CLIENTREQUESTID, MessageId = @MESSAGEID, SentAt = @SENTAT, ReceivedAt = @RECEIVEDAT, RequestedAt = @REQUESTEDAT, " + - "NotificationClass = @NOTIFICATIONCLASS, Reset = @RESET, Cancel = @CANCEL, Status = @STATUS, ReportingPartyId = @REPORTINGPARTYID, BSMDStatus = @BSMDSTATUS, HIS = @HIS, " + + "NotificationClass = @NOTIFICATIONCLASS, Reset = @RESET, Cancel = @CANCEL, Status = @STATUS, ReportingPartyId = @REPORTINGPARTYID, BSMDStatus = @BSMDSTATUS, LastStatus = @LASTSTATUS, HIS = @HIS, " + "CreatedBy = @CREATEDBY, ChangedBy = @CHANGEDBY, StatusInfo = @STATUSINFO, SendSuccess = @SENDSUCCESS, SentBy = @SENTBY WHERE Id = @ID", this.Tablename); } } @@ -433,7 +439,7 @@ namespace bsmd.database public override void PrepareLoadCommand(IDbCommand cmd, LoadFilter filter, params object[] criteria ) { string query = string.Format("SELECT Id, ClientRequestId, MessageCoreId, MessageId, SentAt, ReceivedAt, RequestedAt, NotificationClass, " + - "Reset, Cancel, Status, ReportingPartyId, BSMDStatus, HIS, Created, CreatedBy, ChangedBy, Changed, StatusInfo, SendSuccess, SentBy FROM {0} ", this.Tablename); + "Reset, Cancel, Status, ReportingPartyId, BSMDStatus, LastStatus, HIS, Created, CreatedBy, ChangedBy, Changed, StatusInfo, SendSuccess, SentBy FROM {0} ", this.Tablename); switch (filter) { @@ -513,14 +519,15 @@ namespace bsmd.database if (!reader.IsDBNull(10)) msg.Status = (MessageStatus)Enum.ToObject(typeof(MessageStatus), reader.GetByte(10)); if (!reader.IsDBNull(11)) msg.reportingPartyId = reader.GetGuid(11); if (!reader.IsDBNull(12)) msg.InternalStatus = (BSMDStatus)Enum.ToObject(typeof(BSMDStatus), reader.GetByte(12)); - if (!reader.IsDBNull(13)) msg.HIS = (NSWProvider)Enum.ToObject(typeof(NSWProvider), reader.GetByte(13)); - if (!reader.IsDBNull(14)) msg.created = reader.GetDateTime(14); - if (!reader.IsDBNull(15)) msg.CreatedBy = reader.GetString(15); - if (!reader.IsDBNull(16)) msg.ChangedBy = reader.GetString(16); - if (!reader.IsDBNull(17)) msg.changed = reader.GetDateTime(17); - if (!reader.IsDBNull(18)) msg.StatusInfo = reader.GetString(18); - if (!reader.IsDBNull(19)) msg.SendSuccess = reader.GetBoolean(19); - if (!reader.IsDBNull(20)) msg.SentBy = reader.GetString(20); + if (!reader.IsDBNull(13)) msg.LastStatus = (BSMDStatus)Enum.ToObject(typeof(BSMDStatus), reader.GetByte(13)); + if (!reader.IsDBNull(14)) msg.HIS = (NSWProvider)Enum.ToObject(typeof(NSWProvider), reader.GetByte(14)); + if (!reader.IsDBNull(15)) msg.created = reader.GetDateTime(15); + if (!reader.IsDBNull(16)) msg.CreatedBy = reader.GetString(16); + if (!reader.IsDBNull(17)) msg.ChangedBy = reader.GetString(17); + if (!reader.IsDBNull(18)) msg.changed = reader.GetDateTime(18); + if (!reader.IsDBNull(19)) msg.StatusInfo = reader.GetString(19); + if (!reader.IsDBNull(20)) msg.SendSuccess = reader.GetBoolean(20); + if (!reader.IsDBNull(21)) msg.SentBy = reader.GetString(21); result.Add(msg); } reader.Close(); diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index c8fe5228..041315ca 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs @@ -2,6 +2,6 @@ [assembly: AssemblyCompany("schick Informatik")] [assembly: AssemblyProduct("BSMD NSW interface")] -[assembly: AssemblyInformationalVersion("5.0.7")] +[assembly: AssemblyInformationalVersion("5.0.8")] [assembly: AssemblyCopyright("Copyright © 2014-2018 schick Informatik")] [assembly: AssemblyTrademark("")] \ No newline at end of file diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs index 12933a9f..f9f7b973 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("5.0.7.*")] +[assembly: AssemblyVersion("5.0.8.*")] diff --git a/nsw/Source/bsmd.hisnord/Response.cs b/nsw/Source/bsmd.hisnord/Response.cs index 1319a726..c1ef08a0 100644 --- a/nsw/Source/bsmd.hisnord/Response.cs +++ b/nsw/Source/bsmd.hisnord/Response.cs @@ -85,13 +85,27 @@ namespace bsmd.hisnord if (Enum.TryParse(systemError.Meldetype, out notificationClass)) { Message refMessage = DBManager.Instance.GetMessage(aCore, notificationClass); - if(refMessage != null) - { + if (refMessage != null) + { refMessage.InternalStatus = Message.BSMDStatus.SEND_FAILED; systemError.MessageHeaderId = refMessage.Id; DBManager.Instance.Save(refMessage); } } + else + { + if (systemError.Meldetype.Equals("REQUEST_ID")) + { + // Request gescheitert + Message refMessage = DBManager.Instance.GetMessage(aCore, aCore.IsTransit ? Message.NotificationClass.TRANSIT : Message.NotificationClass.VISIT); + if (refMessage != null) + { + refMessage.InternalStatus = Message.BSMDStatus.SEND_FAILED; + systemError.MessageHeaderId = refMessage.Id; + DBManager.Instance.Save(refMessage); + } + } + } _log.WarnFormat("SystemError received for Core [{0}], IMO {1} ETA {2}: {3} Class {4}", aCore.Id, aCore.IMO, aCore.ETADisplay, systemError.ErrorMessage, Enum.GetName(typeof(Message.NotificationClass), notificationClass)); @@ -145,6 +159,13 @@ namespace bsmd.hisnord nswResponse.Status, (core.Cancelled ?? false) ? "YES" : "NO" ); + + if((nswResponse.Status == "ACCEPTED") && ((core.Cancelled == false) == true)) + { + core.BSMDStatusInternal = MessageCore.BSMDStatus.RESPONDED; + _log.InfoFormat("Core cancel confirmed for {0}", core.DisplayId); + } + if ((nswResponse.Status == "REJECTED") && ((core.Cancelled ?? false) == true)) { core.Cancelled = false; // CANCEL fehlgeschlagen diff --git a/nsw/Source/bsmd.status/Settings.cs b/nsw/Source/bsmd.status/Settings.cs new file mode 100644 index 00000000..a6fa4482 --- /dev/null +++ b/nsw/Source/bsmd.status/Settings.cs @@ -0,0 +1,28 @@ +namespace bsmd.status.Properties { + + + // This class allows you to handle specific events on the settings class: + // The SettingChanging event is raised before a setting's value is changed. + // The PropertyChanged event is raised after a setting's value is changed. + // The SettingsLoaded event is raised after the setting values are loaded. + // The SettingsSaving event is raised before the setting values are saved. + public sealed partial class Settings { + + public Settings() { + // // To add event handlers for saving and changing settings, uncomment the lines below: + // + // this.SettingChanging += this.SettingChangingEventHandler; + // + // this.SettingsSaving += this.SettingsSavingEventHandler; + // + } + + private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { + // Add code to handle the SettingChangingEvent event here. + } + + private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { + // Add code to handle the SettingsSaving event here. + } + } +} diff --git a/nsw/Source/misc/db.sqlite b/nsw/Source/misc/db.sqlite index 968ec25814f495f7865116f739db72ea462352a0..7c0cf67698375b45630c9daa24091ca194f2af71 100644 GIT binary patch delta 696 zcmXZY#a0zy007~GAQ+%xD~R1Kb}KeYSb#ZpcZ0!IM{LEy?k+66HrOlA@ipB00R9UX z-(t2?Ty-tJI5?RSQ&yUq5mOdHVx*eHN}N=ecu9~NQd4S4ZAp|QsUvlzo+L|sX&?=y zku;Vj(o~vBb4ig@X(4ISQd&uCX(Mf=owSz@(os4|XXzqcrJHn@9@0~KNpI;R>C#vF zNq-q217(m5mLW1!hRJXlAtPm!jFt=;BV%QpjF$;AQ6@>IOqMBwmdH|BCd*}otdv!k?fRRvRn2@u|#CA?34YX9FP(@D2L>*9Fe1POpeP5IVq)bN>0leIV_-(xbV*Oa3NQb`o(cE7@%j^FGX_zUY delta 660 zcmWO2)m9Wx06@`&2&jmGE!bjrcVS~Nc6;pZ?m<0Z3kKL2*nx#(Gxif}`7wTg_hJ9Q zj>b!qqd{RtLUB=Mc0zF;k|5P2QL0OlBuk3akeX6UQl++}Ngb&x^`yR}O9N>rjij+O zk*3m2noEXcN(*Tzt)#WIk+#xK+Dn#nkdD$xI!hPnD&3^J^pKv?OL|Km=_~!DzYLIp zGDrr?5E&}NWVnowkupj~%NWU)u`*7^%LJJylVq~w$P}3>(`35jNHJ5b9o`<@={*OYk4DYr9$3S5G$)p z%u0)tq{L%6vB=+oe<>BY`Kd_-k*ZkmKKKxP3_b;)gD=6?pfZRD--7SKkKkwUEBGCY JRQ)MW{||-EAN~LU