Wichtiger Zwischenstand mit neuen Projekten für NSW Abfrage und so weiter..

This commit is contained in:
Daniel Schick 2017-05-18 05:08:09 +00:00
parent c70d90e9da
commit f1cb014fa3
23 changed files with 534 additions and 23 deletions

View File

@ -17,7 +17,7 @@ Sample license text.
<applicationSettings>
<ENI2.Properties.Settings>
<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>
</setting>
</ENI2.Properties.Settings>
</applicationSettings>

View File

@ -8,7 +8,7 @@
xmlns:p="clr-namespace:ENI2.Properties"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
Title="Id" Height="192" Width="300" WindowStyle="SingleBorderWindow" Background="AliceBlue">
Title="{x:Static p:Resources.textNewVisitTransitId}" Height="192" Width="300" WindowStyle="SingleBorderWindow" Background="AliceBlue" ResizeMode="NoResize">
<Grid Margin="4">
<Grid.RowDefinitions>
<RowDefinition Height="28" />
@ -38,7 +38,7 @@
DisplayDefaultValueOnEmptyText="False"
ButtonSpinnerLocation="Right"
ParsingNumberStyle="Integer"
Watermark="Enter IMO"/>
Watermark="Enter IMO" ValueChanged="doubleUpDownIMO_ValueChanged"/>
<xctk:DoubleUpDown x:Name="doubleUpDownENI" Margin="2" Grid.Row="1" Grid.Column="1"
ClipValueToMinMax="True"
ShowButtonSpinner="False"
@ -53,7 +53,7 @@
DisplayDefaultValueOnEmptyText="False"
ButtonSpinnerLocation="Right"
ParsingNumberStyle="Integer"
Watermark="Enter ENI"/>
Watermark="Enter ENI" ValueChanged="doubleUpDownENI_ValueChanged"/>
<enictrl:LocodeControl Grid.Column="1" Grid.Row="2" Width="Auto" x:Name="locodePoC" LocodeValue="{Binding PoC, Mode=TwoWay}" />
<DatePicker Name="datePickerETA" Grid.Row="3" Grid.Column="1" Margin="2"/>
</Grid>

View File

@ -2,19 +2,7 @@
// Description: Mit diesem Dialog können neue Visit/Transit-Id's beantragt werden (DE only)
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using ENI2.Controls;
using bsmd.database;
@ -61,5 +49,21 @@ namespace ENI2.EditControls
public MessageCore Core { get; set; }
#region event handler
private void doubleUpDownIMO_ValueChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
bool hasValue = (doubleUpDownIMO.Value.HasValue && doubleUpDownIMO.Value > 0);
doubleUpDownENI.IsReadOnly = hasValue;
}
private void doubleUpDownENI_ValueChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
bool hasValue = (doubleUpDownENI.Value.HasValue && doubleUpDownENI.Value > 0);
doubleUpDownIMO.IsReadOnly = hasValue;
}
#endregion
}
}

Binary file not shown.

View File

@ -0,0 +1,62 @@
<!--
- dataset: Root Element
|- VisitIdTransitId: VisitID oder TransitID (relevant wenn kein LoginError)
|- LoginError: Fehler beim Login Berechtigung und/oder Validierung VisitID/TransitID
|- NswResponse: Eltern Element Abfrage NSW Kernsystem
|- Cancelled: ist VisitID/TransitID storniert (yornType)
|- VisitIdOrTransitIdCancellable: kann VisitID/TransitID storniert werden (yornType)
|- BlockedNotificationClasses: Kommaseparierte Liste (NotificationClassType)
|- OwnNotificationClasses: Kommaseparierte Liste (NotificationClassType)
|- FreeNotificationClasses: Kommaseparierte Liste (NotificationClassType)
|- ErrorCode: Fehler/Violation/Systemfehler -Code
|- ErrorMessage: Fehler/Violation/Systemfehler -Beschreibung
####################################################################################################
- yornType: Y/N
- NotificationClassType: ATA, ATD, BKRA, BKRD, HAZA, HAZD, INFO, LADG, MDH, NAME, NOA_NOD, POBA, POBD,
SEC, SERV, PRE72H, STAT, TIEFA, TIEFD, TOWA, TOWD, WAS, CREW, PAS, BPOL, AGNT
####################################################################################################
BEISPIEL: Login Fehler (Berechtigung)
<dataset>
<SendAt>2017-05-16T07:25:36.055+02:00</SendAt>
<VisitIdTransitId>DERSK-2017-LQRTWW</VisitIdTransitId>
<LoginError>Zugriff verweigert, keine Berechtigung für diesen Service. [Code: -10]</LoginError>
</dataset>
####################################################################################################
BEISPIEL: Login Fehler (Validierung VisitID/TransitID)
<dataset>
<SendAt>2017-05-16T07:27:44.842+02:00</SendAt>
<VisitIdTransitId/>
<LoginError>Abfrage ohne VISIT-ID/TRANSIT-ID nicht möglich. [Code: -3]</LoginError>
</dataset>
####################################################################################################
BEISPIEL: Fehler NSW Kernsystem
<dataset>
<SendAt>2017-05-16T07:31:16.595+02:00</SendAt>
<VisitIdTransitId>DERSK-2017-KUKQWA</VisitIdTransitId>
<NswResponse>
<Cancelled/>
<VisitIdOrTransitIdCancellable/>
<BlockedNotificationClasses/>
<OwnNotificationClasses/>
<FreeNotificationClasses/>
<ErrorCode>E 601</ErrorCode>
<ErrorMessage>[E 601 - The provided Visit-ID / Transit-ID DERSK-2017-KUKQWA does not exist. A status request is not possible.]</ErrorMessage>
</NswResponse>
</dataset>
####################################################################################################
-->
<!-- BEISPIEL: erfolgreiche Abfrage -->
<dataset>
<SendAt>2017-05-15T15:28:33.306+02:00</SendAt>
<VisitIdTransitId>DERSK-2017-LQRTWW</VisitIdTransitId>
<NswResponse>
<Cancelled/>
<VisitIdOrTransitIdCancellable>Y</VisitIdOrTransitIdCancellable>
<BlockedNotificationClasses/>
<OwnNotificationClasses>AGNT, BPOL, CREW, INFO, LADG, MDH, NOA_NOD, PAS, PRE_72_H, SEC, SERV, STAT, TOWA, WAS</OwnNotificationClasses>
<FreeNotificationClasses>ATA, ATD, BKRA, BKRD, HAZA, HAZD, NAME, POBA, POBD, TIEFA, TIEFD, TOWD</FreeNotificationClasses>
<ErrorCode/>
<ErrorMessage/>
</NswResponse>
</dataset>

View File

@ -0,0 +1,25 @@
<!--
- SystemError: Root Element
|- ErrorAt: Fehlerdatum
|- Meldetype: Meldetyp
|- ReferenceId: HIS-NORD ReferenceId
|- ProcessStatus: 5 = Systemfehler, 6 = Systemfehler wird versucht noch mal zu Senden
|- TransmissionRepeatedAt: Zeit wann erneut versucht wird zu senden (nur relevant bei ProcessStatus = 6)
|- ImportFilename: Dateiname (Herkunft der Daten)
|- VisitId: VisitId (nur relevant bei VisitId)
|- TransitId: TransitId (nur relevant bei TransitId)
|- ErrorCode: Fehlercode
|- ErrorMessage: Fehler Kurzbeschreibung
|- ErrorDescription: Fehler Beschreibung
-->
<SystemError>
<ErrorAt>2017-04-21T09:30:40.109+02:00</ErrorAt>
<Meldetype>MDH</Meldetype>
<ReferenceId>7696</ReferenceId>
<ProcessStatus>5</ProcessStatus>
<ImportFilename>ZZNOK-2017-AVNBEF_TRANSIT.xml</ImportFilename>
<TransitId>ZZNOK-2017-AVNBEF</TransitId>
<ErrorCode>-275</ErrorCode>
<ErrorMessage>Fehler in Feld "MDH_NOTIFIED_LOCODE" (Unlocode) wert=null</ErrorMessage>
<ErrorDescription>Fehler in Feld "MDH_NOTIFIED_LOCODE" (Unlocode) wert=null (Unlocode String - [A-Z]{2}[A-Z0-9]{3})</ErrorDescription>
</SystemError>

View File

@ -0,0 +1,26 @@
<!--
- SystemError: Root Element
|- ErrorAt: Fehlerdatum
|- Meldetype: Meldetyp
|- ReferenceId: HIS-NORD ReferenceId
|- ProcessStatus: 5 = Systemfehler, 6 = Systemfehler wird versucht noch mal zu Senden
|- TransmissionRepeatedAt: Zeit wann erneut versucht wird zu senden (nur relevant bei ProcessStatus = 6)
|- ImportFilename: Dateiname (Herkunft der Daten)
|- VisitId: VisitId (nur relevant bei VisitId)
|- TransitId: TransitId (nur relevant bei TransitId)
|- ErrorCode: Fehlercode
|- ErrorMessage: Fehler Kurzbeschreibung
|- ErrorDescription: Fehler Beschreibung
-->
<SystemError>
<ErrorAt>2017-04-21T09:34:49.208+02:00</ErrorAt>
<Meldetype>ATD</Meldetype>
<ReferenceId>976642</ReferenceId>
<ProcessStatus>6</ProcessStatus>
<TransmissionRepeatedAt>2017-04-21T09:39:49.208+02:00</TransmissionRepeatedAt>
<ImportFilename>DEBRB-2017-SRAJKA_VISIT.xml</ImportFilename>
<VisitId>DEBRB-2017-SRAJKA</VisitId>
<ErrorCode>-560</ErrorCode>
<ErrorMessage>WebServiceException;</ErrorMessage>
<ErrorDescription>WebServiceException (Could not send Message. java.net.ConnectException: ConnectException invoking https://api.national-single-window.de/atd: Verbindungsaufbau abgelehnt invoke);</ErrorDescription>
</SystemError>

View File

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SendNSWMessageService", "SendNSWMessageService\SendNSWMessageService.csproj", "{E6F8F110-77E7-4348-9875-CAD095BF8E24}"
EndProject
@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.dakosy", "bsmd.dakosy\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.hisnord", "bsmd.hisnord\bsmd.hisnord.csproj", "{E7E48971-E879-4E6A-B316-70AC0A6F4C95}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.status", "bsmd.status\bsmd.status.csproj", "{1EA7D5CE-4051-45CB-BE70-F8DD3DE0416A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -39,6 +41,10 @@ Global
{E7E48971-E879-4E6A-B316-70AC0A6F4C95}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E7E48971-E879-4E6A-B316-70AC0A6F4C95}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E7E48971-E879-4E6A-B316-70AC0A6F4C95}.Release|Any CPU.Build.0 = Release|Any CPU
{1EA7D5CE-4051-45CB-BE70-F8DD3DE0416A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1EA7D5CE-4051-45CB-BE70-F8DD3DE0416A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1EA7D5CE-4051-45CB-BE70-F8DD3DE0416A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1EA7D5CE-4051-45CB-BE70-F8DD3DE0416A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -119,6 +119,10 @@
<Project>{e7e48971-e879-4e6a-b316-70ac0a6f4c95}</Project>
<Name>bsmd.hisnord</Name>
</ProjectReference>
<ProjectReference Include="..\bsmd.status\bsmd.status.csproj">
<Project>{1ea7d5ce-4051-45cb-be70-f8dd3de0416a}</Project>
<Name>bsmd.status</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@ -1012,6 +1012,9 @@ namespace bsmd.ExcelReadService
stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber");
reader.Conf.ConfirmText("STAT.MMSINumber", stat.MMSINumber, (stat.MMSINumber.IsNullOrEmpty() || (stat.MMSINumber.Length != 9)) ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
stat.CallSign = reader.ReadTextNoWhitespace("STAT.CallSign");
reader.Conf.ConfirmText("STAT.CallSign", stat.CallSign, (stat.CallSign.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK));
stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId");
reader.Conf.ConfirmText("STAT.ISMCompanyId", stat.ISMCompanyId, (stat.ISMCompanyId.IsNullOrEmpty() || (stat.ISMCompanyId.Length != 7)) ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);

View File

@ -183,7 +183,28 @@ namespace bsmd.database
[MaxLength(50)]
public string TicketNo { get; set; }
#endregion
#region Felder um NSW Statusinformationen zu speichern (abgefragte Daten!)
public bool? Cancelled { get; set; }
public bool? VisitIdOrTransitIdCancellable { get; set; }
/// <summary>
/// als string serialisierte Enumeration - Liste
/// </summary>
public string BlockedNotificationClasses { get; set; }
public string OwnNotificationClasses { get; set; }
public string FreeNotificationClasses { get; set; }
public string ErrorCode { get; set; }
public string ErrorMessage { get; set; }
#endregion
#endregion
#region DatabaseEntity implementation

View File

@ -31,8 +31,7 @@ namespace bsmd.database
public string ShipName { get; set; }
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[LookupName("STAT.CallSign")]
[Validation(ValidationCode.NOT_NULL)]
[MaxLength(50)]
public string CallSign { get; set; }

View File

@ -8,9 +8,7 @@
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

View File

@ -0,0 +1,12 @@
// Copyright (c) 2017 schick Informatik
// Description:
using System.Reflection;
// 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("bsmd.status")]
[assembly: AssemblyDescription("Abfrage des Meldeklassen-Status einer Anmeldung am NSW")]
[assembly: AssemblyCulture("")]

View File

@ -0,0 +1,62 @@
//------------------------------------------------------------------------------
// <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 bsmd.status.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.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("BSMD-REF")]
public string login {
get {
return ((string)(this["login"]));
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Hd47%23fz9Bl48sxU%232")]
public string password {
get {
return ((string)(this["password"]));
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("xml")]
public string format {
get {
return ((string)(this["format"]));
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://ref-app.his-nord.de/HIS-Service/StatusInfoNSW.jsp")]
public string url {
get {
return ((string)(this["url"]));
}
}
}
}

View File

@ -0,0 +1,18 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="bsmd.status.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="login" Type="System.String" Scope="Application">
<Value Profile="(Default)">BSMD-REF</Value>
</Setting>
<Setting Name="password" Type="System.String" Scope="Application">
<Value Profile="(Default)">Hd47%23fz9Bl48sxU%232</Value>
</Setting>
<Setting Name="format" Type="System.String" Scope="Application">
<Value Profile="(Default)">xml</Value>
</Setting>
<Setting Name="url" Type="System.String" Scope="Application">
<Value Profile="(Default)">https://ref-app.his-nord.de/HIS-Service/StatusInfoNSW.jsp</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -0,0 +1,44 @@
// Copyright (c) 2017 schick Informatik
// Description:
using System;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
namespace bsmd.status
{
public class Status
{
public void PerformQuery(string visitId)
{
using (WebClient client = new WebClient())
{
client.UploadValuesCompleted += Client_UploadValuesCompleted;
client.UploadValuesAsync(new Uri(Properties.Settings.Default.url),
new NameValueCollection()
{
// ich glaube ein HTML Encoding braucht man hier nicht?
{ "login", Properties.Settings.Default.login },
{ "password", Properties.Settings.Default.password },
{ "visitIdTransitId", visitId },
{ "format", Properties.Settings.Default.format }
});
}
}
private void Client_UploadValuesCompleted(object sender, UploadValuesCompletedEventArgs e)
{
if(e.Result != null)
{
string result = Encoding.UTF8.GetString(e.Result);
}
}
}
}

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Sample license text.
-->
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="bsmd.status.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<bsmd.status.Properties.Settings>
<setting name="login" serializeAs="String">
<value>BSMD-REF</value>
</setting>
<setting name="password" serializeAs="String">
<value>Hd47%23fz9Bl48sxU%232</value>
</setting>
<setting name="format" serializeAs="String">
<value>xml</value>
</setting>
<setting name="url" serializeAs="String">
<value>https://ref-app.his-nord.de/HIS-Service/StatusInfoNSW.jsp</value>
</setting>
</bsmd.status.Properties.Settings>
</applicationSettings>
</configuration>

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" 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>{1EA7D5CE-4051-45CB-BE70-F8DD3DE0416A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>bsmd.status</RootNamespace>
<AssemblyName>bsmd.status</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<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' ">
<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="..\bsmd.database\Properties\AssemblyProductInfo.cs">
<Link>Properties\AssemblyProductInfo.cs</Link>
</Compile>
<Compile Include="..\bsmd.database\Properties\AssemblyProjectInfo.cs">
<Link>Properties\AssemblyProjectInfo.cs</Link>
</Compile>
<Compile Include="..\bsmd.database\Properties\AssemblyProjectKeyInfo.cs">
<Link>Properties\AssemblyProjectKeyInfo.cs</Link>
</Compile>
<Compile Include="dataset.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="Status.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\bsmd.database\bsmd.database.csproj">
<Project>{19945af2-379b-46a5-b27a-303b5ec1d557}</Project>
<Name>bsmd.database</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="bsmd.status.licenseheader" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,15 @@
extensions: designer.cs generated.cs
extensions: .cs .cpp .h
// Copyright (c) 2017 schick Informatik
// Description:
extensions: .aspx .ascx
<%--
Copyright (c) 2017 schick Informatik
--%>
extensions: .vb
'Sample license text.
extensions: .xml .config .xsd
<!--
Sample license text.
-->

View File

@ -0,0 +1,97 @@
// Copyright (c) 2017 schick Informatik
// Description: Container-Klasse für die Status-Informationen des NSW (zur Deserialisierung)
using System;
using System.IO;
using System.Xml.Serialization;
using log4net;
namespace bsmd.status
{
[Serializable]
public class dataset
{
private static ILog _log = LogManager.GetLogger(typeof(bsmd.status.dataset));
/// <summary>
/// this class needs a public empty constructor for deserialization
/// </summary>
public dataset() {}
#region Properties
public DateTime SendAt { get; set; }
public string VisitIdTransitId { get; set; }
#endregion
#region Deserialization
public static dataset ReadStatus(string statusString)
{
dataset aStatus = null;
try
{
XmlSerializer serializer = new XmlSerializer(typeof(bsmd.status.dataset));
using (TextReader reader = new StringReader(statusString))
{
aStatus = serializer.Deserialize(reader) as dataset;
}
}
catch (Exception ex)
{
_log.ErrorFormat("Exception occurred during deserialization: {0}", ex.Message);
}
return aStatus;
}
#endregion
}
[Serializable]
public class NswResponse
{
#region Properties
public string Cancelled { get; set; }
[XmlIgnore]
public bool IsCancelled
{
get
{
if ((this.Cancelled != null) && (this.Cancelled == "Y")) return true;
return false;
}
}
public string VisitIdOrTransitIdCancellable { get; set; }
[XmlIgnore]
public bool IsVisitIdOrTransitIdCancellable
{
get
{
if ((this.VisitIdOrTransitIdCancellable != null) && (this.VisitIdOrTransitIdCancellable == "Y")) return true;
return false;
}
}
public string BlockedNotificationClasses { get; set; }
public string OwnNotificationClasses { get; set; }
public string FreeNotificationClasses { get; set; }
public string ErrorCode { get; set; }
public string ErrorMessage { get; set; }
#endregion
}
}

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net45" />
</packages>