Zwischenstand Bearbeitung März

This commit is contained in:
Daniel Schick 2019-03-06 17:16:09 +00:00
parent 001a2deb77
commit 8e70a7ecde
12 changed files with 38 additions and 35 deletions

View File

@ -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>

View File

@ -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();
}
}
}

View File

@ -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);

View File

@ -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>

View File

@ -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();

View File

@ -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 {

View File

@ -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.

View File

@ -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)

View File

@ -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, " +

View File

@ -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

View File

@ -44,7 +44,6 @@ namespace bsmd.database
[ShowReport]
[Validation2(ValidationCode.LOCODE)]
[LookupName("WAS.LastWasteDisposalPort")]
[MaxLength(5)]
[ENI2Validation]
public string LastWasteDisposalPort { get; set; }