Zwischenstand Bearbeitung März
This commit is contained in:
parent
001a2deb77
commit
8e70a7ecde
@ -26,12 +26,12 @@
|
|||||||
<value>1000</value>
|
<value>1000</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="LockingServerAddress" serializeAs="String">
|
<setting name="LockingServerAddress" serializeAs="String">
|
||||||
<value>http://192.168.2.4/LockingService/LockingService.svc</value>
|
<!--value>http://192.168.2.4/LockingService/LockingService.svc</value-->
|
||||||
<!--value>http://heupferd/bsmd.LockingService/LockingService.svc</value-->
|
<value>http://heupferd/bsmd.LockingService/LockingService.svc</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="ConnectionString" serializeAs="String">
|
<setting name="ConnectionString" serializeAs="String">
|
||||||
<value>Data Source=192.168.2.12;Initial Catalog=nsw;Uid=dfuser;Pwd=dfpasswd;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</value>
|
<!--value>Data Source=192.168.2.12;Initial Catalog=nsw;Uid=dfuser;Pwd=dfpasswd;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</value-->
|
||||||
<!--value>Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</value-->
|
<value>Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</value>
|
||||||
</setting>
|
</setting>
|
||||||
</ENI2.Properties.Settings>
|
</ENI2.Properties.Settings>
|
||||||
</applicationSettings>
|
</applicationSettings>
|
||||||
|
|||||||
@ -82,6 +82,7 @@ namespace ENI2
|
|||||||
List<ValidationField> vFields = bsmd.database.ValidationRule.ValidationFields;
|
List<ValidationField> vFields = bsmd.database.ValidationRule.ValidationFields;
|
||||||
RuleEngine.RegisterLocodeChecker(Util.GlobalStructures.IsValidLocode);
|
RuleEngine.RegisterLocodeChecker(Util.GlobalStructures.IsValidLocode);
|
||||||
RuleEngine.RegisterPortAreaChecker(LocalizedLookup.PortAreaExists);
|
RuleEngine.RegisterPortAreaChecker(LocalizedLookup.PortAreaExists);
|
||||||
|
RuleEngine.RegisterNationalityChecker(LocalizedLookup.CheckNationality);
|
||||||
|
|
||||||
// Connect to locking service (if enabled)
|
// Connect to locking service (if enabled)
|
||||||
try
|
try
|
||||||
@ -108,8 +109,7 @@ namespace ENI2
|
|||||||
|
|
||||||
private void DatePicker_PreviewKeyDown(object sender, KeyEventArgs e)
|
private void DatePicker_PreviewKeyDown(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
var dp = sender as DatePicker;
|
if (!(sender is DatePicker dp)) return;
|
||||||
if (dp == null) return;
|
|
||||||
|
|
||||||
if (e.Key == Key.D && Keyboard.Modifiers == ModifierKeys.Control)
|
if (e.Key == Key.D && Keyboard.Modifiers == ModifierKeys.Control)
|
||||||
{
|
{
|
||||||
@ -140,7 +140,6 @@ namespace ENI2
|
|||||||
|
|
||||||
ResetSplashCreated.Set();
|
ResetSplashCreated.Set();
|
||||||
System.Windows.Threading.Dispatcher.Run();
|
System.Windows.Threading.Dispatcher.Run();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,7 +24,7 @@ namespace ENI2.DetailViewControls
|
|||||||
private Message _wasMessage;
|
private Message _wasMessage;
|
||||||
private WAS _was;
|
private WAS _was;
|
||||||
|
|
||||||
private static string[] _wasteDeliveryList =
|
private static readonly string[] _wasteDeliveryList =
|
||||||
{
|
{
|
||||||
"ALL",
|
"ALL",
|
||||||
"SOME",
|
"SOME",
|
||||||
@ -144,8 +144,7 @@ namespace ENI2.DetailViewControls
|
|||||||
|
|
||||||
private void DataGridWaste_DeleteRequested(DatabaseEntity obj)
|
private void DataGridWaste_DeleteRequested(DatabaseEntity obj)
|
||||||
{
|
{
|
||||||
Waste waste = obj as Waste;
|
if (obj is Waste waste)
|
||||||
if (waste != null)
|
|
||||||
{
|
{
|
||||||
// are you sure dialog is in base class
|
// are you sure dialog is in base class
|
||||||
_was.Waste.Remove(waste);
|
_was.Waste.Remove(waste);
|
||||||
|
|||||||
@ -35,8 +35,8 @@
|
|||||||
<MinimumRequiredVersion>3.5.1.0</MinimumRequiredVersion>
|
<MinimumRequiredVersion>3.5.1.0</MinimumRequiredVersion>
|
||||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||||
<WebPage>publish.html</WebPage>
|
<WebPage>publish.html</WebPage>
|
||||||
<ApplicationRevision>1</ApplicationRevision>
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
<ApplicationVersion>5.1.4.%2a</ApplicationVersion>
|
<ApplicationVersion>5.1.6.%2a</ApplicationVersion>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
|
|||||||
@ -11,10 +11,11 @@ using bsmd.ExcelReadService;
|
|||||||
|
|
||||||
namespace ENI2
|
namespace ENI2
|
||||||
{
|
{
|
||||||
static class LocalizedLookup
|
internal static class LocalizedLookup
|
||||||
{
|
{
|
||||||
private static SQLiteConnection _con;
|
private static readonly SQLiteConnection _con;
|
||||||
private const string _locode_DB_NAME = "db.sqlite";
|
private const string _locode_DB_NAME = "db.sqlite";
|
||||||
|
private static Dictionary<string, string> _nationalities = null;
|
||||||
|
|
||||||
static LocalizedLookup()
|
static LocalizedLookup()
|
||||||
{
|
{
|
||||||
@ -71,6 +72,12 @@ namespace ENI2
|
|||||||
return numResults > 0;
|
return numResults > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool CheckNationality(string nationality)
|
||||||
|
{
|
||||||
|
if (_nationalities == null) _nationalities = getNationalities();
|
||||||
|
return _nationalities.ContainsKey(nationality);
|
||||||
|
}
|
||||||
|
|
||||||
public static Dictionary<string, string> getNationalities()
|
public static Dictionary<string, string> getNationalities()
|
||||||
{
|
{
|
||||||
Dictionary<string, string> result = new Dictionary<string, string>();
|
Dictionary<string, string> result = new Dictionary<string, string>();
|
||||||
@ -179,7 +186,7 @@ namespace ENI2
|
|||||||
if (!reader.IsDBNull(0)) code = reader.GetString(0);
|
if (!reader.IsDBNull(0)) code = reader.GetString(0);
|
||||||
if (!reader.IsDBNull(1)) description = reader.GetString(1);
|
if (!reader.IsDBNull(1)) description = reader.GetString(1);
|
||||||
|
|
||||||
if ((code != null) && (code.Length == 1))
|
if (code?.Length == 1)
|
||||||
code = string.Format("0{0}", code); // bei einstelligen Werten 0 voranstellen
|
code = string.Format("0{0}", code); // bei einstelligen Werten 0 voranstellen
|
||||||
|
|
||||||
if ((code != null) && (description != null))
|
if ((code != null) && (description != null))
|
||||||
@ -220,7 +227,7 @@ namespace ENI2
|
|||||||
{
|
{
|
||||||
List<LocodeDB.LocodeEntry> results = new List<LocodeDB.LocodeEntry>();
|
List<LocodeDB.LocodeEntry> results = new List<LocodeDB.LocodeEntry>();
|
||||||
|
|
||||||
string query = "SELECT LocationCode, LocationName FROM SSN_LOCODES WHERE LocationName like $PAR";
|
const string query = "SELECT LocationCode, LocationName FROM SSN_LOCODES WHERE LocationName like $PAR";
|
||||||
SQLiteCommand cmd = new SQLiteCommand(query, _con);
|
SQLiteCommand cmd = new SQLiteCommand(query, _con);
|
||||||
cmd.Parameters.AddWithValue("$PAR", city);
|
cmd.Parameters.AddWithValue("$PAR", city);
|
||||||
IDataReader reader = cmd.ExecuteReader();
|
IDataReader reader = cmd.ExecuteReader();
|
||||||
|
|||||||
2
ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
generated
2
ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
generated
@ -3708,7 +3708,7 @@ namespace ENI2.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Risks.
|
/// Looks up a localized string similar to Hazards.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string textRisks {
|
public static string textRisks {
|
||||||
get {
|
get {
|
||||||
|
|||||||
@ -1298,7 +1298,7 @@
|
|||||||
<value>Radionuclide name</value>
|
<value>Radionuclide name</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="textRisks" xml:space="preserve">
|
<data name="textRisks" xml:space="preserve">
|
||||||
<value>Risks</value>
|
<value>Hazards</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="textStowagePosition" xml:space="preserve">
|
<data name="textStowagePosition" xml:space="preserve">
|
||||||
<value>Stowage position</value>
|
<value>Stowage position</value>
|
||||||
|
|||||||
Binary file not shown.
@ -1293,15 +1293,11 @@ namespace bsmd.ExcelReadService
|
|||||||
}
|
}
|
||||||
WAS was = wasMessage.Elements[0] as WAS;
|
WAS was = wasMessage.Elements[0] as WAS;
|
||||||
was.DeleteElements();
|
was.DeleteElements();
|
||||||
|
|
||||||
Util.ScanMessage(was, reader);
|
Util.ScanMessage(was, reader);
|
||||||
|
|
||||||
was.WasteDisposalDelivery = reader.ReadDelivery("WAS.WasteDisposalDelivery");
|
was.WasteDisposalDelivery = reader.ReadDelivery("WAS.WasteDisposalDelivery");
|
||||||
if (was.LastWasteDisposalPort?.Length > 5)
|
was.LastWasteDisposalPort = reader.ReadLoCode("WAS.LastWasteDisposalPort");
|
||||||
{
|
|
||||||
string lastWasteDisposalPort = reader.ReadText("WAS.LastWasteDisposalPort");
|
|
||||||
List<string> deliveryLocodes = LocodeDB.AllLocodesForCityName(lastWasteDisposalPort);
|
|
||||||
if (deliveryLocodes.Count == 1)
|
|
||||||
was.LastWasteDisposalPort = deliveryLocodes[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
string wastedispServProvName = reader.ReadText("WAS.WasteDisposalServiceProviderName");
|
string wastedispServProvName = reader.ReadText("WAS.WasteDisposalServiceProviderName");
|
||||||
if (wastedispServProvName != null)
|
if (wastedispServProvName != null)
|
||||||
|
|||||||
@ -155,7 +155,7 @@ namespace bsmd.database
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
scmd.Parameters.AddWithValue(@"ID", this.Id);
|
scmd.Parameters.AddWithValue("ID", this.Id);
|
||||||
scmd.CommandText = string.Format("UPDATE {0} SET CrewMemberLastName = @P2, CrewMemberFirstName = @P3, " +
|
scmd.CommandText = string.Format("UPDATE {0} SET CrewMemberLastName = @P2, CrewMemberFirstName = @P3, " +
|
||||||
"CrewMemberPlaceOfBirth = @P4, CrewMemberDateOfBirth = @P5, CrewMemberGender = @P6, CrewMemberNationality = @P7, "+
|
"CrewMemberPlaceOfBirth = @P4, CrewMemberDateOfBirth = @P5, CrewMemberGender = @P6, CrewMemberNationality = @P7, "+
|
||||||
"CrewMemberIdentityDocumentType = @P8, CrewMemberIdentityDocumentId = @P9, CrewMemberVisaNumber = @P10, " +
|
"CrewMemberIdentityDocumentType = @P8, CrewMemberIdentityDocumentId = @P9, CrewMemberVisaNumber = @P10, " +
|
||||||
|
|||||||
@ -106,12 +106,14 @@ namespace bsmd.database
|
|||||||
|
|
||||||
public delegate bool LocodeValidHandler(string locode, LocodeMode mode);
|
public delegate bool LocodeValidHandler(string locode, LocodeMode mode);
|
||||||
public delegate bool PortAreaValidHandler(string locode, string portArea);
|
public delegate bool PortAreaValidHandler(string locode, string portArea);
|
||||||
|
public delegate bool NationalityValidHandler(string nationality);
|
||||||
|
|
||||||
private static readonly ILog log = LogManager.GetLogger(typeof(RuleEngine));
|
private static readonly ILog log = LogManager.GetLogger(typeof(RuleEngine));
|
||||||
private static Dictionary<int, string> errorTextList = null;
|
private static Dictionary<int, string> errorTextList = null;
|
||||||
private static Dictionary<int, string> violationTextList = null;
|
private static Dictionary<int, string> violationTextList = null;
|
||||||
private static LocodeValidHandler _locodeChecker = null;
|
private static LocodeValidHandler _locodeChecker = null;
|
||||||
private static PortAreaValidHandler _portAreaChecker = null;
|
private static PortAreaValidHandler _portAreaChecker = null;
|
||||||
|
private static NationalityValidHandler _nationalityChecker = null;
|
||||||
|
|
||||||
public RuleEngine()
|
public RuleEngine()
|
||||||
{
|
{
|
||||||
@ -125,11 +127,14 @@ namespace bsmd.database
|
|||||||
public Dictionary<DatabaseEntity, List<MessageViolation>> ViolationDict { get; } = new Dictionary<DatabaseEntity, List<MessageViolation>>();
|
public Dictionary<DatabaseEntity, List<MessageViolation>> ViolationDict { get; } = new Dictionary<DatabaseEntity, List<MessageViolation>>();
|
||||||
|
|
||||||
public static PortAreaValidHandler PortAreaChecker { get { return _portAreaChecker; } }
|
public static PortAreaValidHandler PortAreaChecker { get { return _portAreaChecker; } }
|
||||||
|
public static LocodeValidHandler LocodeChecker { get { return _locodeChecker; } }
|
||||||
|
public static NationalityValidHandler NationalityChecker { get { return _nationalityChecker; } }
|
||||||
|
|
||||||
#region public static property validation
|
#region public static property validation
|
||||||
|
|
||||||
public static void RegisterLocodeChecker(LocodeValidHandler handler) { _locodeChecker = handler; }
|
public static void RegisterLocodeChecker(LocodeValidHandler handler) { _locodeChecker = handler; }
|
||||||
public static void RegisterPortAreaChecker(PortAreaValidHandler handler) { _portAreaChecker = handler; }
|
public static void RegisterPortAreaChecker(PortAreaValidHandler handler) { _portAreaChecker = handler; }
|
||||||
|
public static void RegisterNationalityChecker(NationalityValidHandler handler) { _nationalityChecker = handler; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Test function checks decorated properties on an entity for errors (only errors, violations cannot
|
/// Test function checks decorated properties on an entity for errors (only errors, violations cannot
|
||||||
@ -271,9 +276,9 @@ namespace bsmd.database
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ValidationCode.FLAG_CODE:
|
case ValidationCode.FLAG_CODE:
|
||||||
{
|
{
|
||||||
Regex rgx = new Regex("[A-Z]{2}");
|
if(!RuleEngine.NationalityChecker(value))
|
||||||
if(!rgx.IsMatch(value)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename));
|
errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ValidationCode.TWO_DIGIT:
|
case ValidationCode.TWO_DIGIT:
|
||||||
@ -464,9 +469,7 @@ namespace bsmd.database
|
|||||||
public static bool IsGermanLocode(string val)
|
public static bool IsGermanLocode(string val)
|
||||||
{
|
{
|
||||||
return gerLocodeList.Contains(val.ToUpper());
|
return gerLocodeList.Contains(val.ToUpper());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LocodeValidHandler LocodeChecker { get { return _locodeChecker; } }
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@ -43,8 +43,7 @@ namespace bsmd.database
|
|||||||
public bool? WasteDisposalValidExemption { get; set; }
|
public bool? WasteDisposalValidExemption { get; set; }
|
||||||
|
|
||||||
[ShowReport]
|
[ShowReport]
|
||||||
[Validation2(ValidationCode.LOCODE)]
|
[Validation2(ValidationCode.LOCODE)]
|
||||||
[LookupName("WAS.LastWasteDisposalPort")]
|
|
||||||
[MaxLength(5)]
|
[MaxLength(5)]
|
||||||
[ENI2Validation]
|
[ENI2Validation]
|
||||||
public string LastWasteDisposalPort { get; set; }
|
public string LastWasteDisposalPort { get; set; }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user