UpdateIdentifierTool zu Verbesserung der Wiederherstellungslogik
This commit is contained in:
parent
974817a443
commit
bcc2234040
@ -10,6 +10,7 @@ using ENI2.Util;
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace ENI2.DetailViewControls
|
namespace ENI2.DetailViewControls
|
||||||
{
|
{
|
||||||
@ -342,7 +343,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(marpol);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(marpol);
|
||||||
this.haz.MARPOLPositions.Remove(marpol);
|
this.haz.MARPOLPositions.Remove(marpol);
|
||||||
DatabaseEntity.ResetIdentifiers(haz.MARPOLPositions);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(haz.MARPOLPositions));
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
||||||
this.dataGridMARPOLItems.Items.Refresh();
|
this.dataGridMARPOLItems.Items.Refresh();
|
||||||
}
|
}
|
||||||
@ -423,7 +424,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imsbc);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imsbc);
|
||||||
this.haz.IMSBCPositions.Remove(imsbc);
|
this.haz.IMSBCPositions.Remove(imsbc);
|
||||||
DatabaseEntity.ResetIdentifiers(haz.IMSBCPositions);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(haz.IMSBCPositions));
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
||||||
this.dataGridIMSBCItems.Items.Refresh();
|
this.dataGridIMSBCItems.Items.Refresh();
|
||||||
}
|
}
|
||||||
@ -503,7 +504,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(igc);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(igc);
|
||||||
this.haz.IGCPositions.Remove(igc);
|
this.haz.IGCPositions.Remove(igc);
|
||||||
DatabaseEntity.ResetIdentifiers(haz.IGCPositions);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(haz.IGCPositions));
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
||||||
this.dataGridIGCItems.Items.Refresh();
|
this.dataGridIGCItems.Items.Refresh();
|
||||||
}
|
}
|
||||||
@ -582,7 +583,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ibc);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ibc);
|
||||||
this.haz.IBCPositions.Remove(ibc);
|
this.haz.IBCPositions.Remove(ibc);
|
||||||
DatabaseEntity.ResetIdentifiers(haz.IBCPositions);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(haz.IBCPositions));
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
||||||
this.dataGridIBCItems.Items.Refresh();
|
this.dataGridIBCItems.Items.Refresh();
|
||||||
}
|
}
|
||||||
@ -661,7 +662,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imdg);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imdg);
|
||||||
this.haz.IMDGPositions.Remove(imdg);
|
this.haz.IMDGPositions.Remove(imdg);
|
||||||
DatabaseEntity.ResetIdentifiers(haz.IMDGPositions);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(haz.IMDGPositions));
|
||||||
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
|
||||||
this.dataGridIMDGItems.Items.Refresh();
|
this.dataGridIMDGItems.Items.Refresh();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,7 @@ using System.Windows.Controls;
|
|||||||
using ENI2.EditControls;
|
using ENI2.EditControls;
|
||||||
using ENI2.Util;
|
using ENI2.Util;
|
||||||
using bsmd.database;
|
using bsmd.database;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace ENI2.DetailViewControls
|
namespace ENI2.DetailViewControls
|
||||||
{
|
{
|
||||||
@ -306,7 +306,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
_mdh.SanitaryMeasuresDetails.Remove(smd);
|
_mdh.SanitaryMeasuresDetails.Remove(smd);
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(smd);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(smd);
|
||||||
DatabaseEntity.ResetIdentifiers(_mdh.SanitaryMeasuresDetails);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_mdh.SanitaryMeasuresDetails));
|
||||||
this.SublistElementChanged(Message.NotificationClass.MDH);
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
||||||
this.dataGridSanitaryMeasures.Items.Refresh();
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
||||||
}
|
}
|
||||||
@ -380,7 +380,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
_mdh.InfectedAreas.Remove(ia);
|
_mdh.InfectedAreas.Remove(ia);
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ia);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ia);
|
||||||
DatabaseEntity.ResetIdentifiers(_mdh.InfectedAreas);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_mdh.InfectedAreas));
|
||||||
this.SublistElementChanged(Message.NotificationClass.MDH);
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
||||||
this.dataGridInfectedAreas.Items.Refresh();
|
this.dataGridInfectedAreas.Items.Refresh();
|
||||||
}
|
}
|
||||||
@ -455,7 +455,7 @@ namespace ENI2.DetailViewControls
|
|||||||
_mdh.PortOfCallLast30Days.Remove(poc30d);
|
_mdh.PortOfCallLast30Days.Remove(poc30d);
|
||||||
poc30d.DeleteElements();
|
poc30d.DeleteElements();
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(poc30d);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(poc30d);
|
||||||
DatabaseEntity.ResetIdentifiers(_mdh.PortOfCallLast30Days);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_mdh.PortOfCallLast30Days));
|
||||||
this.SublistElementChanged(Message.NotificationClass.MDH);
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
||||||
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
@ -118,7 +119,7 @@ namespace ENI2.DetailViewControls
|
|||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
_noa_nod.CallPurposes.Remove(cp);
|
_noa_nod.CallPurposes.Remove(cp);
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(cp);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(cp);
|
||||||
DatabaseEntity.ResetIdentifiers(_noa_nod.CallPurposes);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_noa_nod.CallPurposes));
|
||||||
this.SublistElementChanged(Message.NotificationClass.NOA_NOD);
|
this.SublistElementChanged(Message.NotificationClass.NOA_NOD);
|
||||||
this.dataGridCallPurposes.Items.Refresh();
|
this.dataGridCallPurposes.Items.Refresh();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -334,7 +334,7 @@ namespace ENI2.DetailViewControls
|
|||||||
|
|
||||||
if (ofd.ShowDialog() ?? false)
|
if (ofd.ShowDialog() ?? false)
|
||||||
{
|
{
|
||||||
FileStream stream = null;
|
FileStream stream;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
|
stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
|
||||||
|
|||||||
@ -165,8 +165,8 @@ namespace ENI2.DetailViewControls
|
|||||||
{
|
{
|
||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
_was.Waste.Remove(waste);
|
_was.Waste.Remove(waste);
|
||||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(waste);
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(waste);
|
||||||
DatabaseEntity.ResetIdentifiers(_was.Waste);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_was.Waste));
|
||||||
this.SublistElementChanged(Message.NotificationClass.WAS);
|
this.SublistElementChanged(Message.NotificationClass.WAS);
|
||||||
this.dataGridWaste.Items.Refresh();
|
this.dataGridWaste.Items.Refresh();
|
||||||
}
|
}
|
||||||
@ -242,7 +242,7 @@ namespace ENI2.DetailViewControls
|
|||||||
ofd.Filter = "Excel Files|*.xls;*.xlsx";
|
ofd.Filter = "Excel Files|*.xls;*.xlsx";
|
||||||
if (ofd.ShowDialog() ?? false)
|
if (ofd.ShowDialog() ?? false)
|
||||||
{
|
{
|
||||||
FileStream stream = null;
|
FileStream stream;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
|
stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
|
||||||
|
|||||||
@ -16,7 +16,8 @@
|
|||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<enictrl:ENIDataGrid Grid.Row="0" Grid.Column="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
|
<enictrl:ENIDataGrid Grid.Row="0" Grid.Column="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
|
||||||
SelectionMode="Single" AutoGenerateColumns="False" Margin="5,5,5,0" x:Name="dataGridMessageHistories" MouseDoubleClick="DataGridViolations_MouseDoubleClick">
|
SelectionMode="Single" AutoGenerateColumns="False" Margin="5,5,5,0" x:Name="dataGridMessageHistories"
|
||||||
|
MouseDoubleClick="DataGridViolations_MouseDoubleClick" CanUserAddRows="False">
|
||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textType}" Binding="{Binding EntityName}" IsReadOnly="True" Width="0.05*" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textType}" Binding="{Binding EntityName}" IsReadOnly="True" Width="0.05*" />
|
||||||
<DataGridTextColumn Header="{x:Static p:Resources.textTimestamp}" Binding="{Binding Created}" IsReadOnly="True" Width="0.1*" />
|
<DataGridTextColumn Header="{x:Static p:Resources.textTimestamp}" Binding="{Binding Created}" IsReadOnly="True" Width="0.1*" />
|
||||||
|
|||||||
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||||
|
<section name="UpdateIdentifierTool.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
|
||||||
|
</startup>
|
||||||
|
<applicationSettings>
|
||||||
|
<UpdateIdentifierTool.Properties.Settings>
|
||||||
|
<setting name="ConnectionString" serializeAs="String">
|
||||||
|
<value>Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False</value>
|
||||||
|
</setting>
|
||||||
|
</UpdateIdentifierTool.Properties.Settings>
|
||||||
|
</applicationSettings>
|
||||||
|
</configuration>
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using bsmd.database;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace UpdateIdentifierTool
|
||||||
|
{
|
||||||
|
static class Program
|
||||||
|
{
|
||||||
|
static void Main(string[] args)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SqlConnection con = new SqlConnection(Properties.Settings.Default.ConnectionString);
|
||||||
|
con.Open();
|
||||||
|
Console.WriteLine();
|
||||||
|
Console.Write("LOAD..");
|
||||||
|
// alles message histories laden...
|
||||||
|
string query = "SELECT Id, ReportingPartyId, EntityId, EntityType, EntityName, EntityValues, Timestamp, Identifier FROM MessageHistory ORDER BY Timestamp";
|
||||||
|
SqlCommand cmd = new SqlCommand(query, con);
|
||||||
|
IDataReader reader = cmd.ExecuteReader();
|
||||||
|
List<MessageHistory> allHistories = MessageHistory.LoadList(reader);
|
||||||
|
reader.Close();
|
||||||
|
|
||||||
|
string updateString = "UPDATE MessageHistory SET Identifier = @IDENTIFIER WHERE ID = @ID";
|
||||||
|
SqlCommand updateCmd = new SqlCommand(updateString, con);
|
||||||
|
SqlParameter p1 = new SqlParameter("@IDENTIFIER", SqlDbType.Int);
|
||||||
|
SqlParameter p2 = new SqlParameter("@ID", SqlDbType.UniqueIdentifier);
|
||||||
|
updateCmd.Parameters.Add(p1);
|
||||||
|
updateCmd.Parameters.Add(p2);
|
||||||
|
|
||||||
|
int cnt = 0;
|
||||||
|
|
||||||
|
foreach(MessageHistory mh in allHistories)
|
||||||
|
{
|
||||||
|
object o = mh.CreateObjectFromValues();
|
||||||
|
if(o is ISublistElement)
|
||||||
|
{
|
||||||
|
string identString = ((ISublistElement)o).Identifier;
|
||||||
|
Regex re = new Regex(@"\d+");
|
||||||
|
Match m = re.Match(identString);
|
||||||
|
if (m.Success)
|
||||||
|
{
|
||||||
|
mh.Identifier = Int32.Parse(m.Value);
|
||||||
|
p1.Value = mh.Identifier;
|
||||||
|
p2.Value = mh.Id;
|
||||||
|
updateCmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
double percentage = 100 * (double) cnt / (double) allHistories.Count;
|
||||||
|
Console.Write("\b\b\b\b\b\b");
|
||||||
|
Console.Write("{0:0.###}", percentage);
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
Console.WriteLine();
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("UpdateIdentifierTool")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("UpdateIdentifierTool")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("a30955c4-8580-4c51-8622-053c7ae52d77")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
37
nsw/Source/UpdateIdentifierTool/UpdateIdentifierTool/Properties/Settings.Designer.cs
generated
Normal file
37
nsw/Source/UpdateIdentifierTool/UpdateIdentifierTool/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace UpdateIdentifierTool.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default {
|
||||||
|
get {
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=E:\\DATA\\DB\\NSW.MDF;Integrated " +
|
||||||
|
"Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;Appl" +
|
||||||
|
"icationIntent=ReadWrite;MultiSubnetFailover=False")]
|
||||||
|
public string ConnectionString {
|
||||||
|
get {
|
||||||
|
return ((string)(this["ConnectionString"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="UpdateIdentifierTool.Properties" GeneratedClassName="Settings">
|
||||||
|
<Profiles />
|
||||||
|
<Settings>
|
||||||
|
<Setting Name="ConnectionString" Type="System.String" Scope="Application">
|
||||||
|
<Value Profile="(Default)">Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False</Value>
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
|
</SettingsFile>
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{A30955C4-8580-4C51-8622-053C7AE52D77}</ProjectGuid>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<RootNamespace>UpdateIdentifierTool</RootNamespace>
|
||||||
|
<AssemblyName>UpdateIdentifierTool</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\bsmd.database\bsmd.database.csproj">
|
||||||
|
<Project>{19945af2-379b-46a5-b27a-303b5ec1d557}</Project>
|
||||||
|
<Name>bsmd.database</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
||||||
@ -15,6 +15,7 @@ using System.Diagnostics;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using log4net;
|
using log4net;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace bsmd.database
|
namespace bsmd.database
|
||||||
{
|
{
|
||||||
@ -772,7 +773,15 @@ namespace bsmd.database
|
|||||||
mh.EntityValues = JsonConvert.SerializeObject(entity);
|
mh.EntityValues = JsonConvert.SerializeObject(entity);
|
||||||
if (ReportingParty.CurrentReportingParty != null)
|
if (ReportingParty.CurrentReportingParty != null)
|
||||||
mh.ReportingPartyId = ReportingParty.CurrentReportingParty.Id.Value;
|
mh.ReportingPartyId = ReportingParty.CurrentReportingParty.Id.Value;
|
||||||
|
if (entity is ISublistElement)
|
||||||
|
{
|
||||||
|
string stringIdentifier = ((ISublistElement)entity).Identifier;
|
||||||
|
Regex re = new Regex(@"\d+");
|
||||||
|
Match m = re.Match(stringIdentifier);
|
||||||
|
if (m.Success)
|
||||||
|
mh.Identifier = Int32.Parse(m.Value);
|
||||||
|
}
|
||||||
|
|
||||||
// 3. MessageHistory Element speichern
|
// 3. MessageHistory Element speichern
|
||||||
// TODO: das könnte auch in einem Background Thread passieren, da der Wert erst irgendwann gelesen wird und aktuell nicht relevant ist
|
// TODO: das könnte auch in einem Background Thread passieren, da der Wert erst irgendwann gelesen wird und aktuell nicht relevant ist
|
||||||
SqlCommand cmd = new SqlCommand();
|
SqlCommand cmd = new SqlCommand();
|
||||||
|
|||||||
@ -16,16 +16,6 @@ namespace bsmd.database
|
|||||||
public class HAZ : DatabaseEntity, ISublistContainer
|
public class HAZ : DatabaseEntity, ISublistContainer
|
||||||
{
|
{
|
||||||
|
|
||||||
#region Fields
|
|
||||||
|
|
||||||
private ObservableCollection<DatabaseEntity> imdgPositions = new ObservableCollection<DatabaseEntity>();
|
|
||||||
private ObservableCollection<DatabaseEntity> ibcPositions = new ObservableCollection<DatabaseEntity>();
|
|
||||||
private ObservableCollection<DatabaseEntity> igcPositions = new ObservableCollection<DatabaseEntity>();
|
|
||||||
private ObservableCollection<DatabaseEntity> imsbcPositions = new ObservableCollection<DatabaseEntity>();
|
|
||||||
private ObservableCollection<DatabaseEntity> marpolPositions = new ObservableCollection<DatabaseEntity>();
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public HAZ()
|
public HAZ()
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
@ -71,16 +61,16 @@ namespace bsmd.database
|
|||||||
[ENI2Validation]
|
[ENI2Validation]
|
||||||
[MaxLength(64)]
|
[MaxLength(64)]
|
||||||
public string DPGContactPhone { get; set; }
|
public string DPGContactPhone { get; set; }
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> IMDGPositions { get { return this.imdgPositions; } }
|
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> IBCPositions { get { return this.ibcPositions; } }
|
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> IGCPositions { get { return this.igcPositions; } }
|
public ObservableCollection<IMDGPosition> IMDGPositions { get; private set; } = new ObservableCollection<IMDGPosition>();
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> IMSBCPositions { get { return this.imsbcPositions; } }
|
public ObservableCollection<IBCPosition> IBCPositions { get; private set; } = new ObservableCollection<IBCPosition>();
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> MARPOLPositions { get { return this.marpolPositions; } }
|
public ObservableCollection<IGCPosition> IGCPositions { get; private set; } = new ObservableCollection<IGCPosition>();
|
||||||
|
|
||||||
|
public ObservableCollection<IMSBCPosition> IMSBCPositions { get; private set; } = new ObservableCollection<IMSBCPosition>();
|
||||||
|
|
||||||
|
public ObservableCollection<MARPOL_Annex_I_Position> MARPOLPositions { get; private set; } = new ObservableCollection<MARPOL_Annex_I_Position>();
|
||||||
|
|
||||||
// selektor HAZA / HAZD
|
// selektor HAZA / HAZD
|
||||||
[ENI2Validation]
|
[ENI2Validation]
|
||||||
@ -558,11 +548,11 @@ namespace bsmd.database
|
|||||||
{
|
{
|
||||||
HAZ haz = this.MemberwiseClone() as HAZ;
|
HAZ haz = this.MemberwiseClone() as HAZ;
|
||||||
haz.id = null;
|
haz.id = null;
|
||||||
haz.imdgPositions = new ObservableCollection<DatabaseEntity>();
|
haz.IMDGPositions = new ObservableCollection<IMDGPosition>();
|
||||||
haz.ibcPositions = new ObservableCollection<DatabaseEntity>();
|
haz.IBCPositions = new ObservableCollection<IBCPosition>();
|
||||||
haz.igcPositions = new ObservableCollection<DatabaseEntity>();
|
haz.IGCPositions = new ObservableCollection<IGCPosition>();
|
||||||
haz.imsbcPositions = new ObservableCollection<DatabaseEntity>();
|
haz.IMSBCPositions = new ObservableCollection<IMSBCPosition>();
|
||||||
haz.marpolPositions = new ObservableCollection<DatabaseEntity>();
|
haz.MARPOLPositions = new ObservableCollection<MARPOL_Annex_I_Position>();
|
||||||
|
|
||||||
foreach (IMDGPosition imdgPosition in this.IMDGPositions)
|
foreach (IMDGPosition imdgPosition in this.IMDGPositions)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -25,13 +25,13 @@ namespace bsmd.database
|
|||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> PortOfCallLast30Days { get; private set; } = new ObservableCollection<DatabaseEntity>();
|
public ObservableCollection<PortOfCallLast30Days> PortOfCallLast30Days { get; private set; } = new ObservableCollection<PortOfCallLast30Days>();
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> SanitaryMeasuresDetails { get; private set; } = new ObservableCollection<DatabaseEntity>();
|
public ObservableCollection<SanitaryMeasuresDetail> SanitaryMeasuresDetails { get; private set; } = new ObservableCollection<SanitaryMeasuresDetail>();
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> StowawaysJoiningLocations { get; private set; } = new ObservableCollection<DatabaseEntity>();
|
public ObservableCollection<StowawaysJoiningLocation> StowawaysJoiningLocations { get; private set; } = new ObservableCollection<StowawaysJoiningLocation>();
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> InfectedAreas { get; private set; } = new ObservableCollection<DatabaseEntity>();
|
public ObservableCollection<InfectedArea> InfectedAreas { get; private set; } = new ObservableCollection<InfectedArea>();
|
||||||
|
|
||||||
[ShowReport]
|
[ShowReport]
|
||||||
[Validation1(ValidationCode.NOT_NULL)]
|
[Validation1(ValidationCode.NOT_NULL)]
|
||||||
@ -630,10 +630,10 @@ namespace bsmd.database
|
|||||||
{
|
{
|
||||||
MDH mdh = this.MemberwiseClone() as MDH;
|
MDH mdh = this.MemberwiseClone() as MDH;
|
||||||
mdh.id = null;
|
mdh.id = null;
|
||||||
mdh.InfectedAreas = new ObservableCollection<DatabaseEntity>();
|
mdh.InfectedAreas = new ObservableCollection<InfectedArea>();
|
||||||
mdh.PortOfCallLast30Days = new ObservableCollection<DatabaseEntity>();
|
mdh.PortOfCallLast30Days = new ObservableCollection<PortOfCallLast30Days>();
|
||||||
mdh.SanitaryMeasuresDetails = new ObservableCollection<DatabaseEntity>();
|
mdh.SanitaryMeasuresDetails = new ObservableCollection<SanitaryMeasuresDetail>();
|
||||||
mdh.StowawaysJoiningLocations = new ObservableCollection<DatabaseEntity>();
|
mdh.StowawaysJoiningLocations = new ObservableCollection<StowawaysJoiningLocation>();
|
||||||
|
|
||||||
foreach (InfectedArea ia in this.InfectedAreas)
|
foreach (InfectedArea ia in this.InfectedAreas)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -36,6 +36,8 @@ namespace bsmd.database
|
|||||||
|
|
||||||
public DateTime Created { get; private set; }
|
public DateTime Created { get; private set; }
|
||||||
|
|
||||||
|
public int Identifier { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ENI Grid helper property
|
/// ENI Grid helper property
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -56,7 +58,7 @@ namespace bsmd.database
|
|||||||
|
|
||||||
internal static string GetLoadCommand()
|
internal static string GetLoadCommand()
|
||||||
{
|
{
|
||||||
return "SELECT Id, ReportingPartyId, EntityId, EntityType, EntityName, EntityValues, Timestamp FROM MessageHistory WHERE EntityId=@ENTITYID ORDER BY Timestamp";
|
return "SELECT Id, ReportingPartyId, EntityId, EntityType, EntityName, EntityValues, Timestamp, Identifier FROM MessageHistory WHERE EntityId = @ENTITYID ORDER BY Timestamp, Identifier";
|
||||||
}
|
}
|
||||||
|
|
||||||
public object CreateObjectFromValues()
|
public object CreateObjectFromValues()
|
||||||
@ -104,14 +106,18 @@ namespace bsmd.database
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Elemente nach dem ausgewählten Element hinzufügen (wenn sie zur gleichen Gruppe gehören)
|
// Elemente nach dem ausgewählten Element hinzufügen (wenn sie zur gleichen Gruppe gehören)
|
||||||
indexIdentifier = myIdentifier;
|
if ((tmpList.Count - 1) > selIndex)
|
||||||
for(int tmpIndex = selIndex + 1; (indexIdentifier != 1) && (tmpIndex < tmpList.Count); tmpIndex++)
|
|
||||||
{
|
{
|
||||||
DatabaseEntity nextEntity = tmpList[tmpIndex].CreateObjectFromValues() as DatabaseEntity;
|
DatabaseEntity nextEntity = tmpList[selIndex + 1].CreateObjectFromValues() as DatabaseEntity;
|
||||||
indexIdentifier = Int32.Parse(((ISublistElement)nextEntity).Identifier);
|
indexIdentifier = Int32.Parse(((ISublistElement)nextEntity).Identifier);
|
||||||
tmpResult.AddLast(nextEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
for (int tmpIndex = selIndex + 2; (indexIdentifier != 1) && (tmpIndex < tmpList.Count); tmpIndex++)
|
||||||
|
{
|
||||||
|
tmpResult.AddLast(nextEntity);
|
||||||
|
nextEntity = tmpList[tmpIndex].CreateObjectFromValues() as DatabaseEntity;
|
||||||
|
indexIdentifier = Int32.Parse(((ISublistElement)nextEntity).Identifier);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new List<DatabaseEntity>(tmpResult);
|
return new List<DatabaseEntity>(tmpResult);
|
||||||
@ -135,9 +141,10 @@ namespace bsmd.database
|
|||||||
scmd.Parameters.AddWithValue("@P4", this.EntityName);
|
scmd.Parameters.AddWithValue("@P4", this.EntityName);
|
||||||
scmd.Parameters.AddWithValue("@P5", this.EntityValues);
|
scmd.Parameters.AddWithValue("@P5", this.EntityValues);
|
||||||
scmd.Parameters.AddWithValue("@P6", DateTime.Now);
|
scmd.Parameters.AddWithValue("@P6", DateTime.Now);
|
||||||
|
scmd.Parameters.AddWithValue("@P7", this.Identifier);
|
||||||
|
|
||||||
cmd.CommandText = string.Format("INSERT INTO {0} (Id, ReportingPartyId, EntityId, EntityType, " +
|
cmd.CommandText = string.Format("INSERT INTO {0} (Id, ReportingPartyId, EntityId, EntityType, " +
|
||||||
"EntityName, EntityValues, Timestamp) VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6)", this.Tablename);
|
"EntityName, EntityValues, Timestamp, Identifier) VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7)", this.Tablename);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PrepareDelete(IDbCommand cmd)
|
public void PrepareDelete(IDbCommand cmd)
|
||||||
@ -147,7 +154,7 @@ namespace bsmd.database
|
|||||||
scmd.Parameters.AddWithValue("@ID", this.Id);
|
scmd.Parameters.AddWithValue("@ID", this.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static List<MessageHistory> LoadList(IDataReader reader)
|
public static List<MessageHistory> LoadList(IDataReader reader)
|
||||||
{
|
{
|
||||||
List<MessageHistory> result = new List<MessageHistory>();
|
List<MessageHistory> result = new List<MessageHistory>();
|
||||||
|
|
||||||
@ -161,6 +168,7 @@ namespace bsmd.database
|
|||||||
if (!reader.IsDBNull(4)) mh.EntityName = reader.GetString(4);
|
if (!reader.IsDBNull(4)) mh.EntityName = reader.GetString(4);
|
||||||
if (!reader.IsDBNull(5)) mh.EntityValues = reader.GetString(5);
|
if (!reader.IsDBNull(5)) mh.EntityValues = reader.GetString(5);
|
||||||
if (!reader.IsDBNull(6)) mh.Created = reader.GetDateTime(6);
|
if (!reader.IsDBNull(6)) mh.Created = reader.GetDateTime(6);
|
||||||
|
if (!reader.IsDBNull(7)) mh.Identifier = reader.GetInt32(7);
|
||||||
|
|
||||||
result.Add(mh);
|
result.Add(mh);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ namespace bsmd.database
|
|||||||
public DateTime? ETDFromPortOfCall { get; set; }
|
public DateTime? ETDFromPortOfCall { get; set; }
|
||||||
|
|
||||||
[Validation1(ValidationCode.LIST_EMPTY)]
|
[Validation1(ValidationCode.LIST_EMPTY)]
|
||||||
public ObservableCollection<DatabaseEntity> CallPurposes { get; } = new ObservableCollection<DatabaseEntity>();
|
public ObservableCollection<CallPurpose> CallPurposes { get; } = new ObservableCollection<CallPurpose>();
|
||||||
|
|
||||||
[ShowReport]
|
[ShowReport]
|
||||||
[Validation2(ValidationCode.NOT_NULL)]
|
[Validation2(ValidationCode.NOT_NULL)]
|
||||||
|
|||||||
@ -28,7 +28,7 @@ namespace bsmd.database
|
|||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public MDH MDH { get; set; }
|
public MDH MDH { get; set; }
|
||||||
|
|
||||||
public List<DatabaseEntity> CrewJoinedShip { get; private set; } = new List<DatabaseEntity>();
|
public List<PortOfCallLast30DaysCrewJoinedShip> CrewJoinedShip { get; private set; } = new List<PortOfCallLast30DaysCrewJoinedShip>();
|
||||||
[ShowReport]
|
[ShowReport]
|
||||||
[Validation2(ValidationCode.LOCODE)]
|
[Validation2(ValidationCode.LOCODE)]
|
||||||
[MaxLength(5)]
|
[MaxLength(5)]
|
||||||
@ -116,7 +116,7 @@ namespace bsmd.database
|
|||||||
this.CrewJoinedShip.Clear();
|
this.CrewJoinedShip.Clear();
|
||||||
// add existing and new crew
|
// add existing and new crew
|
||||||
this.CrewJoinedShip.AddRange(foundList);
|
this.CrewJoinedShip.AddRange(foundList);
|
||||||
DatabaseEntity.ResetIdentifiers(this.CrewJoinedShip);
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(this.CrewJoinedShip));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -273,7 +273,7 @@ namespace bsmd.database
|
|||||||
{
|
{
|
||||||
PortOfCallLast30Days p30 = this.MemberwiseClone() as PortOfCallLast30Days;
|
PortOfCallLast30Days p30 = this.MemberwiseClone() as PortOfCallLast30Days;
|
||||||
p30.id = null;
|
p30.id = null;
|
||||||
p30.CrewJoinedShip = new List<DatabaseEntity>();
|
p30.CrewJoinedShip = new List<PortOfCallLast30DaysCrewJoinedShip>();
|
||||||
|
|
||||||
foreach (PortOfCallLast30DaysCrewJoinedShip p30Crew in this.CrewJoinedShip)
|
foreach (PortOfCallLast30DaysCrewJoinedShip p30Crew in this.CrewJoinedShip)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -65,9 +65,9 @@ namespace bsmd.database
|
|||||||
[ENI2Validation]
|
[ENI2Validation]
|
||||||
public bool? ConfirmationOfSufficiency { get; set; }
|
public bool? ConfirmationOfSufficiency { get; set; }
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> Waste { get; private set; } = new ObservableCollection<DatabaseEntity>();
|
public ObservableCollection<Waste> Waste { get; private set; } = new ObservableCollection<Waste>();
|
||||||
|
|
||||||
public ObservableCollection<DatabaseEntity> WasteDisposalServiceProvider { get; private set; } = new ObservableCollection<DatabaseEntity>();
|
public ObservableCollection<WasteDisposalServiceProvider> WasteDisposalServiceProvider { get; private set; } = new ObservableCollection<WasteDisposalServiceProvider>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Hilfsproperty, um eine kommaseparierte Liste von WasteDisposalServiceProvider (analog ANSW) im ENI-2 anzuzeigen,
|
/// Hilfsproperty, um eine kommaseparierte Liste von WasteDisposalServiceProvider (analog ANSW) im ENI-2 anzuzeigen,
|
||||||
@ -137,7 +137,8 @@ namespace bsmd.database
|
|||||||
// add existing and new providers
|
// add existing and new providers
|
||||||
foreach(WasteDisposalServiceProvider wdsp in foundList)
|
foreach(WasteDisposalServiceProvider wdsp in foundList)
|
||||||
this.WasteDisposalServiceProvider.Add(wdsp);
|
this.WasteDisposalServiceProvider.Add(wdsp);
|
||||||
DatabaseEntity.ResetIdentifiers(this.WasteDisposalServiceProvider);
|
List<DatabaseEntity> tmpList = new List<DatabaseEntity>(this.WasteDisposalServiceProvider);
|
||||||
|
DatabaseEntity.ResetIdentifiers(tmpList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -490,8 +491,8 @@ namespace bsmd.database
|
|||||||
{
|
{
|
||||||
WAS was = this.MemberwiseClone() as WAS;
|
WAS was = this.MemberwiseClone() as WAS;
|
||||||
was.id = null;
|
was.id = null;
|
||||||
was.Waste = new ObservableCollection<DatabaseEntity>();
|
was.Waste = new ObservableCollection<Waste>();
|
||||||
was.WasteDisposalServiceProvider = new ObservableCollection<DatabaseEntity>();
|
was.WasteDisposalServiceProvider = new ObservableCollection<WasteDisposalServiceProvider>();
|
||||||
|
|
||||||
foreach (Waste waste in this.Waste)
|
foreach (Waste waste in this.Waste)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user