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