aktuellen Stand einchecken (Service Referenz muss ersetzt werden)

This commit is contained in:
Daniel Schick 2017-05-23 05:26:37 +00:00
parent f02530f960
commit 97ef25d4a5
37 changed files with 385 additions and 685 deletions

View File

@ -19,6 +19,12 @@ Sample license text.
<setting name="ConnectionString" serializeAs="String">
<value>Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</value>
</setting>
<setting name="UseLocking" serializeAs="String">
<value>True</value>
</setting>
<setting name="LockingServerAddress" serializeAs="String">
<value>http://heupferd/bsmd.LockingService/LockingService.svc</value>
</setting>
</ENI2.Properties.Settings>
</applicationSettings>
<userSettings>
@ -29,15 +35,7 @@ Sample license text.
</ENI2.Properties.Settings>
</userSettings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost/bsmd.LockingService/LockingService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService"
contract="LockingServiceReference.IService" name="BasicHttpBinding_IService" />
</client>
<bindings />
<client />
</system.serviceModel>
</configuration>

View File

@ -9,7 +9,7 @@ using bsmd.database;
using System.Windows.Controls;
using System.Windows.Input;
using System;
using ENI2.LockingServiceReference;
using System.Net;
namespace ENI2
{
@ -18,7 +18,6 @@ namespace ENI2
/// </summary>
public partial class App : Application
{
private ServiceClient lockingServiceClient;
public App() : base()
{
@ -41,14 +40,12 @@ namespace ENI2
LADG.CargoHandlingDict.Add(key, cargoHandlingDict[key]);
EventManager.RegisterClassHandler(typeof(DatePicker), DatePicker.PreviewKeyDownEvent, new KeyEventHandler(this.DatePicker_PreviewKeyDown));
try
{
// this.lockingServiceClient = new ServiceClient();
}
catch(Exception ex)
{
System.Diagnostics.Trace.WriteLine("Exception creating locking service client: {0}", ex.ToString());
}
// perform logon
// TODO: Benutzerverwaltung
}

View File

@ -41,6 +41,11 @@ namespace ENI2
/// </summary>
public event Action RequestReload;
/// <summary>
/// Mit diesem Event wird der Wunsch nach einem Lock zum Ausdruck gebracht ;-)
/// </summary>
public event Action<bool> RequestLock;
#endregion
#region Properties
@ -49,6 +54,8 @@ namespace ENI2
public List<Message> Messages { get; set; }
public Guid UserId { get; set; } // TODO: Ersetzen mit der User-Entity
#endregion
#region public methods
@ -71,6 +78,10 @@ namespace ENI2
this.RequestReload?.Invoke();
}
protected virtual void OnRequestLock(bool shouldLock)
{
this.RequestLock?.Invoke(shouldLock);
}
protected void SetLocodeStateImage(Image stateImage, LocodeState state)
{

View File

@ -4,10 +4,12 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Controls;
using bsmd.database;
using ENI2.DetailViewControls;
using ENI2.LockingServiceReference;
namespace ENI2
{
@ -16,12 +18,27 @@ namespace ENI2
/// </summary>
public partial class DetailRootControl : UserControl
{
#region Fields
private MessageCore _core;
private List<MessageGroup> _listBoxList = new List<MessageGroup>();
private List<Message> _messages;
private Dictionary<Type, DetailBaseControl> controlCache = new Dictionary<Type, DetailBaseControl>();
private ServiceClient lockingServiceClient;
private Guid userId = Guid.NewGuid(); // remove THIS!!
#endregion
#region Properties
public MessageCore Core { get { return this._core; } }
#endregion
#region Construction
public DetailRootControl(MessageCore aCore)
{
_core = aCore;
@ -51,7 +68,22 @@ namespace ENI2
_messages = DBManager.Instance.GetMessagesForCore(_core, DBManager.MessageLoad.ALL);
Dispatcher.BeginInvoke((Action)(() => this.listBoxMessages.SelectedIndex = 0));
// Connect to locking service (if enabled)
try
{
if (ENI2.Properties.Settings.Default.UseLocking)
this.lockingServiceClient = new ServiceClient("BasicHttpBinding_IService", ENI2.Properties.Settings.Default.LockingServerAddress);
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine("Exception creating locking service client: {0}", ex.ToString());
}
}
#endregion
#region class MessageGroup
@ -89,6 +121,7 @@ namespace ENI2
};
detailControl.RequestReload += DetailControl_RequestReload;
detailControl.RequestLock += DetailControl_RequestLock;
detailControl.Initialize();
controlCache.Add(mg.MessageGroupControlType, detailControl);
@ -99,6 +132,42 @@ namespace ENI2
}
}
private void DetailControl_RequestLock(bool shouldLock)
{
if(this.lockingServiceClient == null)
{
return;
}
if (shouldLock)
{
try
{
string lockResult = this.lockingServiceClient.Lock(this.Core.Id.Value, this.userId.ToString());
if (lockResult == "")
{
// lock successful
this.Core.Locked = true;
}
else
{
// locking failed: Notify User
}
}
catch(Exception ex)
{
Trace.WriteLine(ex.ToString());
// TODO
}
}
else
{
this.lockingServiceClient.Unlock(this.Core.Id.Value, this.userId.ToString());
this.Core.Locked = false;
}
}
private void DetailControl_RequestReload()
{
/// core und messages neu laden

View File

@ -32,7 +32,9 @@
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="4" />
<RowDefinition Height="32" />
<RowDefinition Height="4" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
@ -72,19 +74,25 @@
<Label Name="labelCreated" Grid.Column="4" Grid.Row="4" Margin="2, 0, 0, 0" />
<TextBox Name="textBoxTicketNo" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Text="{Binding TicketNo}" Margin="2" />
<!-- Command buttons -->
<Button IsEnabled="False" Name="buttonStorno" Grid.Column="1" Grid.Row="5" Margin="2" Click="buttonStorno_Click" Content="{x:Static p:Resources.textCancelDeclaration}"/>
<Button IsEnabled="False" Name="buttonCopy" Grid.Column="2" Grid.Row="5" Margin="2" Click="buttonCopy_Click" Content="{x:Static p:Resources.textCopyData}"/>
<Button IsEnabled="False" Name="buttonSendPDF" Grid.Column="3" Grid.Row="5" Margin="2" Click="buttonSendPDF_Click" Content="{x:Static p:Resources.textCreatePDF}"/>
<Button Name="buttonQueryHIS" Grid.Column="4" Grid.Row="5" Margin="2" Click="buttonQueryHIS_Click" Content="{x:Static p:Resources.textQueryHIS}"/>
<Button Name="buttonRefresh" Grid.Column="5" Grid.Row="5" Margin="2" Click="buttonRefresh_Click">
<Button Name="buttonLock" Grid.Column="0" Grid.Row="6" Margin="2" Click="buttonLock_Click" BorderThickness="0">
<StackPanel Orientation="Horizontal">
<Image Source="../Resources/nav_refresh_blue.png" Margin="0,0,10,0"/>
<TextBlock Text="{x:Static p:Resources.textRefresh}"/>
<Image Source="../Resources/lock_open.png" Margin="0,0,5,0" Height="24" />
<TextBlock Text="{x:Static p:Resources.textLock}" VerticalAlignment="Center" />
</StackPanel>
</Button>
<Button IsEnabled="False" Name="buttonStorno" Grid.Column="1" Grid.Row="6" Margin="2" Click="buttonStorno_Click" Content="{x:Static p:Resources.textCancelDeclaration}"/>
<Button IsEnabled="False" Name="buttonCopy" Grid.Column="2" Grid.Row="6" Margin="2" Click="buttonCopy_Click" Content="{x:Static p:Resources.textCopyData}"/>
<Button IsEnabled="False" Name="buttonSendPDF" Grid.Column="3" Grid.Row="6" Margin="2" Click="buttonSendPDF_Click" Content="{x:Static p:Resources.textCreatePDF}"/>
<Button Name="buttonQueryHIS" Grid.Column="4" Grid.Row="6" Margin="2" Click="buttonQueryHIS_Click" Content="{x:Static p:Resources.textQueryHIS}"/>
<Button Name="buttonRefresh" Grid.Column="5" Grid.Row="6" Margin="2" Click="buttonRefresh_Click" BorderThickness="0">
<StackPanel Orientation="Horizontal">
<Image Source="../Resources/nav_refresh_blue.png" Margin="0,0,5,0" Height="24"/>
<TextBlock Text="{x:Static p:Resources.textRefresh}" VerticalAlignment="Center"/>
</StackPanel>
</Button>
<!-- Data Grid -->
<DataGrid Grid.Row="6" Grid.ColumnSpan="6" Margin="0,8,0,0" x:Name="dataGridMessages" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" CanUserAddRows="False"
<DataGrid Grid.Row="8" Grid.ColumnSpan="6" Margin="0,8,0,0" x:Name="dataGridMessages" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" CanUserAddRows="False"
SelectionMode="Single" AutoGenerateColumns="False" MouseDoubleClick="dataGrid_MouseDoubleClick" PreviewKeyDown="dataGrid_PreviewKeyDown">
<DataGrid.Columns>
<DataGridTemplateColumn Header=" " Width="SizeToCells" IsReadOnly="True">

View File

@ -65,7 +65,7 @@ namespace ENI2.DetailViewControls
if (aMessage.MessageNotificationClass == Message.NotificationClass.NOA_NOD)
this._noanodMessage = aMessage;
switch(aMessage.MessageNotificationClass)
switch (aMessage.MessageNotificationClass)
{
case Message.NotificationClass.VISIT:
case Message.NotificationClass.TRANSIT:
@ -335,7 +335,7 @@ namespace ENI2.DetailViewControls
private void _checkStatusTimer_Elapsed(object sender, ElapsedEventArgs e)
{
bool? statusFlag = DBManager.Instance.GetMessageCoreQueryStatusFlag(this.Core.Id.Value);
if(statusFlag ?? true)
if (statusFlag ?? true)
{
// not yet.. (calling ui thread async)
this.Dispatcher.BeginInvoke(new Action(() =>
@ -368,6 +368,16 @@ namespace ENI2.DetailViewControls
}));
}
private void buttonLock_Click(object sender, RoutedEventArgs e)
{
this.Dispatcher.BeginInvoke(new Action(() =>
{
this.OnRequestLock(!this.Core.Locked);
}));
}
}
#endregion
#region private methods
@ -376,6 +386,4 @@ namespace ENI2.DetailViewControls
#endregion
}
}

View File

@ -107,6 +107,7 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Web" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
@ -224,11 +225,6 @@
<DependentUpon>VisitIdDialog.xaml</DependentUpon>
</Compile>
<Compile Include="LocalizedLookup.cs" />
<Compile Include="Service References\LockingServiceReference\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.svcmap</DependentUpon>
</Compile>
<Compile Include="SucheControl.xaml.cs">
<DependentUpon>SucheControl.xaml</DependentUpon>
</Compile>
@ -359,14 +355,11 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<None Include="Service References\LockingServiceReference\LockingService.disco" />
<None Include="Service References\LockingServiceReference\configuration91.svcinfo" />
<None Include="Service References\LockingServiceReference\configuration.svcinfo" />
<None Include="Service References\LockingServiceReference\Reference.svcmap">
<Generator>WCF Proxy Generator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<Resource Include="Resources\nav_refresh_blue.png" />
<Resource Include="Resources\lock.png" />
<Resource Include="Resources\lock_open.png" />
<Resource Include="Resources\lock_error.png" />
<Resource Include="Resources\lock_ok.png" />
<Content Include="x64\SQLite.Interop.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
@ -376,16 +369,6 @@
<EmbeddedResource Include="Properties\Resources.de.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<None Include="Service References\LockingServiceReference\LockingService.wsdl" />
<None Include="Service References\LockingServiceReference\LockingService.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\LockingServiceReference\LockingService1.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\LockingServiceReference\LockingService2.xsd">
<SubType>Designer</SubType>
</None>
<Resource Include="Resources\printer.png" />
<Resource Include="Resources\floppy_disk_blue.png" />
<Resource Include="Resources\document_plain.png" />
@ -507,9 +490,6 @@
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<ItemGroup>
<WCFMetadataStorage Include="Service References\LockingServiceReference\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="packages\System.Data.SQLite.Core.1.0.105.0\build\net451\System.Data.SQLite.Core.targets" Condition="Exists('packages\System.Data.SQLite.Core.1.0.105.0\build\net451\System.Data.SQLite.Core.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

View File

@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENI2", "ENI2.csproj", "{67A
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.database", "..\..\..\nsw\Source\bsmd.database\bsmd.database.csproj", "{19945AF2-379B-46A5-B27A-303B5EC1D557}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.LockingService", "..\..\..\nsw\Source\bsmd.LockingService\bsmd.LockingService.csproj", "{7CD5E5BC-8F70-4DFB-BAAE-FBC91E6C3F33}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -21,6 +23,10 @@ Global
{19945AF2-379B-46A5-B27A-303B5EC1D557}.Debug|Any CPU.Build.0 = Debug|Any CPU
{19945AF2-379B-46A5-B27A-303B5EC1D557}.Release|Any CPU.ActiveCfg = Release|Any CPU
{19945AF2-379B-46A5-B27A-303B5EC1D557}.Release|Any CPU.Build.0 = Release|Any CPU
{7CD5E5BC-8F70-4DFB-BAAE-FBC91E6C3F33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7CD5E5BC-8F70-4DFB-BAAE-FBC91E6C3F33}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7CD5E5BC-8F70-4DFB-BAAE-FBC91E6C3F33}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7CD5E5BC-8F70-4DFB-BAAE-FBC91E6C3F33}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -60,6 +60,16 @@ namespace ENI2.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap _lock {
get {
object obj = ResourceManager.GetObject("_lock", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@ -260,6 +270,36 @@ namespace ENI2.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap lock_error {
get {
object obj = ResourceManager.GetObject("lock_error", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap lock_ok {
get {
object obj = ResourceManager.GetObject("lock_ok", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap lock_open {
get {
object obj = ResourceManager.GetObject("lock_open", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
@ -880,6 +920,15 @@ namespace ENI2.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Lock.
/// </summary>
public static string textLock {
get {
return ResourceManager.GetString("textLock", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Master.
/// </summary>
@ -1258,6 +1307,15 @@ namespace ENI2.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Unlock.
/// </summary>
public static string textUnlock {
get {
return ResourceManager.GetString("textUnlock", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Visit / transit.
/// </summary>

View File

@ -517,4 +517,22 @@
<data name="textRefresh" xml:space="preserve">
<value>Refresh</value>
</data>
<data name="lock_open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lock_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_lock" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lock.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="textLock" xml:space="preserve">
<value>Lock</value>
</data>
<data name="textUnlock" xml:space="preserve">
<value>Unlock</value>
</data>
<data name="lock_error" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lock_error.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lock_ok" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lock_ok.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -25,8 +25,8 @@ namespace ENI2.Properties {
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=192.168.2.12;Initial Catalog=nsw;Uid=dfuser;Pwd=dfpasswd;Connect Time" +
"out=30;Encrypt=False;TrustServerCertificate=False")]
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=(localdb)\\Projects;Initial Catalog=nsw;Integrated Security=True;Conne" +
"ct Timeout=30;Encrypt=False;TrustServerCertificate=False")]
public string ConnectionString {
get {
return ((string)(this["ConnectionString"]));
@ -44,5 +44,23 @@ namespace ENI2.Properties {
this["MainWindowPlacement"] = value;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool UseLocking {
get {
return ((bool)(this["UseLocking"]));
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("http://heupferd/bsmd.LockingService/LockingService.svc")]
public string LockingServerAddress {
get {
return ((string)(this["LockingServerAddress"]));
}
}
}
}

View File

@ -3,10 +3,16 @@
<Profiles />
<Settings>
<Setting Name="ConnectionString" Type="System.String" Scope="Application">
<Value Profile="(Default)">Data Source=192.168.2.12;Initial Catalog=nsw;Uid=dfuser;Pwd=dfpasswd;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</Value>
<Value Profile="(Default)">Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</Value>
</Setting>
<Setting Name="MainWindowPlacement" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UseLocking" Type="System.Boolean" Scope="Application">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="LockingServerAddress" Type="System.String" Scope="Application">
<Value Profile="(Default)">http://heupferd/bsmd.LockingService/LockingService.svc</Value>
</Setting>
</Settings>
</SettingsFile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://localhost/bsmd.LockingService/LockingService.svc?wsdl" docRef="http://localhost/bsmd.LockingService/LockingService.svc" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
</discovery>

View File

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="LockingService" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import schemaLocation="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd0" namespace="http://tempuri.org/" />
<xsd:import schemaLocation="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xsd:import schemaLocation="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="IService_Lock_InputMessage">
<wsdl:part name="parameters" element="tns:Lock" />
</wsdl:message>
<wsdl:message name="IService_Lock_OutputMessage">
<wsdl:part name="parameters" element="tns:LockResponse" />
</wsdl:message>
<wsdl:message name="IService_Unlock_InputMessage">
<wsdl:part name="parameters" element="tns:Unlock" />
</wsdl:message>
<wsdl:message name="IService_Unlock_OutputMessage">
<wsdl:part name="parameters" element="tns:UnlockResponse" />
</wsdl:message>
<wsdl:message name="IService_LockRefresh_InputMessage">
<wsdl:part name="parameters" element="tns:LockRefresh" />
</wsdl:message>
<wsdl:message name="IService_LockRefresh_OutputMessage">
<wsdl:part name="parameters" element="tns:LockRefreshResponse" />
</wsdl:message>
<wsdl:message name="IService_Log_InputMessage">
<wsdl:part name="parameters" element="tns:Log" />
</wsdl:message>
<wsdl:message name="IService_Log_OutputMessage">
<wsdl:part name="parameters" element="tns:LogResponse" />
</wsdl:message>
<wsdl:portType name="IService">
<wsdl:operation name="Lock">
<wsdl:input wsaw:Action="http://tempuri.org/IService/Lock" message="tns:IService_Lock_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/IService/LockResponse" message="tns:IService_Lock_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="Unlock">
<wsdl:input wsaw:Action="http://tempuri.org/IService/Unlock" message="tns:IService_Unlock_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/IService/UnlockResponse" message="tns:IService_Unlock_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="LockRefresh">
<wsdl:input wsaw:Action="http://tempuri.org/IService/LockRefresh" message="tns:IService_LockRefresh_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/IService/LockRefreshResponse" message="tns:IService_LockRefresh_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="Log">
<wsdl:input wsaw:Action="http://tempuri.org/IService/Log" message="tns:IService_Log_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/IService/LogResponse" message="tns:IService_Log_OutputMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="BasicHttpBinding_IService" type="tns:IService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Lock">
<soap:operation soapAction="http://tempuri.org/IService/Lock" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Unlock">
<soap:operation soapAction="http://tempuri.org/IService/Unlock" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LockRefresh">
<soap:operation soapAction="http://tempuri.org/IService/LockRefresh" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Log">
<soap:operation soapAction="http://tempuri.org/IService/Log" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="LockingService">
<wsdl:port name="BasicHttpBinding_IService" binding="tns:BasicHttpBinding_IService">
<soap:address location="http://localhost/bsmd.LockingService/LockingService.svc" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://tempuri.org/" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:import schemaLocation="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:element name="Lock">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="messageCoreId" type="q1:guid" />
<xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LockResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="LockResult" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Unlock">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="messageCoreId" type="q2:guid" />
<xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UnlockResponse">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="LockRefresh">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="currentLocks" nillable="true" type="q3:ArrayOfguid" />
<xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LockRefreshResponse">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="Log">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="msg" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="host" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LogResponse">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:complexType name="ArrayOfguid">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="guid" type="ser:guid" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfguid" nillable="true" type="tns:ArrayOfguid" />
</xs:schema>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="anyType" nillable="true" type="xs:anyType" />
<xs:element name="anyURI" nillable="true" type="xs:anyURI" />
<xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
<xs:element name="boolean" nillable="true" type="xs:boolean" />
<xs:element name="byte" nillable="true" type="xs:byte" />
<xs:element name="dateTime" nillable="true" type="xs:dateTime" />
<xs:element name="decimal" nillable="true" type="xs:decimal" />
<xs:element name="double" nillable="true" type="xs:double" />
<xs:element name="float" nillable="true" type="xs:float" />
<xs:element name="int" nillable="true" type="xs:int" />
<xs:element name="long" nillable="true" type="xs:long" />
<xs:element name="QName" nillable="true" type="xs:QName" />
<xs:element name="short" nillable="true" type="xs:short" />
<xs:element name="string" nillable="true" type="xs:string" />
<xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />
<xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />
<xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />
<xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />
<xs:element name="char" nillable="true" type="tns:char" />
<xs:simpleType name="char">
<xs:restriction base="xs:int" />
</xs:simpleType>
<xs:element name="duration" nillable="true" type="tns:duration" />
<xs:simpleType name="duration">
<xs:restriction base="xs:duration">
<xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />
<xs:minInclusive value="-P10675199DT2H48M5.4775808S" />
<xs:maxInclusive value="P10675199DT2H48M5.4775807S" />
</xs:restriction>
</xs:simpleType>
<xs:element name="guid" nillable="true" type="tns:guid" />
<xs:simpleType name="guid">
<xs:restriction base="xs:string">
<xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />
</xs:restriction>
</xs:simpleType>
<xs:attribute name="FactoryType" type="xs:QName" />
<xs:attribute name="Id" type="xs:ID" />
<xs:attribute name="Ref" type="xs:IDREF" />
</xs:schema>

View File

@ -1,102 +0,0 @@
//------------------------------------------------------------------------------
// <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 ENI2.LockingServiceReference {
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="LockingServiceReference.IService")]
public interface IService {
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/Lock", ReplyAction="http://tempuri.org/IService/LockResponse")]
bool Lock(System.Guid messageCoreId, string userId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/Lock", ReplyAction="http://tempuri.org/IService/LockResponse")]
System.Threading.Tasks.Task<bool> LockAsync(System.Guid messageCoreId, string userId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/Unlock", ReplyAction="http://tempuri.org/IService/UnlockResponse")]
void Unlock(System.Guid messageCoreId, string userId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/Unlock", ReplyAction="http://tempuri.org/IService/UnlockResponse")]
System.Threading.Tasks.Task UnlockAsync(System.Guid messageCoreId, string userId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/LockRefresh", ReplyAction="http://tempuri.org/IService/LockRefreshResponse")]
void LockRefresh(System.Guid[] currentLocks, string userId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/LockRefresh", ReplyAction="http://tempuri.org/IService/LockRefreshResponse")]
System.Threading.Tasks.Task LockRefreshAsync(System.Guid[] currentLocks, string userId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/Log", ReplyAction="http://tempuri.org/IService/LogResponse")]
void Log(string msg, string host, string userId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/Log", ReplyAction="http://tempuri.org/IService/LogResponse")]
System.Threading.Tasks.Task LogAsync(string msg, string host, string userId);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IServiceChannel : ENI2.LockingServiceReference.IService, System.ServiceModel.IClientChannel {
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class ServiceClient : System.ServiceModel.ClientBase<ENI2.LockingServiceReference.IService>, ENI2.LockingServiceReference.IService {
public ServiceClient() {
}
public ServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName) {
}
public ServiceClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress) {
}
public ServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress) {
}
public ServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress) {
}
public bool Lock(System.Guid messageCoreId, string userId) {
return base.Channel.Lock(messageCoreId, userId);
}
public System.Threading.Tasks.Task<bool> LockAsync(System.Guid messageCoreId, string userId) {
return base.Channel.LockAsync(messageCoreId, userId);
}
public void Unlock(System.Guid messageCoreId, string userId) {
base.Channel.Unlock(messageCoreId, userId);
}
public System.Threading.Tasks.Task UnlockAsync(System.Guid messageCoreId, string userId) {
return base.Channel.UnlockAsync(messageCoreId, userId);
}
public void LockRefresh(System.Guid[] currentLocks, string userId) {
base.Channel.LockRefresh(currentLocks, userId);
}
public System.Threading.Tasks.Task LockRefreshAsync(System.Guid[] currentLocks, string userId) {
return base.Channel.LockRefreshAsync(currentLocks, userId);
}
public void Log(string msg, string host, string userId) {
base.Channel.Log(msg, host, userId);
}
public System.Threading.Tasks.Task LogAsync(string msg, string host, string userId) {
return base.Channel.LogAsync(msg, host, userId);
}
}
}

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="41c8e48a-bb8b-4320-ae4b-0cc80c8e7781" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
<ClientOptions>
<GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod>
<EnableDataBinding>true</EnableDataBinding>
<ExcludedTypes />
<ImportXmlTypes>false</ImportXmlTypes>
<GenerateInternalTypes>false</GenerateInternalTypes>
<GenerateMessageContracts>false</GenerateMessageContracts>
<NamespaceMappings />
<CollectionMappings />
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<UseSerializerForFaults>true</UseSerializerForFaults>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />
</ClientOptions>
<MetadataSources>
<MetadataSource Address="http://localhost/bsmd.LockingService/LockingService.svc" Protocol="http" SourceId="1" />
</MetadataSources>
<Metadata>
<MetadataFile FileName="LockingService.disco" MetadataType="Disco" ID="cf92c075-c2d0-4004-8066-93002ca8e622" SourceId="1" SourceUrl="http://localhost/bsmd.LockingService/LockingService.svc?disco" />
<MetadataFile FileName="LockingService.xsd" MetadataType="Schema" ID="65873fec-1282-4255-9bea-e1f068a8cc8e" SourceId="1" SourceUrl="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd0" />
<MetadataFile FileName="LockingService1.xsd" MetadataType="Schema" ID="814ce36f-ee52-405f-a335-07cfe94e36a9" SourceId="1" SourceUrl="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd2" />
<MetadataFile FileName="LockingService.wsdl" MetadataType="Wsdl" ID="38fe50e2-79ad-46d8-9d71-802c5b022b56" SourceId="1" SourceUrl="http://localhost/bsmd.LockingService/LockingService.svc?wsdl" />
<MetadataFile FileName="LockingService2.xsd" MetadataType="Schema" ID="4c4c1dba-23f8-4271-acdc-84c6fcece9ef" SourceId="1" SourceUrl="http://localhost/bsmd.LockingService/LockingService.svc?xsd=xsd1" />
</Metadata>
<Extensions>
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
<ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
</Extensions>
</ReferenceGroup>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
<behaviors />
<bindings>
<binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;BasicHttpBinding_IService&quot; /&gt;" bindingType="basicHttpBinding" name="BasicHttpBinding_IService" />
</bindings>
<endpoints>
<endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost/bsmd.LockingService/LockingService.svc&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpBinding_IService&quot; contract=&quot;LockingServiceReference.IService&quot; name=&quot;BasicHttpBinding_IService&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost/bsmd.LockingService/LockingService.svc&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpBinding_IService&quot; contract=&quot;LockingServiceReference.IService&quot; name=&quot;BasicHttpBinding_IService&quot; /&gt;" contractName="LockingServiceReference.IService" name="BasicHttpBinding_IService" />
</endpoints>
</configurationSnapshot>

View File

@ -1,201 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="eMGCdaXNDDQsA9/yFfyZUioqt/U=">
<bindingConfigurations>
<bindingConfiguration bindingType="basicHttpBinding" name="BasicHttpBinding_IService">
<properties>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>BasicHttpBinding_IService</serializedValue>
</property>
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>StrongWildcard</serializedValue>
</property>
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>65536</serializedValue>
</property>
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
</property>
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/textEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Text.UTF8Encoding</serializedValue>
</property>
<property path="/transferMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Buffered</serializedValue>
</property>
<property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Text</serializedValue>
</property>
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpSecurityElement</serializedValue>
</property>
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.HttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.HttpTransportSecurityElement</serializedValue>
</property>
<property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Never</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>TransportSelected</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>(Collection)</serializedValue>
</property>
<property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpMessageSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpMessageSecurityElement</serializedValue>
</property>
<property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpMessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>UserName</serializedValue>
</property>
<property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Default</serializedValue>
</property>
</properties>
</bindingConfiguration>
</bindingConfigurations>
<endpoints>
<endpoint name="BasicHttpBinding_IService" contract="LockingServiceReference.IService" bindingType="basicHttpBinding" address="http://localhost/bsmd.LockingService/LockingService.svc" bindingConfiguration="BasicHttpBinding_IService">
<properties>
<property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>http://localhost/bsmd.LockingService/LockingService.svc</serializedValue>
</property>
<property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>basicHttpBinding</serializedValue>
</property>
<property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>BasicHttpBinding_IService</serializedValue>
</property>
<property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>LockingServiceReference.IService</serializedValue>
</property>
<property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
</property>
<property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>&lt;Header /&gt;</serializedValue>
</property>
<property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
</property>
<property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
</property>
<property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
</property>
<property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
</property>
<property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
</property>
<property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
</property>
<property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
</property>
<property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>My</serializedValue>
</property>
<property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>LocalMachine</serializedValue>
</property>
<property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>FindBySubjectDistinguishedName</serializedValue>
</property>
<property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>BasicHttpBinding_IService</serializedValue>
</property>
<property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
</properties>
</endpoint>
</endpoints>
</SavedWcfConfigurationInformation>

Binary file not shown.

View File

@ -0,0 +1,31 @@
// Copyright (c) 2017 schick Informatik
// Description: Einzelner Lock, der vom LockingService abgerufen werden kann
using System;
using System.Runtime.Serialization;
namespace bsmd.LockingService
{
[DataContract]
public class CoreLock
{
private Guid _coreId;
private string _userId;
[DataMember]
public Guid CoreId
{
get { return this._coreId; }
set { this._coreId = value; }
}
[DataMember]
public string UserId
{
get { return this._userId; }
set { this._userId = value; }
}
}
}

View File

@ -20,7 +20,7 @@ namespace bsmd.LockingService
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
bool Lock(Guid messageCoreId, string userId);
string Lock(Guid messageCoreId, string userId);
/// <summary>
@ -30,6 +30,12 @@ namespace bsmd.LockingService
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
void Unlock(Guid messageCoreId, string userId);
/// <summary>
/// Get all locks currently in use (for search result..)
/// </summary>
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
List<CoreLock> GetLocks();
/// <summary>
/// To avoid Timeout, send keepalive message
@ -48,26 +54,4 @@ namespace bsmd.LockingService
}
// Use a data contract as illustrated in the sample below to add composite types to service operations.
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
}

View File

@ -42,10 +42,12 @@ namespace bsmd.LockingService
private ILog log = LogManager.GetLogger(typeof(LockingService));
public bool Lock(Guid messageCoreId, string userId)
#region Implementation IService
public string Lock(Guid messageCoreId, string userId)
{
if (userId.IsNullOrEmpty()) return false;
bool result = false;
if (userId.IsNullOrEmpty()) return "request error";
string result = "";
lock (lockDict)
{
@ -55,14 +57,18 @@ namespace bsmd.LockingService
le.lockAquired = DateTime.Now;
le.userId = userId;
lockDict.Add(messageCoreId, le);
result = true;
}
else
{
if (lockDict[messageCoreId].userId == userId)
{
// this means "refresh"
lockDict[messageCoreId].lockAquired = DateTime.Now;
result = true;
}
else
{
// lock taken by somebody else..
result = lockDict[messageCoreId].userId;
}
}
}
@ -96,6 +102,22 @@ namespace bsmd.LockingService
log.Info(string.Format("{0} {1}:{2}", host, userId, msg));
}
public List<CoreLock> GetLocks()
{
List<CoreLock> result = new List<CoreLock>();
foreach (Guid messageCoreId in lockDict.Keys)
{
CoreLock coreLock = new CoreLock();
coreLock.CoreId = messageCoreId;
coreLock.UserId = lockDict[messageCoreId].userId;
result.Add(coreLock);
}
return result;
}
#endregion
#region class LockEntry
internal class LockEntry
{
@ -103,5 +125,7 @@ namespace bsmd.LockingService
public string userId = string.Empty;
}
#endregion
}
}

View File

@ -9,6 +9,11 @@
<httpRuntime targetFramework="4.5.2"/>
</system.web>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="crossDomain" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
@ -32,5 +37,10 @@
-->
<directoryBrowse enabled="true"/>
</system.webServer>
<!-- einkommentieren für Fiddler Debug -->
<system.net>
<defaultProxy>
<proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" />
</defaultProxy>
</system.net>
</configuration>

View File

@ -16,7 +16,7 @@
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<WcfConfigValidationEnabled>True</WcfConfigValidationEnabled>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<UseIISExpress>false</UseIISExpress>
<UseIISExpress>true</UseIISExpress>
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />
@ -67,7 +67,10 @@
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Content Include="index.htm" />
<Content Include="lock.png" />
<Content Include="LockingService.svc" />
<Content Include="logo_transparent_babyblau.png" />
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
@ -80,6 +83,7 @@
<Compile Include="..\bsmd.database\Properties\AssemblyProjectKeyInfo.cs">
<Link>Properties\AssemblyProjectKeyInfo.cs</Link>
</Compile>
<Compile Include="CoreLock.cs" />
<Compile Include="LockingService.svc.cs">
<DependentUpon>LockingService.svc</DependentUpon>
</Compile>
@ -92,6 +96,9 @@
<ItemGroup>
<Content Include="bsmd.LockingService.licenseheader" />
<Content Include="packages.config" />
<Content Include="..\bsmdKey.snk">
<Link>bsmdKey.snk</Link>
</Content>
<None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</None>
@ -109,6 +116,12 @@
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
@ -120,7 +133,7 @@
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>11651</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost/bsmd.LockingService</IISUrl>
<IISUrl>http://localhost:11651/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<UseIISExpress>false</UseIISExpress>
<UseIISExpress>true</UseIISExpress>
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>

View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
</head>
<body style="background-color:darkslategray;color:lemonchiffon;">
<div style="float:left; margin-right:5px;"><img src="lock.png" /></div>
<div style="float:right; margin-left:5px;"><img src="logo_transparent_babyblau.png" width="256" height="256" /></div>
(c) 2017 <a href="http://www.textbausteine.net/">schick Informatik</a> - Locking Service <br />
WCF Service für die ausschließliche Bearbeitung von Erfassungsmasken in ENI-2.
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -183,6 +183,11 @@ namespace bsmd.database
[MaxLength(50)]
public string TicketNo { get; set; }
/// <summary>
/// Property um in ENI-2 den "gelockten" Zustand zu speichern (wird nicht persistiert)
/// </summary>
public bool Locked { get; set; }
#region Felder um NSW Statusinformationen zu speichern (abgefragte Daten!)
public bool? Cancelled { get; set; }