Neue Version 3.6.2.0:

- Speichern
- Locking (noch nicht funktional)
- Visit-Id anfordern (noch nicht funktional)
- neuer Splashscreen
This commit is contained in:
Daniel Schick 2017-05-28 13:00:02 +00:00
parent 97ef25d4a5
commit 4d76d7191d
53 changed files with 1353 additions and 120 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<!-- <!--
Sample license text. (c) 2017 Informatikbüro Daniel Schick
--> -->
<configuration> <configuration>
<configSections> <configSections>
@ -35,7 +35,15 @@ Sample license text.
</ENI2.Properties.Settings> </ENI2.Properties.Settings>
</userSettings> </userSettings>
<system.serviceModel> <system.serviceModel>
<bindings /> <bindings>
<client /> <basicHttpBinding>
<binding name="BasicHttpBinding_IService" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:11651/LockingService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService"
contract="LockingServiceReference.IService" name="BasicHttpBinding_IService" />
</client>
</system.serviceModel> </system.serviceModel>
</configuration> </configuration>

View File

@ -10,6 +10,8 @@ using System.Windows.Controls;
using System.Windows.Input; using System.Windows.Input;
using System; using System;
using System.Net; using System.Net;
using ENI2.LockingServiceReference;
using System.Threading;
namespace ENI2 namespace ENI2
{ {
@ -18,6 +20,14 @@ namespace ENI2
/// </summary> /// </summary>
public partial class App : Application public partial class App : Application
{ {
// "global" statics, da gibt es sicher noch einen eleganteren Weg..
private static ServiceClient _lockingServiceClient = null;
private static Guid? _userId = null;
// Splash screen
private static SplashScreenWindow _splashScreenWindow;
private ManualResetEvent ResetSplashCreated;
private Thread _splashThread;
public App() : base() public App() : base()
{ {
@ -27,8 +37,23 @@ namespace ENI2
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
} }
public static ServiceClient LockingServiceClient { get { return _lockingServiceClient; } }
public static SplashScreenWindow SplashScreen { get { return _splashScreenWindow; } }
public static Guid? UserId { get { return _userId; } }
protected override void OnStartup(StartupEventArgs e) protected override void OnStartup(StartupEventArgs e)
{ {
this.ResetSplashCreated = new ManualResetEvent(false);
this._splashThread = new Thread(ShowSplash);
_splashThread.SetApartmentState(ApartmentState.STA);
_splashThread.IsBackground = true;
_splashThread.Name = "Splash Screen";
_splashThread.Start();
ResetSplashCreated.WaitOne();
base.OnStartup(e); base.OnStartup(e);
// initialize static / localized lookups from sqlite database // initialize static / localized lookups from sqlite database
@ -45,7 +70,17 @@ namespace ENI2
// TODO: Benutzerverwaltung // TODO: Benutzerverwaltung
// Connect to locking service (if enabled)
try
{
if (ENI2.Properties.Settings.Default.UseLocking)
App._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());
}
} }
@ -83,5 +118,14 @@ namespace ENI2
} }
} }
private void ShowSplash()
{
_splashScreenWindow = new SplashScreenWindow();
_splashScreenWindow.Show();
ResetSplashCreated.Set();
System.Windows.Threading.Dispatcher.Run();
}
} }
} }

View File

@ -8,14 +8,30 @@ using System.Windows.Controls;
using bsmd.database; using bsmd.database;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.ComponentModel;
namespace ENI2 namespace ENI2
{ {
public class DetailBaseControl : UserControl public class DetailBaseControl : UserControl
{ {
#region Fields
protected bool _initialized = false; protected bool _initialized = false;
private DependencyPropertyDescriptor _dpTextBox;
private DependencyPropertyDescriptor _dpDatePicker;
private DependencyPropertyDescriptor _dpLocode;
private DependencyPropertyDescriptor _dpCheckbox;
private DependencyPropertyDescriptor _dpComboboxIndex;
private DependencyPropertyDescriptor _dpComboboxValue;
private DependencyPropertyDescriptor _dpNumericUpdown;
private Dictionary<Object, Message.NotificationClass> _controlClassDict = new Dictionary<object, Message.NotificationClass>();
private Dictionary<Message.NotificationClass, Message> _typeMessageDict = new Dictionary<Message.NotificationClass, Message>();
private List<Message> _controlMessages = new List<Message>();
#endregion
#region enum #region enum
protected enum LocodeState protected enum LocodeState
@ -46,14 +62,30 @@ namespace ENI2
/// </summary> /// </summary>
public event Action<bool> RequestLock; public event Action<bool> RequestLock;
/// <summary>
/// Eine in der Detailansicht enthaltene Meldeklasse hat sich geändert
/// </summary>
public event Action<Message.NotificationClass> NotificationClassChanged;
#endregion #endregion
#region Properties #region Properties
/// <summary>
/// Core to be edited
/// </summary>
public MessageCore Core { get; set; } public MessageCore Core { get; set; }
/// <summary>
/// all messages for this core
/// </summary>
public List<Message> Messages { get; set; } public List<Message> Messages { get; set; }
/// <summary>
/// particular messages that are edited on this page
/// </summary>
public List<Message> ControlMessages { get { return this._controlMessages; } }
public Guid UserId { get; set; } // TODO: Ersetzen mit der User-Entity public Guid UserId { get; set; } // TODO: Ersetzen mit der User-Entity
#endregion #endregion
@ -62,6 +94,19 @@ namespace ENI2
public virtual void Initialize() { public virtual void Initialize() {
_dpTextBox = DependencyPropertyDescriptor.FromProperty(TextBox.TextProperty, typeof(TextBox));
_dpDatePicker = DependencyPropertyDescriptor.FromProperty(Xceed.Wpf.Toolkit.DateTimePicker.ValueProperty, typeof(Xceed.Wpf.Toolkit.DateTimePicker));
_dpLocode = DependencyPropertyDescriptor.FromProperty(Controls.LocodeControl.LocodeValueProperty, typeof(Controls.LocodeControl));
_dpCheckbox = DependencyPropertyDescriptor.FromProperty(CheckBox.IsCheckedProperty, typeof(CheckBox));
_dpComboboxIndex = DependencyPropertyDescriptor.FromProperty(ComboBox.SelectedIndexProperty, typeof(ComboBox));
_dpComboboxValue = DependencyPropertyDescriptor.FromProperty(ComboBox.SelectedValueProperty, typeof(ComboBox));
_dpNumericUpdown = DependencyPropertyDescriptor.FromProperty(Xceed.Wpf.Toolkit.DoubleUpDown.ValueProperty, typeof(Xceed.Wpf.Toolkit.DoubleUpDown));
foreach(Message message in this.Messages)
{
_typeMessageDict[message.MessageNotificationClass] = message;
}
} }
#endregion #endregion
@ -103,9 +148,84 @@ namespace ENI2
} }
} }
#region event handling for control content changes (signal dirty etc)
protected void RegisterTextboxChange(TextBox textBox, Message.NotificationClass notificationClass)
{
this._dpTextBox.AddValueChanged(textBox, this.controlContentChanged);
this._controlClassDict[textBox] = notificationClass;
}
protected void RegisterDateTimePickerChange(Xceed.Wpf.Toolkit.DateTimePicker dateTimePicker, Message.NotificationClass notificationClass)
{
this._dpDatePicker.AddValueChanged(dateTimePicker, this.controlContentChanged);
this._controlClassDict[dateTimePicker] = notificationClass;
}
protected void RegisterLocodeChange(Controls.LocodeControl locodeControl, Message.NotificationClass notificationClass)
{
this._dpLocode.AddValueChanged(locodeControl, this.controlContentChanged);
this._controlClassDict[locodeControl] = notificationClass;
}
protected void RegisterCheckboxChange(CheckBox checkBox, Message.NotificationClass notificationClass)
{
this._dpCheckbox.AddValueChanged(checkBox, this.controlContentChanged);
this._controlClassDict[checkBox] = notificationClass;
}
protected void RegisterComboboxIndexChange(ComboBox comboBox, Message.NotificationClass notificationClass)
{
this._dpComboboxIndex.AddValueChanged(comboBox, this.controlContentChanged);
this._controlClassDict[comboBox] = notificationClass;
}
protected void RegisterComboboxValueChange(ComboBox comboBox, Message.NotificationClass notificationClass)
{
this._dpComboboxValue.AddValueChanged(comboBox, this.controlContentChanged);
this._controlClassDict[comboBox] = notificationClass;
}
protected void RegisterDoubleUpDownChange(Xceed.Wpf.Toolkit.DoubleUpDown doubleUpDown, Message.NotificationClass notificationClass)
{
this._dpNumericUpdown.AddValueChanged(doubleUpDown, this.controlContentChanged);
this._controlClassDict[doubleUpDown] = notificationClass;
}
protected void SublistElementChanged(Message.NotificationClass notificationClass)
{
if (_typeMessageDict.ContainsKey(notificationClass))
{
if (!_typeMessageDict[notificationClass].IsDirty)
{
if (!_typeMessageDict[notificationClass].IsDirty)
{
_typeMessageDict[notificationClass].IsDirty = true;
// signal this notification class changed..
this.NotificationClassChanged?.Invoke(notificationClass);
}
}
}
}
private void controlContentChanged(object ctrl, EventArgs args)
{
if (this._controlClassDict.ContainsKey(ctrl))
{
Message.NotificationClass notificationClass = this._controlClassDict[ctrl];
this.SublistElementChanged(notificationClass);
}
else
{
System.Diagnostics.Trace.WriteLine("no notification class registered for control!!");
}
}
#endregion #endregion
#endregion
} }
} }

View File

@ -18,7 +18,24 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<xctk:AutoSelectTextBox x:Name="shipNameLabel" Grid.Row="0" Grid.Column="0" VerticalContentAlignment="Center" FontWeight="Bold" IsReadOnly="True" BorderThickness="0" AutoSelectBehavior="OnFocus" /> <xctk:AutoSelectTextBox x:Name="shipNameLabel" Grid.Row="0" Grid.Column="0" VerticalContentAlignment="Center" FontWeight="Bold" IsReadOnly="True" BorderThickness="0" AutoSelectBehavior="OnFocus" />
<xctk:AutoSelectTextBox x:Name="displayIdLabel" Grid.Row="0" Grid.Column="1" VerticalContentAlignment="Center" FontWeight="Bold" IsReadOnly="True" BorderThickness="0" AutoSelectBehavior="OnFocus" /> <Grid Grid.Row="0" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<xctk:AutoSelectTextBox x:Name="displayIdLabel" Width="Auto" VerticalContentAlignment="Center" FontWeight="Bold" IsReadOnly="True" BorderThickness="0" AutoSelectBehavior="OnFocus" />
<Button Name="buttonSave" Grid.Column="1" Grid.Row="0" Margin="2" Click="buttonSave_Click" BorderThickness="0" Background="Transparent" Visibility="Hidden">
<StackPanel Orientation="Horizontal">
<Image Source="./Resources/floppy_disk_edit.png" Margin="0,0,5,0" Height="24" />
</StackPanel>
</Button>
<Button Name="buttonSaveAll" Grid.Column="2" Grid.Row="0" Margin="2" Click="buttonSaveAll_Click" BorderThickness="0" Background="Transparent" Visibility="Hidden">
<StackPanel Orientation="Horizontal">
<Image Source="./Resources/Floppy_disks.png" Margin="0,0,5,0" Height="24" />
</StackPanel>
</Button>
</Grid>
<ListBox x:Name="listBoxMessages" Margin="2" SelectionMode="Single" SelectionChanged="listBoxMessages_SelectionChanged" <ListBox x:Name="listBoxMessages" Margin="2" SelectionMode="Single" SelectionChanged="listBoxMessages_SelectionChanged"
Grid.Row="1" Grid.Column="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> Grid.Row="1" Grid.Column="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">

View File

@ -10,6 +10,7 @@ using System.Windows.Controls;
using bsmd.database; using bsmd.database;
using ENI2.DetailViewControls; using ENI2.DetailViewControls;
using ENI2.LockingServiceReference; using ENI2.LockingServiceReference;
using System.Windows;
namespace ENI2 namespace ENI2
{ {
@ -25,7 +26,6 @@ namespace ENI2
private List<MessageGroup> _listBoxList = new List<MessageGroup>(); private List<MessageGroup> _listBoxList = new List<MessageGroup>();
private List<Message> _messages; private List<Message> _messages;
private Dictionary<Type, DetailBaseControl> controlCache = new Dictionary<Type, DetailBaseControl>(); private Dictionary<Type, DetailBaseControl> controlCache = new Dictionary<Type, DetailBaseControl>();
private ServiceClient lockingServiceClient;
private Guid userId = Guid.NewGuid(); // remove THIS!! private Guid userId = Guid.NewGuid(); // remove THIS!!
#endregion #endregion
@ -68,19 +68,6 @@ namespace ENI2
_messages = DBManager.Instance.GetMessagesForCore(_core, DBManager.MessageLoad.ALL); _messages = DBManager.Instance.GetMessagesForCore(_core, DBManager.MessageLoad.ALL);
Dispatcher.BeginInvoke((Action)(() => this.listBoxMessages.SelectedIndex = 0)); 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 #endregion
@ -122,19 +109,83 @@ namespace ENI2
detailControl.RequestReload += DetailControl_RequestReload; detailControl.RequestReload += DetailControl_RequestReload;
detailControl.RequestLock += DetailControl_RequestLock; detailControl.RequestLock += DetailControl_RequestLock;
detailControl.NotificationClassChanged += DetailControl_NotificationClassChanged;
detailControl.Initialize(); detailControl.Initialize();
controlCache.Add(mg.MessageGroupControlType, detailControl); controlCache.Add(mg.MessageGroupControlType, detailControl);
this.buttonSave.Visibility = Visibility.Hidden;
} }
else
{
// Control has been created before: Set visibility of "save" button:
bool hasDirtyMessages = false;
DetailBaseControl dbc = controlCache[mg.MessageGroupControlType];
foreach (Message message in dbc.ControlMessages)
if (message.IsDirty)
hasDirtyMessages = true;
this.buttonSave.Visibility = hasDirtyMessages ? Visibility.Visible : Visibility.Hidden;
}
// plug it in ;-) // plug it in ;-)
detailView.Children.Clear(); detailView.Children.Clear();
detailView.Children.Add(controlCache[mg.MessageGroupControlType]); detailView.Children.Add(controlCache[mg.MessageGroupControlType]);
} }
} }
private void buttonSave_Click(object sender, RoutedEventArgs e)
{
MessageBoxResult result = MessageBox.Show(Properties.Resources.textSavePage, Properties.Resources.textConfirmation,
MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
DetailBaseControl currentControl = this.detailView.Children[0] as DetailBaseControl;
if (currentControl != null)
{
foreach (Message message in currentControl.ControlMessages)
{
if (message.IsDirty)
{
DBManager.Instance.Save(message);
message.SaveElements();
message.IsDirty = false;
}
}
this.buttonSave.Visibility = Visibility.Hidden;
}
}
}
private void buttonSaveAll_Click(object sender, RoutedEventArgs e)
{
MessageBoxResult result = MessageBox.Show(Properties.Resources.textSaveAll, Properties.Resources.textConfirmation,
MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
foreach(Message message in this._messages)
{
if (message.IsDirty)
{
DBManager.Instance.Save(message);
message.SaveElements();
message.IsDirty = false;
this.buttonSaveAll.Visibility = Visibility.Hidden;
this.buttonSave.Visibility = Visibility.Hidden;
}
}
}
}
private void DetailControl_NotificationClassChanged(Message.NotificationClass notificationClass)
{
// in der Übersicht die Meldeklasse als geändert markieren..?
this.buttonSaveAll.Visibility = Visibility.Visible;
this.buttonSave.Visibility = Visibility.Visible;
}
private void DetailControl_RequestLock(bool shouldLock) private void DetailControl_RequestLock(bool shouldLock)
{ {
if(this.lockingServiceClient == null) if(App.LockingServiceClient == null)
{ {
return; return;
} }
@ -142,7 +193,7 @@ namespace ENI2
{ {
try try
{ {
string lockResult = this.lockingServiceClient.Lock(this.Core.Id.Value, this.userId.ToString()); string lockResult = App.LockingServiceClient.Lock(this.Core.Id.Value, this.userId.ToString());
if (lockResult == "") if (lockResult == "")
{ {
// lock successful // lock successful
@ -163,7 +214,7 @@ namespace ENI2
} }
else else
{ {
this.lockingServiceClient.Unlock(this.Core.Id.Value, this.userId.ToString()); App.LockingServiceClient.Unlock(this.Core.Id.Value, this.userId.ToString());
this.Core.Locked = false; this.Core.Locked = false;
} }
} }

View File

@ -74,7 +74,7 @@
<Label Name="labelCreated" Grid.Column="4" Grid.Row="4" Margin="2, 0, 0, 0" /> <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" /> <TextBox Name="textBoxTicketNo" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Text="{Binding TicketNo}" Margin="2" />
<!-- Command buttons --> <!-- Command buttons -->
<Button Name="buttonLock" Grid.Column="0" Grid.Row="6" Margin="2" Click="buttonLock_Click" BorderThickness="0"> <Button Name="buttonLock" Grid.Column="0" Grid.Row="6" Margin="2" Click="buttonLock_Click" BorderThickness="0" Background="Transparent">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<Image Source="../Resources/lock_open.png" Margin="0,0,5,0" Height="24" /> <Image Source="../Resources/lock_open.png" Margin="0,0,5,0" Height="24" />
<TextBlock Text="{x:Static p:Resources.textLock}" VerticalAlignment="Center" /> <TextBlock Text="{x:Static p:Resources.textLock}" VerticalAlignment="Center" />
@ -84,7 +84,7 @@
<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="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 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="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"> <Button Name="buttonRefresh" Grid.Column="5" Grid.Row="6" Margin="2" Click="buttonRefresh_Click" BorderThickness="0" Background="Transparent">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<Image Source="../Resources/nav_refresh_blue.png" Margin="0,0,5,0" Height="24"/> <Image Source="../Resources/nav_refresh_blue.png" Margin="0,0,5,0" Height="24"/>
<TextBlock Text="{x:Static p:Resources.textRefresh}" VerticalAlignment="Center"/> <TextBlock Text="{x:Static p:Resources.textRefresh}" VerticalAlignment="Center"/>

View File

@ -11,6 +11,7 @@ using System.Windows.Input;
using System.Timers; using System.Timers;
using bsmd.database; using bsmd.database;
using System.ComponentModel;
namespace ENI2.DetailViewControls namespace ENI2.DetailViewControls
{ {
@ -29,6 +30,19 @@ namespace ENI2.DetailViewControls
public OverViewDetailControl() public OverViewDetailControl()
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += OverViewDetailControl_Loaded;
}
private void OverViewDetailControl_Loaded(object sender, RoutedEventArgs e)
{
// die Controls nach Änderungen monitoren
this.RegisterTextboxChange(this.textBoxTicketNo, this.Core.IsTransit ? Message.NotificationClass.TRANSIT : Message.NotificationClass.VISIT);
this.RegisterTextboxChange(this.textBoxDisplayId, this.Core.IsTransit ? Message.NotificationClass.TRANSIT : Message.NotificationClass.VISIT);
this.RegisterDateTimePickerChange(this.dateTimePickerATA, Message.NotificationClass.ATA);
this.RegisterDateTimePickerChange(this.dateTimePickerATD, Message.NotificationClass.ATD);
this.RegisterDateTimePickerChange(this.dateTimePickerETA, Message.NotificationClass.NOA_NOD);
this.RegisterDateTimePickerChange(this.dateTimePickerETD, Message.NotificationClass.NOA_NOD);
} }
#region Initialize #region Initialize
@ -54,6 +68,8 @@ namespace ENI2.DetailViewControls
vtBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; vtBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(textBoxDisplayId, TextBox.TextProperty, vtBinding); BindingOperations.SetBinding(textBoxDisplayId, TextBox.TextProperty, vtBinding);
#region Meldeklassen einrichten und Icons / Gruppen / Index zuordnen
foreach (Message aMessage in this.Messages) foreach (Message aMessage in this.Messages)
{ {
if (aMessage.MessageNotificationClass == notificationClass) if (aMessage.MessageNotificationClass == notificationClass)
@ -158,6 +174,8 @@ namespace ENI2.DetailViewControls
} }
} }
#endregion
// Meldeklassen nach ihrem Vorkommen in den Detailansichten sortieren (SH, 12.5.17) // Meldeklassen nach ihrem Vorkommen in den Detailansichten sortieren (SH, 12.5.17)
this.Messages.Sort((a, b) => this.Messages.Sort((a, b) =>
{ {
@ -171,7 +189,6 @@ namespace ENI2.DetailViewControls
// kann das eigentlich passieren??! // kann das eigentlich passieren??!
} }
#region init ATA #region init ATA
// ganz hakelig ich weiß dafür kapiert das gleich jeder // ganz hakelig ich weiß dafür kapiert das gleich jeder
@ -197,6 +214,7 @@ namespace ENI2.DetailViewControls
} }
this.dateTimePickerATA.DataContext = ata; this.dateTimePickerATA.DataContext = ata;
this.ControlMessages.Add(this._ataMessage);
#endregion #endregion
@ -224,6 +242,7 @@ namespace ENI2.DetailViewControls
} }
this.dateTimePickerATD.DataContext = atd; this.dateTimePickerATD.DataContext = atd;
this.ControlMessages.Add(this._atdMessage);
#endregion #endregion
@ -252,6 +271,7 @@ namespace ENI2.DetailViewControls
this.dateTimePickerETD.DataContext = noa_nod; this.dateTimePickerETD.DataContext = noa_nod;
this.dateTimePickerETA.DataContext = noa_nod; this.dateTimePickerETA.DataContext = noa_nod;
this.ControlMessages.Add(this._noanodMessage);
#endregion #endregion
@ -261,12 +281,15 @@ namespace ENI2.DetailViewControls
#endregion #endregion
#region private methods
private void jumpToMessage(Message message) private void jumpToMessage(Message message)
{ {
this.OnJumpToListElementRequest(message.ENINotificationDetailIndex); this.OnJumpToListElementRequest(message.ENINotificationDetailIndex);
} }
#endregion
#region mouse event handler #region mouse event handler
private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
@ -332,6 +355,10 @@ namespace ENI2.DetailViewControls
_checkStatusTimer.Start(); _checkStatusTimer.Start();
} }
#endregion
#region event handler
private void _checkStatusTimer_Elapsed(object sender, ElapsedEventArgs e) private void _checkStatusTimer_Elapsed(object sender, ElapsedEventArgs e)
{ {
bool? statusFlag = DBManager.Instance.GetMessageCoreQueryStatusFlag(this.Core.Id.Value); bool? statusFlag = DBManager.Instance.GetMessageCoreQueryStatusFlag(this.Core.Id.Value);
@ -372,18 +399,15 @@ namespace ENI2.DetailViewControls
{ {
this.Dispatcher.BeginInvoke(new Action(() => this.Dispatcher.BeginInvoke(new Action(() =>
{ {
this.OnRequestLock(!this.Core.Locked); bool reqValue = true;
if (this.Core.Locked ?? false) // I locked it already, means unlock now
reqValue = false;
this.OnRequestLock(reqValue);
})); }));
} }
#endregion
} }
#endregion
#region private methods
#endregion
} }

View File

@ -1,25 +1,11 @@
// Copyright (c) 2017 schick Informatik // Copyright (c) 2017 schick Informatik
// Description: // Description: Detailansicht NOA_NOD, AGNT
// //
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Controls; 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.Navigation;
using System.Windows.Shapes;
using bsmd.database; using bsmd.database;
using bsmd.ExcelReadService;
using ENI2;
using ENI2.EditControls; using ENI2.EditControls;
namespace ENI2.DetailViewControls namespace ENI2.DetailViewControls
@ -35,6 +21,32 @@ namespace ENI2.DetailViewControls
public PortCallDetailControl() public PortCallDetailControl()
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += PortCallDetailControl_Loaded;
}
private void PortCallDetailControl_Loaded(object sender, RoutedEventArgs e)
{
// NOA_NOD
this.RegisterDateTimePickerChange(this.dateTimePicker_ETAToKielCanal, Message.NotificationClass.NOA_NOD);
this.RegisterDateTimePickerChange(this.dateTimePicker_ETAToNextPort, Message.NotificationClass.NOA_NOD);
this.RegisterDateTimePickerChange(this.dateTimePicker_ETAToPortOfCall, Message.NotificationClass.NOA_NOD);
this.RegisterDateTimePickerChange(this.dateTimePicker_ETDFromKielCanal, Message.NotificationClass.NOA_NOD);
this.RegisterDateTimePickerChange(this.dateTimePicker_ETDFromLastPort, Message.NotificationClass.NOA_NOD);
this.RegisterDateTimePickerChange(this.dateTimePicker_ETDFromPortOfCall, Message.NotificationClass.NOA_NOD);
this.RegisterLocodeChange(this.locodeControl_LastPort, Message.NotificationClass.NOA_NOD);
this.RegisterLocodeChange(this.locodeControl_NextPort, Message.NotificationClass.NOA_NOD);
this.RegisterCheckboxChange(this.checkBox_IsAnchored, Message.NotificationClass.NOA_NOD);
// AGNT
this.RegisterTextboxChange(this.textBox_AgentCity, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentCompanyName, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentEMail, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentFax, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentFirstName, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentLastName, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentPhone, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentPostalCode, Message.NotificationClass.AGNT);
this.RegisterTextboxChange(this.textBox_AgentStreetAndNumber, Message.NotificationClass.AGNT);
} }
public override void Initialize() public override void Initialize()
@ -49,6 +61,7 @@ namespace ENI2.DetailViewControls
_noa_nod = aMessage.Elements[0] as NOA_NOD; _noa_nod = aMessage.Elements[0] as NOA_NOD;
else else
_noa_nod = new NOA_NOD(); // TODO _noa_nod = new NOA_NOD(); // TODO
this.ControlMessages.Add(aMessage);
} }
if(aMessage.MessageNotificationClass == Message.NotificationClass.AGNT) if(aMessage.MessageNotificationClass == Message.NotificationClass.AGNT)
@ -57,6 +70,7 @@ namespace ENI2.DetailViewControls
_agnt = aMessage.Elements[0] as AGNT; _agnt = aMessage.Elements[0] as AGNT;
else else
_agnt = new AGNT(); _agnt = new AGNT();
this.ControlMessages.Add(aMessage);
} }
} }
@ -85,6 +99,7 @@ namespace ENI2.DetailViewControls
this.dateTimePicker_ETDFromKielCanal.DataContext = _noa_nod; this.dateTimePicker_ETDFromKielCanal.DataContext = _noa_nod;
this.dateTimePicker_ETDFromLastPort.DataContext = _noa_nod; this.dateTimePicker_ETDFromLastPort.DataContext = _noa_nod;
this.dateTimePicker_ETDFromPortOfCall.DataContext = _noa_nod; this.dateTimePicker_ETDFromPortOfCall.DataContext = _noa_nod;
} }
private void DataGridCallPurposes_DeleteRequested(DatabaseEntity obj) private void DataGridCallPurposes_DeleteRequested(DatabaseEntity obj)
@ -123,6 +138,8 @@ namespace ENI2.DetailViewControls
if(ecpd.ShowDialog() ?? false) if(ecpd.ShowDialog() ?? false)
{ {
this.dataGridCallPurposes.Items.Refresh(); this.dataGridCallPurposes.Items.Refresh();
// signal up
this.SublistElementChanged(Message.NotificationClass.NOA_NOD);
} }
} }
} }

View File

@ -56,7 +56,6 @@
<Label HorizontalContentAlignment="Right" Grid.Row="4" Grid.Column="2" Content="{x:Static p:Resources.textConstructionCharacteristics}" Name="label_INFOConstructionCharacteristics" VerticalContentAlignment="Center" Margin="0,0,10,0"/> <Label HorizontalContentAlignment="Right" Grid.Row="4" Grid.Column="2" Content="{x:Static p:Resources.textConstructionCharacteristics}" Name="label_INFOConstructionCharacteristics" VerticalContentAlignment="Center" Margin="0,0,10,0"/>
<ComboBox Grid.Row="0" Grid.Column="1" Name="comboBoxShippingArea" Margin="2" SelectedIndex="{Binding ShippingArea}"/> <ComboBox Grid.Row="0" Grid.Column="1" Name="comboBoxShippingArea" Margin="2" SelectedIndex="{Binding ShippingArea}"/>
<ComboBox Grid.Row="1" Grid.Column="1" Name="comboBoxPortArea" Margin="2" SelectedValue="{Binding PortArea}" SelectedValuePath="Key" DisplayMemberPath="Value" /> <ComboBox Grid.Row="1" Grid.Column="1" Name="comboBoxPortArea" Margin="2" SelectedValue="{Binding PortArea}" SelectedValuePath="Key" DisplayMemberPath="Value" />
<!-- TextBox Grid.Row="1" Grid.Column="1" Name="textBoxPortArea" Margin="2" Text="{Binding PortArea}" / -->
<TextBox Grid.Row="2" Grid.Column="1" Name="textRequestedPostionInPortOfCall" Margin="2" Text="{Binding RequestedPositionInPortOfCall}" /> <TextBox Grid.Row="2" Grid.Column="1" Name="textRequestedPostionInPortOfCall" Margin="2" Text="{Binding RequestedPositionInPortOfCall}" />
<TextBox Grid.Row="3" Grid.Column="1" Name="textBowThrusterPower" Margin="2" Text="{Binding BowThrusterPower}" /> <TextBox Grid.Row="3" Grid.Column="1" Name="textBowThrusterPower" Margin="2" Text="{Binding BowThrusterPower}" />
<TextBox Grid.Row="4" Grid.Column="1" Name="textSternThrusterPower" Margin="2" Text="{Binding SternThrusterPower}" /> <TextBox Grid.Row="4" Grid.Column="1" Name="textSternThrusterPower" Margin="2" Text="{Binding SternThrusterPower}" />

View File

@ -43,6 +43,23 @@ namespace ENI2.DetailViewControls
public PortNotificationDetailControl() public PortNotificationDetailControl()
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += PortNotificationDetailControl_Loaded;
}
private void PortNotificationDetailControl_Loaded(object sender, RoutedEventArgs e)
{
this.RegisterTextboxChange(this.textBox_NameMaster, Message.NotificationClass.NAME);
this.RegisterComboboxIndexChange(this.comboBoxShippingArea, Message.NotificationClass.INFO);
this.RegisterComboboxValueChange(this.comboBoxPortArea, Message.NotificationClass.INFO);
this.RegisterTextboxChange(this.textRequestedPostionInPortOfCall, Message.NotificationClass.INFO);
this.RegisterTextboxChange(this.textBowThrusterPower, Message.NotificationClass.INFO);
this.RegisterTextboxChange(this.textSternThrusterPower, Message.NotificationClass.INFO);
this.RegisterCheckboxChange(this.checkBoxFumigatedBulkCargo, Message.NotificationClass.INFO);
this.RegisterDoubleUpDownChange(this.doubleUpDownDisplacementSummerDraught, Message.NotificationClass.INFO);
this.RegisterTextboxChange(this.textSpecialRequirements, Message.NotificationClass.INFO);
this.RegisterTextboxChange(this.textConstructionCharacteristics, Message.NotificationClass.INFO);
} }
public override void Initialize() public override void Initialize()
@ -51,10 +68,10 @@ namespace ENI2.DetailViewControls
foreach (Message aMessage in this.Messages) foreach (Message aMessage in this.Messages)
{ {
if (aMessage.MessageNotificationClass == Message.NotificationClass.NAME) this._nameMessage = aMessage; if (aMessage.MessageNotificationClass == Message.NotificationClass.NAME) { this._nameMessage = aMessage; this.ControlMessages.Add(aMessage); }
if (aMessage.MessageNotificationClass == Message.NotificationClass.INFO) this._infoMessage = aMessage; if (aMessage.MessageNotificationClass == Message.NotificationClass.INFO) { this._infoMessage = aMessage; this.ControlMessages.Add(aMessage); }
if (aMessage.MessageNotificationClass == Message.NotificationClass.SERV) this._servMessage = aMessage; if (aMessage.MessageNotificationClass == Message.NotificationClass.SERV) { this._servMessage = aMessage; this.ControlMessages.Add(aMessage); }
if (aMessage.MessageNotificationClass == Message.NotificationClass.LADG) this._ladgMessage = aMessage; if (aMessage.MessageNotificationClass == Message.NotificationClass.LADG) { this._ladgMessage = aMessage; this.ControlMessages.Add(aMessage); }
} }
#region init NAME #region init NAME
@ -155,6 +172,7 @@ namespace ENI2.DetailViewControls
ladg.MessageHeader = _ladgMessage; ladg.MessageHeader = _ladgMessage;
_ladgMessage.Elements.Add(ladg); _ladgMessage.Elements.Add(ladg);
this.dataGridLADG.Items.Refresh(); this.dataGridLADG.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.LADG);
} }
} }
@ -179,6 +197,7 @@ namespace ENI2.DetailViewControls
eld.LADG = ladg; eld.LADG = ladg;
if (eld.ShowDialog() ?? false) if (eld.ShowDialog() ?? false)
this.dataGridLADG.Items.Refresh(); this.dataGridLADG.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.LADG);
} }
} }
@ -197,6 +216,7 @@ namespace ENI2.DetailViewControls
serv.MessageHeader = _servMessage; serv.MessageHeader = _servMessage;
_servMessage.Elements.Add(serv); _servMessage.Elements.Add(serv);
this.dataGridSERV.Items.Refresh(); this.dataGridSERV.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.SERV);
} }
} }
@ -220,7 +240,10 @@ namespace ENI2.DetailViewControls
EditSERVDialog esd = new EditSERVDialog(); EditSERVDialog esd = new EditSERVDialog();
esd.SERV = serv; esd.SERV = serv;
if (esd.ShowDialog() ?? false) if (esd.ShowDialog() ?? false)
{
this.dataGridSERV.Items.Refresh(); this.dataGridSERV.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.SERV);
}
} }
} }

View File

@ -35,8 +35,8 @@
<MinimumRequiredVersion>3.5.1.0</MinimumRequiredVersion> <MinimumRequiredVersion>3.5.1.0</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish> <CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.html</WebPage> <WebPage>publish.html</WebPage>
<ApplicationRevision>9</ApplicationRevision> <ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>3.5.7.%2a</ApplicationVersion> <ApplicationVersion>3.6.2.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut> <CreateDesktopShortcut>true</CreateDesktopShortcut>
<PublishWizardCompleted>true</PublishWizardCompleted> <PublishWizardCompleted>true</PublishWizardCompleted>
@ -225,6 +225,14 @@
<DependentUpon>VisitIdDialog.xaml</DependentUpon> <DependentUpon>VisitIdDialog.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="LocalizedLookup.cs" /> <Compile Include="LocalizedLookup.cs" />
<Compile Include="Service References\LockingServiceReference\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.svcmap</DependentUpon>
</Compile>
<Compile Include="SplashScreenWindow.xaml.cs">
<DependentUpon>SplashScreenWindow.xaml</DependentUpon>
</Compile>
<Compile Include="SucheControl.xaml.cs"> <Compile Include="SucheControl.xaml.cs">
<DependentUpon>SucheControl.xaml</DependentUpon> <DependentUpon>SucheControl.xaml</DependentUpon>
</Compile> </Compile>
@ -328,6 +336,10 @@
<DependentUpon>MainWindow.xaml</DependentUpon> <DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Page Include="SplashScreenWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="SucheControl.xaml"> <Page Include="SucheControl.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
@ -355,11 +367,37 @@
<DependentUpon>Settings.settings</DependentUpon> <DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput> <DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile> </Compile>
<None Include="Service References\LockingServiceReference\ENI2.LockingServiceReference.CoreLock.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<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>
<None Include="Service References\LockingServiceReference\LockingService3.xsd">
<SubType>Designer</SubType>
</None>
<Resource Include="Resources\nav_refresh_blue.png" /> <Resource Include="Resources\nav_refresh_blue.png" />
<Resource Include="Resources\lock.png" /> <Resource Include="Resources\lock.png" />
<Resource Include="Resources\lock_open.png" /> <Resource Include="Resources\lock_open.png" />
<Resource Include="Resources\lock_error.png" /> <Resource Include="Resources\lock_error.png" />
<Resource Include="Resources\lock_ok.png" /> <Resource Include="Resources\lock_ok.png" />
<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\floppy_disk_edit.png" />
<Resource Include="Resources\floppy_disks.png" />
<Resource Include="Resources\logo_transparent_babyblau.png" />
<Content Include="x64\SQLite.Interop.dll"> <Content Include="x64\SQLite.Interop.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>
@ -401,7 +439,7 @@
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<SplashScreen Include="SplashScreen.png" /> <None Include="SplashScreen.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\EUREPORT.png" /> <Resource Include="Resources\EUREPORT.png" />
@ -490,6 +528,9 @@
<ItemGroup> <ItemGroup>
<WCFMetadata Include="Service References\" /> <WCFMetadata Include="Service References\" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<WCFMetadataStorage Include="Service References\LockingServiceReference\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <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')" /> <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"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

View File

@ -4,6 +4,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 14.0.25123.0 VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENI2", "ENI2.csproj", "{67A7452A-A3F2-4199-8D98-1D95AEB7B649}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENI2", "ENI2.csproj", "{67A7452A-A3F2-4199-8D98-1D95AEB7B649}"
ProjectSection(ProjectDependencies) = postProject
{7CD5E5BC-8F70-4DFB-BAAE-FBC91E6C3F33} = {7CD5E5BC-8F70-4DFB-BAAE-FBC91E6C3F33}
EndProjectSection
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.database", "..\..\..\nsw\Source\bsmd.database\bsmd.database.csproj", "{19945AF2-379B-46A5-B27A-303B5EC1D557}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.database", "..\..\..\nsw\Source\bsmd.database\bsmd.database.csproj", "{19945AF2-379B-46A5-B27A-303B5EC1D557}"
EndProject EndProject

View File

@ -23,7 +23,7 @@
<DockPanel Name="mainPanel"> <DockPanel Name="mainPanel">
<Grid DockPanel.Dock="Top" Height="80" Background="#FFE8F6FF"> <Grid DockPanel.Dock="Top" Height="80" Background="#FFE8F6FF">
<Image x:Name="logoImage" HorizontalAlignment="Left" Height="80" Width="80" Source="Resources/EUREPORT.png" Stretch="Fill" MouseUp="logoImage_MouseUp"/> <Image x:Name="logoImage" HorizontalAlignment="Left" Height="75" Width="75" Source="Resources/EUREPORT.png" Stretch="Fill" MouseUp="logoImage_MouseUp" />
<Button x:Name="buttonNewId" Content="{x:Static p:Resources.textNewVisitTransitId}" HorizontalAlignment="Left" Margin="101,25,0,0" VerticalAlignment="Top" Width="110" Height="23" Click="buttonNewTransitIdClick" Background="Transparent" /> <Button x:Name="buttonNewId" Content="{x:Static p:Resources.textNewVisitTransitId}" HorizontalAlignment="Left" Margin="101,25,0,0" VerticalAlignment="Top" Width="110" Height="23" Click="buttonNewTransitIdClick" Background="Transparent" />
<!--Button x:Name="buttonAnmeldungen" Content="{x:Static p:Resources.textDeclarations}" HorizontalAlignment="Left" Margin="101,25,0,0" VerticalAlignment="Top" Width="95" Height="23" Click="buttonAnmeldungen_Click" Background="Transparent" /--> <!--Button x:Name="buttonAnmeldungen" Content="{x:Static p:Resources.textDeclarations}" HorizontalAlignment="Left" Margin="101,25,0,0" VerticalAlignment="Top" Width="95" Height="23" Click="buttonAnmeldungen_Click" Background="Transparent" /-->
<!--Button x:Name="buttonVorgaenge" Content="{x:Static p:Resources.textOperations}" HorizontalAlignment="Left" Margin="201,25,0,0" VerticalAlignment="Top" Width="95" Height="23" Click="buttonVorgaenge_Click" Background="Transparent" / --> <!--Button x:Name="buttonVorgaenge" Content="{x:Static p:Resources.textOperations}" HorizontalAlignment="Left" Margin="201,25,0,0" VerticalAlignment="Top" Width="95" Height="23" Click="buttonVorgaenge_Click" Background="Transparent" / -->

View File

@ -14,6 +14,7 @@ using bsmd.database;
using System.Windows.Controls; using System.Windows.Controls;
using ENI2.Controls; using ENI2.Controls;
using ENI2.EditControls; using ENI2.EditControls;
using System.Threading;
namespace ENI2 namespace ENI2
{ {
@ -31,13 +32,17 @@ namespace ENI2
public MainWindow() public MainWindow()
{ {
Thread.Sleep(500);
InitializeComponent(); InitializeComponent();
App.SplashScreen.ShowMessage("loading..");
this.sucheControl = new SucheControl(); this.sucheControl = new SucheControl();
this.tabSearch.Content = this.sucheControl; this.tabSearch.Content = this.sucheControl;
this.sucheControl.buttonSuche.IsDefault = true; this.sucheControl.buttonSuche.IsDefault = true;
this.sucheControl.MessageCoreSelected += AnmeldungenControl_MessageCoreSelected; this.sucheControl.MessageCoreSelected += AnmeldungenControl_MessageCoreSelected;
this.mainPanel.LayoutTransform = this._transform; this.mainPanel.LayoutTransform = this._transform;
App.SplashScreen.ShowMessage("done");
Thread.Sleep(500);
App.SplashScreen.LoadComplete();
} }
private void AnmeldungenControl_MessageCoreSelected(MessageCore aMessageCore) private void AnmeldungenControl_MessageCoreSelected(MessageCore aMessageCore)

View File

@ -260,6 +260,26 @@ namespace ENI2.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap floppy_disk_edit {
get {
object obj = ResourceManager.GetObject("floppy_disk_edit", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap floppy_disks {
get {
object obj = ResourceManager.GetObject("floppy_disks", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -310,6 +330,16 @@ namespace ENI2.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap logo_transparent_babyblau {
get {
object obj = ResourceManager.GetObject("logo_transparent_babyblau", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -632,6 +662,15 @@ namespace ENI2.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Confirmation.
/// </summary>
public static string textConfirmation {
get {
return ResourceManager.GetString("textConfirmation", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Construction characteristics. /// Looks up a localized string similar to Construction characteristics.
/// </summary> /// </summary>
@ -1109,6 +1148,24 @@ namespace ENI2.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Save all?.
/// </summary>
public static string textSaveAll {
get {
return ResourceManager.GetString("textSaveAll", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Save data on this page?.
/// </summary>
public static string textSavePage {
get {
return ResourceManager.GetString("textSavePage", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Search. /// Looks up a localized string similar to Search.
/// </summary> /// </summary>

View File

@ -535,4 +535,22 @@
<data name="lock_ok" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> <value>..\Resources\lock_ok.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="floppy_disk_edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\floppy_disk_edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="floppy_disks" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\floppy_disks.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="textSavePage" xml:space="preserve">
<value>Save data on this page?</value>
</data>
<data name="textSaveAll" xml:space="preserve">
<value>Save all?</value>
</data>
<data name="textConfirmation" xml:space="preserve">
<value>Confirmation</value>
</data>
<data name="logo_transparent_babyblau" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\logo_transparent_babyblau.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="CoreLock" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>ENI2.LockingServiceReference.CoreLock, Service References.LockingServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@ -0,0 +1,4 @@
<?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:11651/LockingService.svc?wsdl" docRef="http://localhost:11651/LockingService.svc" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
</discovery>

View File

@ -0,0 +1,116 @@
<?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:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 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:11651/LockingService.svc?xsd=xsd0" namespace="http://tempuri.org/" />
<xsd:import schemaLocation="http://localhost:11651/LockingService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xsd:import schemaLocation="http://localhost:11651/LockingService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/bsmd.LockingService" />
<xsd:import schemaLocation="http://localhost:11651/LockingService.svc?xsd=xsd3" 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_GetLocks_InputMessage">
<wsdl:part name="parameters" element="tns:GetLocks" />
</wsdl:message>
<wsdl:message name="IService_GetLocks_OutputMessage">
<wsdl:part name="parameters" element="tns:GetLocksResponse" />
</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="GetLocks">
<wsdl:input wsaw:Action="http://tempuri.org/IService/GetLocks" message="tns:IService_GetLocks_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/IService/GetLocksResponse" message="tns:IService_GetLocks_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="GetLocks">
<soap:operation soapAction="http://tempuri.org/IService/GetLocks" 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:11651/LockingService.svc" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@ -0,0 +1,10 @@
<?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:11651/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

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

View File

@ -0,0 +1,73 @@
<?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:11651/LockingService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:import schemaLocation="http://localhost:11651/LockingService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/bsmd.LockingService" />
<xs:import schemaLocation="http://localhost:11651/LockingService.svc?xsd=xsd3" 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" nillable="true" type="xs:string" />
</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="GetLocks">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="GetLocksResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/bsmd.LockingService" minOccurs="0" name="GetLocksResult" nillable="true" type="q3:ArrayOfCoreLock" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LockRefresh">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="currentLocks" nillable="true" type="q4: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

@ -0,0 +1,42 @@
<?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

@ -0,0 +1,179 @@
//------------------------------------------------------------------------------
// <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 {
using System.Runtime.Serialization;
using System;
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="CoreLock", Namespace="http://schemas.datacontract.org/2004/07/bsmd.LockingService")]
[System.SerializableAttribute()]
public partial class CoreLock : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private System.Guid CoreIdField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string UserIdField;
[global::System.ComponentModel.BrowsableAttribute(false)]
public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
get {
return this.extensionDataField;
}
set {
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Guid CoreId {
get {
return this.CoreIdField;
}
set {
if ((this.CoreIdField.Equals(value) != true)) {
this.CoreIdField = value;
this.RaisePropertyChanged("CoreId");
}
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string UserId {
get {
return this.UserIdField;
}
set {
if ((object.ReferenceEquals(this.UserIdField, value) != true)) {
this.UserIdField = value;
this.RaisePropertyChanged("UserId");
}
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
[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")]
string 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<string> 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/GetLocks", ReplyAction="http://tempuri.org/IService/GetLocksResponse")]
ENI2.LockingServiceReference.CoreLock[] GetLocks();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/GetLocks", ReplyAction="http://tempuri.org/IService/GetLocksResponse")]
System.Threading.Tasks.Task<ENI2.LockingServiceReference.CoreLock[]> GetLocksAsync();
[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 string Lock(System.Guid messageCoreId, string userId) {
return base.Channel.Lock(messageCoreId, userId);
}
public System.Threading.Tasks.Task<string> 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 ENI2.LockingServiceReference.CoreLock[] GetLocks() {
return base.Channel.GetLocks();
}
public System.Threading.Tasks.Task<ENI2.LockingServiceReference.CoreLock[]> GetLocksAsync() {
return base.Channel.GetLocksAsync();
}
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

@ -0,0 +1,36 @@
<?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="b19c5ddd-590b-49bf-9fd1-3dc8e2139cdd" 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:11651/LockingService.svc" Protocol="http" SourceId="1" />
</MetadataSources>
<Metadata>
<MetadataFile FileName="LockingService.xsd" MetadataType="Schema" ID="3ba08743-d6c6-4563-81e7-f73063acb297" SourceId="1" SourceUrl="http://localhost:11651/LockingService.svc?xsd=xsd3" />
<MetadataFile FileName="LockingService1.xsd" MetadataType="Schema" ID="64e34500-aef8-4a8d-8dce-f121e7b49678" SourceId="1" SourceUrl="http://localhost:11651/LockingService.svc?xsd=xsd2" />
<MetadataFile FileName="LockingService.disco" MetadataType="Disco" ID="9072a08d-2b16-466a-bffb-8d364979af29" SourceId="1" SourceUrl="http://localhost:11651/LockingService.svc?disco" />
<MetadataFile FileName="LockingService2.xsd" MetadataType="Schema" ID="cf68408c-3af2-4b49-9479-3736fe6267e4" SourceId="1" SourceUrl="http://localhost:11651/LockingService.svc?xsd=xsd0" />
<MetadataFile FileName="LockingService3.xsd" MetadataType="Schema" ID="1427e96d-cc8c-4795-8aa7-eff57056488f" SourceId="1" SourceUrl="http://localhost:11651/LockingService.svc?xsd=xsd1" />
<MetadataFile FileName="LockingService.wsdl" MetadataType="Wsdl" ID="3722e992-d258-4711-a1c8-d9aabcf38c7c" SourceId="1" SourceUrl="http://localhost:11651/LockingService.svc?wsdl" />
</Metadata>
<Extensions>
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
<ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
</Extensions>
</ReferenceGroup>

View File

@ -0,0 +1,10 @@
<?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:11651/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:11651/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

@ -0,0 +1,201 @@
<?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="nFlIlcEh26pBz74nswees1kVjCQ=">
<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:11651/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:11651/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>

View File

@ -0,0 +1,18 @@
<Window x:Class="ENI2.SplashScreenWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ENI2"
mc:Ignorable="d"
Title="SplashScreenWindow" Height="300" Width="300" WindowStyle="None" WindowStartupLocation="CenterScreen"
Background="White" AllowsTransparency="True" ResizeMode="NoResize">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="22" />
</Grid.RowDefinitions>
<Image Source="Resources/logo_transparent_babyblau.png"/>
<Label Name="labelStartupInfo" Grid.Row="1" Content="ENI-2" HorizontalContentAlignment="Center" Background="White" FontSize="11" VerticalContentAlignment="Center" />
</Grid>
</Window>

View File

@ -0,0 +1,34 @@
// Copyright (c) 2017 schick Informatik
// Description: Startbild mit Ladeinformationen
//
using System;
using System.Windows;
namespace ENI2
{
/// <summary>
/// Interaction logic for SplashScreenWindow.xaml
/// </summary>
public partial class SplashScreenWindow : Window
{
public SplashScreenWindow()
{
InitializeComponent();
}
public void ShowMessage(string message)
{
Dispatcher.Invoke((Action)delegate ()
{
this.labelStartupInfo.Content = message;
});
}
public void LoadComplete()
{
Dispatcher.InvokeShutdown();
}
}
}

View File

@ -1,20 +1,13 @@
// Copyright (c) 2017 Informatibüro Daniel Schick // Copyright (c) 2017 Informatibüro Daniel Schick
// Description: Haupteinstiegsmaske ENI-2: Suche
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Xceed.Wpf.Toolkit;
using bsmd.database; using bsmd.database;
@ -87,6 +80,23 @@ namespace ENI2
// suche auslösen // suche auslösen
this.anmeldungen = DBManager.Instance.GetMessageCoresWithFilters(filterDict); this.anmeldungen = DBManager.Instance.GetMessageCoresWithFilters(filterDict);
if (App.UserId.HasValue)
{
// "locks" dazu abfragen
LockingServiceReference.CoreLock[] coreLocks = App.LockingServiceClient.GetLocks();
Dictionary<Guid, bool?> coreLockUpdateDict = new Dictionary<Guid, bool?>();
for (int i = 0; i < coreLocks.Length; i++)
{
bool lockState = coreLocks[i].UserId.Equals(App.UserId.Value);
coreLockUpdateDict[coreLocks[i].CoreId] = lockState;
}
foreach (MessageCore core in this.anmeldungen)
if (coreLockUpdateDict.ContainsKey(core.Id.Value))
core.Locked = coreLockUpdateDict[core.Id.Value];
}
// ergebnis anzeigen // ergebnis anzeigen
this.dataGrid.ItemsSource = this.anmeldungen; this.dataGrid.ItemsSource = this.anmeldungen;
this.searchResultLabel.Content = (this.anmeldungen.Count > 0) ? string.Format("{0} results found.", this.anmeldungen.Count) : "no results"; this.searchResultLabel.Content = (this.anmeldungen.Count > 0) ? string.Format("{0} results found.", this.anmeldungen.Count) : "no results";

Binary file not shown.

View File

@ -34,8 +34,8 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="log4net, Version=2.0.7.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> <Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.7\lib\net45-full\log4net.dll</HintPath> <HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL"> <Reference Include="Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
@ -48,8 +48,8 @@
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration.Install" /> <Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.104.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL"> <Reference Include="System.Data.SQLite, Version=1.0.105.1, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.104.0\lib\net45\System.Data.SQLite.dll</HintPath> <HintPath>..\packages\System.Data.SQLite.Core.1.0.105.1\lib\net45\System.Data.SQLite.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
@ -132,12 +132,12 @@
<WCFMetadata Include="Service References\" /> <WCFMetadata Include="Service References\" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.104.0\build\net45\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.104.0\build\net45\System.Data.SQLite.Core.targets')" /> <Import Project="..\packages\System.Data.SQLite.Core.1.0.105.1\build\net45\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.105.1\build\net45\System.Data.SQLite.Core.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.104.0\build\net45\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.104.0\build\net45\System.Data.SQLite.Core.targets'))" /> <Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.105.1\build\net45\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.105.1\build\net45\System.Data.SQLite.Core.targets'))" />
</Target> </Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="log4net" version="2.0.7" targetFramework="net45" /> <package id="log4net" version="2.0.8" targetFramework="net45" />
<package id="OpenPop.NET" version="2.0.6.1120" targetFramework="net45" /> <package id="OpenPop.NET" version="2.0.6.1120" targetFramework="net45" />
<package id="System.Data.SQLite.Core" version="1.0.104.0" targetFramework="net45" /> <package id="System.Data.SQLite.Core" version="1.0.105.1" targetFramework="net45" />
</packages> </packages>

View File

@ -10,7 +10,7 @@ namespace bsmd.LockingService
public class CoreLock public class CoreLock
{ {
private Guid _coreId; private Guid _coreId;
private string _userId; private Guid _userId;
[DataMember] [DataMember]
public Guid CoreId public Guid CoreId
@ -20,7 +20,7 @@ namespace bsmd.LockingService
} }
[DataMember] [DataMember]
public string UserId public Guid UserId
{ {
get { return this._userId; } get { return this._userId; }
set { this._userId = value; } set { this._userId = value; }

View File

@ -20,7 +20,7 @@ namespace bsmd.LockingService
[OperationContract] [OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
string Lock(Guid messageCoreId, string userId); Guid Lock(Guid messageCoreId, Guid userId);
/// <summary> /// <summary>
@ -28,7 +28,7 @@ namespace bsmd.LockingService
/// </summary> /// </summary>
[OperationContract] [OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
void Unlock(Guid messageCoreId, string userId); void Unlock(Guid messageCoreId, Guid userId);
/// <summary> /// <summary>
/// Get all locks currently in use (for search result..) /// Get all locks currently in use (for search result..)
@ -43,14 +43,14 @@ namespace bsmd.LockingService
/// <param name="currentLocks">currently held locks</param> /// <param name="currentLocks">currently held locks</param>
[OperationContract] [OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
void LockRefresh(List<Guid> currentLocks, string userId); void LockRefresh(List<Guid> currentLocks, Guid userId);
/// <summary> /// <summary>
/// send a log message (convenience helper) /// send a log message (convenience helper)
/// </summary> /// </summary>
[OperationContract] [OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
void Log(string msg, string host, string userId); void Log(string msg, string host, Guid userId);
} }

View File

@ -44,10 +44,9 @@ namespace bsmd.LockingService
#region Implementation IService #region Implementation IService
public string Lock(Guid messageCoreId, string userId) public Guid Lock(Guid messageCoreId, Guid userId)
{ {
if (userId.IsNullOrEmpty()) return "request error"; Guid result = Guid.Empty;
string result = "";
lock (lockDict) lock (lockDict)
{ {
@ -77,9 +76,8 @@ namespace bsmd.LockingService
} }
public void Unlock(Guid messageCoreId, string userId) public void Unlock(Guid messageCoreId, Guid userId)
{ {
if (userId.IsNullOrEmpty()) return;
lock(lockDict) lock(lockDict)
{ {
if(lockDict.ContainsKey(messageCoreId)) if(lockDict.ContainsKey(messageCoreId))
@ -90,14 +88,14 @@ namespace bsmd.LockingService
} }
} }
public void LockRefresh(List<Guid> currentLocks, string userId) public void LockRefresh(List<Guid> currentLocks, Guid userId)
{ {
foreach (Guid messageCoreId in currentLocks) foreach (Guid messageCoreId in currentLocks)
this.Lock(messageCoreId, userId); this.Lock(messageCoreId, userId);
} }
public void Log(string msg, string host, string userId) public void Log(string msg, string host, Guid userId)
{ {
log.Info(string.Format("{0} {1}:{2}", host, userId, msg)); log.Info(string.Format("{0} {1}:{2}", host, userId, msg));
} }
@ -105,12 +103,15 @@ namespace bsmd.LockingService
public List<CoreLock> GetLocks() public List<CoreLock> GetLocks()
{ {
List<CoreLock> result = new List<CoreLock>(); List<CoreLock> result = new List<CoreLock>();
foreach (Guid messageCoreId in lockDict.Keys) lock (lockDict)
{ {
CoreLock coreLock = new CoreLock(); foreach (Guid messageCoreId in lockDict.Keys)
coreLock.CoreId = messageCoreId; {
coreLock.UserId = lockDict[messageCoreId].userId; CoreLock coreLock = new CoreLock();
result.Add(coreLock); coreLock.CoreId = messageCoreId;
coreLock.UserId = lockDict[messageCoreId].userId;
result.Add(coreLock);
}
} }
return result; return result;
} }
@ -122,7 +123,7 @@ namespace bsmd.LockingService
internal class LockEntry internal class LockEntry
{ {
public DateTime lockAquired = DateTime.Now; public DateTime lockAquired = DateTime.Now;
public string userId = string.Empty; public Guid userId;
} }
#endregion #endregion

View File

@ -129,6 +129,7 @@ namespace bsmd.database
{ {
DBManager.Instance.Delete(poi); DBManager.Instance.Delete(poi);
} }
this.PortOfItineraries.Clear();
} }
#endregion #endregion

View File

@ -302,14 +302,23 @@ namespace bsmd.database
{ {
foreach (IMDGPosition imdg in this.IMDGPositions) foreach (IMDGPosition imdg in this.IMDGPositions)
DBManager.Instance.Delete(imdg); DBManager.Instance.Delete(imdg);
this.IMDGPositions.Clear();
foreach (IMSBCPosition imsbc in this.IMSBCPositions) foreach (IMSBCPosition imsbc in this.IMSBCPositions)
DBManager.Instance.Delete(imsbc); DBManager.Instance.Delete(imsbc);
this.IMSBCPositions.Clear();
foreach (IBCPosition ibc in this.IBCPositions) foreach (IBCPosition ibc in this.IBCPositions)
DBManager.Instance.Delete(ibc); DBManager.Instance.Delete(ibc);
this.IBCPositions.Clear();
foreach (IGCPosition igc in this.IGCPositions) foreach (IGCPosition igc in this.IGCPositions)
DBManager.Instance.Delete(igc); DBManager.Instance.Delete(igc);
this.IBCPositions.Clear();
foreach (MARPOL_Annex_I_Position marpol in this.MARPOLPositions) foreach (MARPOL_Annex_I_Position marpol in this.MARPOLPositions)
DBManager.Instance.Delete(marpol); DBManager.Instance.Delete(marpol);
this.MARPOLPositions.Clear();
} }
#endregion #endregion

View File

@ -326,23 +326,26 @@ namespace bsmd.database
{ {
((ISublistContainer)poc30d).DeleteElements(); ((ISublistContainer)poc30d).DeleteElements();
DBManager.Instance.Delete(poc30d); DBManager.Instance.Delete(poc30d);
} }
this.PortOfCallLast30Days.Clear();
foreach (SanitaryMeasuresDetail smd in this.SanitaryMeasuresDetails) foreach (SanitaryMeasuresDetail smd in this.SanitaryMeasuresDetails)
{ {
DBManager.Instance.Delete(smd); DBManager.Instance.Delete(smd);
} }
this.sanitaryMeasuresDetails.Clear();
foreach (StowawaysJoiningLocation sjl in this.stowawaysJoiningLocations) foreach (StowawaysJoiningLocation sjl in this.stowawaysJoiningLocations)
{ {
DBManager.Instance.Delete(sjl); DBManager.Instance.Delete(sjl);
} }
this.StowawaysJoiningLocations.Clear();
foreach (InfectedArea ia in this.InfectedAreas) foreach (InfectedArea ia in this.InfectedAreas)
{ {
DBManager.Instance.Delete(ia); DBManager.Instance.Delete(ia);
} }
this.InfectedAreas.Clear();
} }
public SanitaryMeasuresDetail GetSanitaryMeasuresDetailWithIdentifier(string identifier) public SanitaryMeasuresDetail GetSanitaryMeasuresDetailWithIdentifier(string identifier)

View File

@ -286,12 +286,16 @@ namespace bsmd.database
/// </summary> /// </summary>
public int ENINotificationDetailIndex { get; set; } public int ENINotificationDetailIndex { get; set; }
/// <summary> /// <summary>
/// Hilfsproperty zum Speichern des Icon-Pfads in ENI-2 /// Hilfsproperty zum Speichern des Icon-Pfads in ENI-2
/// </summary> /// </summary>
public string ENINotificationIconString { get; set; } public string ENINotificationIconString { get; set; }
/// <summary>
/// Flag zeigt an ob die Meldeklasse (oder ein untergeordnetes Objekt) geändert wurde
/// </summary>
public bool IsDirty { get; set; }
#endregion #endregion
#region IDatabaseEntity implementation #region IDatabaseEntity implementation
@ -526,6 +530,7 @@ namespace bsmd.database
} }
DBManager.Instance.Delete(dbEntity); DBManager.Instance.Delete(dbEntity);
} }
this.Elements.Clear();
} }
#endregion #endregion

View File

@ -184,9 +184,10 @@ namespace bsmd.database
public string TicketNo { get; set; } public string TicketNo { get; set; }
/// <summary> /// <summary>
/// Property um in ENI-2 den "gelockten" Zustand zu speichern (wird nicht persistiert) /// Property um in ENI-2 den "gelockten" Zustand zu speichern (wird nicht persistiert), "threeway":
/// null: nicht in Verwendung, true: vom Anwender gelockt, false: von jmd. anderem gelocked
/// </summary> /// </summary>
public bool Locked { get; set; } public bool? Locked { get; set; }
#region Felder um NSW Statusinformationen zu speichern (abgefragte Daten!) #region Felder um NSW Statusinformationen zu speichern (abgefragte Daten!)
@ -533,6 +534,22 @@ namespace bsmd.database
return result; return result;
} }
/// <summary>
/// Definition: Eine Liste von Meldeklassen enthält dann Daten, wenn für irgendeine Meldeklasse außer
/// VISIT/TRANSIT ein Element vorhanden ist
/// </summary>
public static bool HasMessageData(List<Message> messages)
{
foreach(Message message in messages)
{
if ((message.MessageNotificationClass != Message.NotificationClass.VISIT) &&
(message.MessageNotificationClass != Message.NotificationClass.TRANSIT))
if (message.Elements.Count > 0)
return true;
}
return false;
}
#endregion #endregion
#region display override #region display override

View File

@ -174,6 +174,7 @@ namespace bsmd.database
{ {
DBManager.Instance.Delete(cp); DBManager.Instance.Delete(cp);
} }
this.CallPurposes.Clear();
} }
#endregion #endregion

View File

@ -144,6 +144,7 @@ namespace bsmd.database
{ {
DBManager.Instance.Delete(cjs); DBManager.Instance.Delete(cjs);
} }
this.CrewJoinedShip.Clear();
} }
#endregion #endregion

View File

@ -2,6 +2,6 @@
[assembly: AssemblyCompany("Informatikbüro Daniel Schick")] [assembly: AssemblyCompany("Informatikbüro Daniel Schick")]
[assembly: AssemblyProduct("BSMD NSW interface")] [assembly: AssemblyProduct("BSMD NSW interface")]
[assembly: AssemblyInformationalVersion("3.6.0")] [assembly: AssemblyInformationalVersion("3.6.2")]
[assembly: AssemblyCopyright("Copyright © 2014-2017 Informatikbüro Daniel Schick. All rights reserved.")] [assembly: AssemblyCopyright("Copyright © 2014-2017 Informatikbüro Daniel Schick. All rights reserved.")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]

View File

@ -1,4 +1,4 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("3.6.0.*")] [assembly: AssemblyVersion("3.6.2.*")]

View File

@ -373,9 +373,11 @@ namespace bsmd.database
{ {
foreach (LastTenPortFacilitiesCalled l10c in this.LastTenPortFacilitesCalled) foreach (LastTenPortFacilitiesCalled l10c in this.LastTenPortFacilitesCalled)
DBManager.Instance.Delete(l10c); DBManager.Instance.Delete(l10c);
this.LastTenPortFacilitesCalled.Clear();
foreach (ShipToShipActivitiesDuringLastTenPortFacilitiesCalled s2s in this.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled) foreach (ShipToShipActivitiesDuringLastTenPortFacilitiesCalled s2s in this.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled)
DBManager.Instance.Delete(s2s); DBManager.Instance.Delete(s2s);
this.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Clear();
} }

View File

@ -35,18 +35,22 @@ namespace bsmd.database
public string Identifier { get; set; } public string Identifier { get; set; }
[LookupName("STO.Name")] [LookupName("STO.Name")]
[MaxLength(255)]
public string Name { get; set; } public string Name { get; set; }
[LookupName("STO.Quantity")] [LookupName("STO.Quantity")]
public int? Quantity { get; set; } public int? Quantity { get; set; }
[LookupName("STO.QuantityUnit")] [LookupName("STO.QuantityUnit")]
[MaxLength(16)]
public string QuantityUnit { get; set; } public string QuantityUnit { get; set; }
[LookupName("STO.LocationOnBoard")] [LookupName("STO.LocationOnBoard")]
[MaxLength(64)]
public string LocationOnBoard { get; set; } public string LocationOnBoard { get; set; }
[LookupName("STO.OfficialUse")] [LookupName("STO.OfficialUse")]
[MaxLength(16)]
public string OfficialUse { get; set; } public string OfficialUse { get; set; }
#endregion #endregion

View File

@ -179,11 +179,13 @@ namespace bsmd.database
{ {
DBManager.Instance.Delete(waste); DBManager.Instance.Delete(waste);
} }
this.Waste.Clear();
foreach (WasteDisposalServiceProvider wdsp in this.WasteDisposalServiceProvider) foreach (WasteDisposalServiceProvider wdsp in this.WasteDisposalServiceProvider)
{ {
DBManager.Instance.Delete(wdsp); DBManager.Instance.Delete(wdsp);
} }
this.WasteDisposalServiceProvider.Clear();
} }
#endregion #endregion

View File

@ -39,8 +39,8 @@
<AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="log4net, Version=2.0.7.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> <Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.7\lib\net45-full\log4net.dll</HintPath> <HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenPop, Version=2.0.6.1120, Culture=neutral, PublicKeyToken=6bdb97f144b7efc8, processorArchitecture=MSIL"> <Reference Include="OpenPop, Version=2.0.6.1120, Culture=neutral, PublicKeyToken=6bdb97f144b7efc8, processorArchitecture=MSIL">

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="log4net" version="2.0.7" targetFramework="net45" /> <package id="log4net" version="2.0.8" targetFramework="net45" />
<package id="OpenPop.NET" version="2.0.6.1120" targetFramework="net45" /> <package id="OpenPop.NET" version="2.0.6.1120" targetFramework="net45" />
</packages> </packages>