neue ENI2 Version, mit Locode Control und Grid RootControls etc pp
This commit is contained in:
parent
bfaba32698
commit
2490a78dca
122
ENI-2/ENI2/ENI2/Controls/ENIDataGrid.cs
Normal file
122
ENI-2/ENI2/ENI2/Controls/ENIDataGrid.cs
Normal file
@ -0,0 +1,122 @@
|
||||
// Copyright (c) 2017 schick Informatik
|
||||
// Description: DataGrid mit etwas "verbesserten" Funktionen
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
using bsmd.database;
|
||||
|
||||
|
||||
namespace ENI2.Controls
|
||||
{
|
||||
/// <summary>
|
||||
/// Follow steps 1a or 1b and then 2 to use this custom control in a XAML file.
|
||||
///
|
||||
/// Step 1a) Using this custom control in a XAML file that exists in the current project.
|
||||
/// Add this XmlNamespace attribute to the root element of the markup file where it is
|
||||
/// to be used:
|
||||
///
|
||||
/// xmlns:enictrl="clr-namespace:ENI2.Controls"
|
||||
///
|
||||
///
|
||||
/// Step 1b) Using this custom control in a XAML file that exists in a different project.
|
||||
/// Add this XmlNamespace attribute to the root element of the markup file where it is
|
||||
/// to be used:
|
||||
///
|
||||
/// xmlns:enictrl="clr-namespace:ENI2.Controls;assembly=ENI2.Controls"
|
||||
///
|
||||
/// You will also need to add a project reference from the project where the XAML file lives
|
||||
/// to this project and Rebuild to avoid compilation errors:
|
||||
///
|
||||
/// Right click on the target project in the Solution Explorer and
|
||||
/// "Add Reference"->"Projects"->[Browse to and select this project]
|
||||
///
|
||||
///
|
||||
/// Step 2)
|
||||
/// Go ahead and use your control in the XAML file.
|
||||
///
|
||||
/// <MyNamespace:ENIDataGrid/>
|
||||
///
|
||||
/// </summary>
|
||||
public class ENIDataGrid : DataGrid
|
||||
{
|
||||
/*
|
||||
static ENIDataGrid()
|
||||
{
|
||||
DefaultStyleKeyProperty.OverrideMetadata(typeof(ENIDataGrid), new FrameworkPropertyMetadata(typeof(ENIDataGrid)));
|
||||
}
|
||||
*/
|
||||
|
||||
public event Action<DatabaseEntity> EditRequested;
|
||||
public event Action<DatabaseEntity> DeleteRequested;
|
||||
public event Action CreateRequested;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
this.ContextMenu = new ContextMenu();
|
||||
|
||||
MenuItem addItem = new MenuItem();
|
||||
addItem.Header = "_Add";
|
||||
addItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/add.png")) };
|
||||
addItem.Click += new RoutedEventHandler(this.addItem);
|
||||
this.ContextMenu.Items.Add(addItem);
|
||||
|
||||
MenuItem deleteItem = new MenuItem();
|
||||
deleteItem.Header = "_Delete";
|
||||
deleteItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/delete.png")) };
|
||||
deleteItem.Click += this.deleteItem;
|
||||
this.ContextMenu.Items.Add(deleteItem);
|
||||
|
||||
MenuItem editItem = new MenuItem();
|
||||
editItem.Header = "_Edit";
|
||||
editItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/edit.png")) };
|
||||
editItem.Click += this.editItem;
|
||||
this.ContextMenu.Items.Add(editItem);
|
||||
|
||||
}
|
||||
|
||||
protected void addItem(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.CreateRequested?.Invoke();
|
||||
}
|
||||
|
||||
protected void deleteItem(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if((this.SelectedItems != null) && (this.SelectedItems.Count > 0))
|
||||
{
|
||||
// TODO: ask confirmation message box
|
||||
|
||||
foreach(object deleteItem in this.SelectedItems)
|
||||
{
|
||||
if (deleteItem is DatabaseEntity) {
|
||||
this.DeleteRequested?.Invoke(deleteItem as DatabaseEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void editItem(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if((this.SelectedItems != null) && (this.SelectedItems.Count == 1))
|
||||
{
|
||||
DatabaseEntity selectedEntity = this.SelectedItems[0] as DatabaseEntity;
|
||||
if (selectedEntity != null)
|
||||
this.EditRequested?.Invoke(selectedEntity);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
22
ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml
Normal file
22
ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml
Normal file
@ -0,0 +1,22 @@
|
||||
<UserControl x:Class="ENI2.Controls.LocodeControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:ENI2.Controls"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="30" d:DesignWidth="300">
|
||||
|
||||
<Grid Grid.Column="1" Grid.Row="0" Width="Auto">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<xctk:WatermarkComboBox Grid.Column="0" x:Name="comboBoxLocode" Margin="2" IsEditable="True" Watermark="Type for Locode.."
|
||||
TextBoxBase.TextChanged="ComboBox_TextChanged" SelectionChanged="comboBoxLocode_SelectionChanged"/> <!-- ItemsSource="{Binding LocodeList, Mode=TwoWay}"
|
||||
SelectedItem="{Binding LocodeValue}" /> -->
|
||||
<!--, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:LocodeControl}}-->
|
||||
<Image Name="imageLocodeState" Grid.Column="1" Source="../Resources/bullet_ball_grey.png" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
158
ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml.cs
Normal file
158
ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml.cs
Normal file
@ -0,0 +1,158 @@
|
||||
// Copyright (c) 2017 schick Informatik
|
||||
// Description: Kapselt den Locode - Lookup
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
using bsmd.database;
|
||||
using bsmd.ExcelReadService;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace ENI2.Controls
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for LocodeControl.xaml
|
||||
/// </summary>
|
||||
public partial class LocodeControl : UserControl, INotifyPropertyChanged
|
||||
{
|
||||
private List<string> _locodeList = new List<string>();
|
||||
// private string _selectedLocode;
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public LocodeControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected enum LocodeState
|
||||
{
|
||||
UNKNOWN,
|
||||
INVALID,
|
||||
OK,
|
||||
AMBIGUOUS
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// used internally to load up drop down
|
||||
/// </summary>
|
||||
public List<string> LocodeList
|
||||
{
|
||||
get { return this._locodeList; }
|
||||
set { this._locodeList = value; }
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty LocodeValueProperty = DependencyProperty.Register("LocodeValue", typeof(string), typeof(LocodeControl),
|
||||
new UIPropertyMetadata(LocodeValueChangedHandler));
|
||||
//new FrameworkPropertyMetadata(default(string), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
|
||||
|
||||
|
||||
public static void LocodeValueChangedHandler(DependencyObject sender, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
// Get instance of current control from sender
|
||||
// and property value from e.NewValue
|
||||
|
||||
// Set public property on TaregtCatalogControl, e.g.
|
||||
if(e.NewValue != null)
|
||||
((LocodeControl)sender).SelectedItem = e.NewValue.ToString();
|
||||
}
|
||||
|
||||
|
||||
public string SelectedItem
|
||||
{
|
||||
get { return this.comboBoxLocode.SelectedItem as string; }
|
||||
set {
|
||||
this._locodeList.Clear();
|
||||
this._locodeList.Add(value);
|
||||
this.comboBoxLocode.ItemsSource = this.LocodeList;
|
||||
LocodeState locodeState = LocodeDB.PortNameFromLocode(value).IsNullOrEmpty() ? LocodeState.INVALID : LocodeState.OK;
|
||||
this.SetLocodeStateImage(this.imageLocodeState, locodeState);
|
||||
this.comboBoxLocode.SelectedItem = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Actual value for DataBinding
|
||||
/// </summary>
|
||||
public string LocodeValue
|
||||
{
|
||||
get { return (string)GetValue(LocodeValueProperty); }
|
||||
set { SetValue(LocodeValueProperty, value); }
|
||||
}
|
||||
|
||||
#region event handler
|
||||
|
||||
private void ComboBox_TextChanged(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.comboBoxLocode.Text.Length > 3)
|
||||
{
|
||||
// check if actual locode
|
||||
bool isLocode = !LocodeDB.PortNameFromLocode(this.comboBoxLocode.Text).IsNullOrEmpty();
|
||||
if (isLocode)
|
||||
{
|
||||
this.SetLocodeStateImage(this.imageLocodeState, LocodeState.OK);
|
||||
return;
|
||||
}
|
||||
|
||||
// assume this is a harbour name typed out..
|
||||
this.LocodeList = LocodeDB.AllLocodesForCityName(this.comboBoxLocode.Text + "%");
|
||||
|
||||
if (this.LocodeList.Count == 1)
|
||||
{
|
||||
this.comboBoxLocode.SelectedItem = this.LocodeList[0];
|
||||
this.SetLocodeStateImage(this.imageLocodeState, LocodeState.OK);
|
||||
}
|
||||
else if (this.LocodeList.Count == 0)
|
||||
{
|
||||
this.SetLocodeStateImage(this.imageLocodeState, LocodeState.INVALID);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.SetLocodeStateImage(this.imageLocodeState, LocodeState.AMBIGUOUS);
|
||||
}
|
||||
|
||||
this.comboBoxLocode.ItemsSource = this.LocodeList;
|
||||
|
||||
}
|
||||
|
||||
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("LocodeList"));
|
||||
}
|
||||
|
||||
private void comboBoxLocode_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
this.LocodeValue = this.SelectedItem;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region private/protected methods
|
||||
|
||||
protected void SetLocodeStateImage(Image stateImage, LocodeState state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case LocodeState.AMBIGUOUS:
|
||||
stateImage.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/bullet_ball_yellow.png"));
|
||||
break;
|
||||
case LocodeState.INVALID:
|
||||
stateImage.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/bullet_ball_red.png"));
|
||||
break;
|
||||
case LocodeState.OK:
|
||||
stateImage.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/bullet_ball_green.png"));
|
||||
break;
|
||||
case LocodeState.UNKNOWN:
|
||||
default:
|
||||
stateImage.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/bullet_ball_grey.png"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@ -17,6 +17,8 @@ namespace ENI2
|
||||
public class DetailBaseControl : UserControl
|
||||
{
|
||||
|
||||
protected bool _initialized = false;
|
||||
|
||||
protected enum LocodeState
|
||||
{
|
||||
UNKNOWN,
|
||||
|
||||
@ -32,7 +32,6 @@
|
||||
<xctk:WatermarkComboBox Grid.Column="0" x:Name="comboBoxPoC" Margin="2" IsEditable="True" Watermark="Type for Locode.." TextBoxBase.TextChanged="ComboBox_TextChanged" ItemsSource="{Binding LocodePoCList, Mode=TwoWay}" SelectedItem="{Binding PoC, Mode=TwoWay}" />
|
||||
<Image Name="imagePoCState" Grid.Column="1" Source="../Resources/bullet_ball_grey.png" />
|
||||
</Grid>
|
||||
<!--TextBox Name="textBoxPoC" Grid.Row="0" Grid.Column="1" IsReadOnly="True" Text="{Binding PoC}" Margin="2"/-->
|
||||
<Label Grid.Row="0" Grid.Column="2" Content="Visit/Transit-ID" />
|
||||
<TextBox Name="textBoxDisplayId" Grid.Row="0" Grid.Column="3" IsReadOnly="True" Margin="2"/>
|
||||
<Label Grid.Row="1" Grid.Column="0" Content="IMO-Nummer" />
|
||||
@ -43,8 +42,8 @@
|
||||
<Label Grid.Row="2" Grid.Column="2" Content="ETD PoC" />
|
||||
<Label Grid.Row="3" Grid.Column="0" Content="ATA PoC" />
|
||||
<Label Grid.Row="3" Grid.Column="2" Content="ATD PoC" />
|
||||
<xctk:DateTimePicker Grid.Column="1" Grid.Row="2" Value="{Binding ETA, Mode=TwoWay}" Name="dateTimePickerETA" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="2" Name="dateTimePickerETD" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Column="1" Grid.Row="2" Value="{Binding ETA, Mode=TwoWay}" Name="dateTimePickerETA" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2" AllowTextInput="False"/>
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="2" Name="dateTimePickerETD" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2" AllowTextInput="False"/>
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
@ -30,7 +30,6 @@ namespace ENI2.DetailViewControls
|
||||
{
|
||||
private Message _message = null;
|
||||
private List<string> _locodePoCList = new List<string>();
|
||||
private bool _initialized = false;
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
@ -66,7 +65,7 @@ namespace ENI2.DetailViewControls
|
||||
if (!this.Core.PoC.IsNullOrEmpty())
|
||||
{
|
||||
this._locodePoCList.Add(this.Core.PoC);
|
||||
LocodeState locodeState = LocodeDB.PortNameFromLocode(this.Core.PoC).IsNullOrEmpty() ? LocodeState.INVALID : LocodeState.OK;
|
||||
// LocodeState locodeState = LocodeDB.PortNameFromLocode(this.Core.PoC).IsNullOrEmpty() ? LocodeState.INVALID : LocodeState.OK;
|
||||
}
|
||||
|
||||
Binding vtBinding = new Binding();
|
||||
|
||||
@ -5,9 +5,105 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:ENI2.DetailViewControls"
|
||||
xmlns:enictrl="clr-namespace:ENI2.Controls"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
d:DesignHeight="600" d:DesignWidth="800">
|
||||
<GroupBox Name="portCallGroupBox" Header="Port Call">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="280" />
|
||||
<RowDefinition Height="250" />
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Name="noaNodGroupBox" Header="Arrival/Departure" Margin="5, 20, 5, 0">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Row="0" Grid.Column="0" Content="ETA port of call" Name="label_ETAToPortOfCall"/>
|
||||
<Label Grid.Row="0" Grid.Column="2" Content="ETD port of call" Name="label_ETDFromPortOfCall"/>
|
||||
<Label Grid.Row="1" Grid.Column="0" Content="ETA Kiel Canal" Name="label_ETAToKielCanal"/>
|
||||
<Label Grid.Row="1" Grid.Column="2" Content="ETD Kiel Canal" Name="label_ETDFromKielCanal"/>
|
||||
<Label Grid.Row="2" Grid.Column="0" Content="Last port" Name="label_LastPort"/>
|
||||
<Label Grid.Row="3" Grid.Column="0" Content="Next port" Name="label_NextPort"/>
|
||||
<Label Grid.Row="2" Grid.Column="2" Content="ETD last port" Name="label_ETDFromLastport" />
|
||||
<Label Grid.Row="3" Grid.Column="2" Content="ETA next port" Name="label_ETAToNextPort" />
|
||||
<Label Grid.Row="4" Grid.Column="0" Content="Anchored" Name="label_IsAnchored" />
|
||||
<xctk:DateTimePicker Grid.Column="1" Grid.Row="0" Value="{Binding ETAToPortOfCall, Mode=TwoWay}" Name="dateTimePicker_ETAToPortOfCall" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="0" Value="{Binding ETDFromPortOfCall, Mode=TwoWay}" Name="dateTimePicker_ETDFromPortOfCall" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Column="1" Grid.Row="1" Value="{Binding ETAToKielCanal, Mode=TwoWay}" Name="dateTimePicker_ETAToKielCanal" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="1" Value="{Binding ETDFromKielCanal, Mode=TwoWay}" Name="dateTimePicker_ETDFromKielCanal" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="3" Value="{Binding ETAToNextPort, Mode=TwoWay}" Name="dateTimePicker_ETAToNextPort" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="2" Value="{Binding ETDFromLastPort, Mode=TwoWay}" Name="dateTimePicker_ETDFromLastPort" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2"/>
|
||||
|
||||
<enictrl:LocodeControl Grid.Column="1" Grid.Row="2" Width="Auto" x:Name="locodeControl_LastPort" LocodeValue="{Binding LastPort, Mode=TwoWay}"/>
|
||||
<enictrl:LocodeControl Grid.Column="1" Grid.Row="3" Width="Auto" x:Name="locodeControl_NextPort" LocodeValue="{Binding NextPort, Mode=TwoWay}"/>
|
||||
|
||||
<CheckBox Grid.Column="1" Grid.Row="4" IsThreeState="True" VerticalContentAlignment="Center" Name="checkBox_IsAnchored" IsChecked="{Binding IsAnchored}"/>
|
||||
<GroupBox Grid.Row="5" Grid.ColumnSpan="4" Name="groupBoxCallPurpose" Header="Call Purposes" >
|
||||
<enictrl:ENIDataGrid x:Name="dataGridCallPurposes" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
|
||||
SelectionMode="Single" AutoGenerateColumns="False" Margin="0,5,0,0">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Code" Binding="{Binding CallPurposeCode}" IsReadOnly="True" />
|
||||
<DataGridTextColumn Header="Description" Binding="{Binding CallPurposeDescription}" IsReadOnly="True" />
|
||||
</DataGrid.Columns>
|
||||
</enictrl:ENIDataGrid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<GroupBox Name="agentGroupBox" Header="Agent" Grid.Row="1" Margin="5, 20, 5, 0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="10" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="0" Content="Company name " Name="label_AgentCompanyName"/>
|
||||
<Label Grid.Row="1" Grid.Column="0" Content="Street / number" Name="label_AgentStreetAndNumber"/>
|
||||
<Label Grid.Row="2" Grid.Column="0" Content="Postalcode" Name="label_AgentPostalCode"/>
|
||||
<Label Grid.Row="5" Grid.Column="0" Content="Last name" Name="label_AgentLastName"/>
|
||||
<Label Grid.Row="6" Grid.Column="0" Content="Phone" Name="label_AgentPhone" />
|
||||
<Label Grid.Row="7" Grid.Column="0" Content="E-Mail" Name="label_AgentEMail" />
|
||||
<Label Grid.Row="2" Grid.Column="2" Content="City" Name="label_AgentCity" />
|
||||
<Label Grid.Row="5" Grid.Column="2" Content="First name" Name="label_AgentFirstName"/>
|
||||
<Label Grid.Row="6" Grid.Column="2" Content="Fax" Name="label_AgentFax"/>
|
||||
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Name="textBox_AgentCompanyName" MaxLength="100" Margin="2" Text="{Binding AgentCompanyName}"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1" Name="textBox_AgentStreetAndNumber" MaxLength="100" Margin="2" Text="{Binding AgentStreetAndNumber}" />
|
||||
<TextBox Grid.Row="2" Grid.Column="1" Name="textBox_AgentPostalCode" MaxLength="100" Margin="2" Text="{Binding AgentPostalCode}" />
|
||||
<TextBox Grid.Row="2" Grid.Column="3" Name="textBox_AgentCity" MaxLength="100" Margin="2" Text="{Binding AgentCity}"/>
|
||||
<TextBox Grid.Row="5" Grid.Column="1" Name="textBox_AgentLastName" MaxLength="100" Margin="2" Text="{Binding AgentLastName}"/>
|
||||
<TextBox Grid.Row="6" Grid.Column="1" Name="textBox_AgentPhone" MaxLength="100" Margin="2" Text="{Binding AgentPhone}"/>
|
||||
<TextBox Grid.Row="7" Grid.Column="1" Name="textBox_AgentEMail" MaxLength="100" Margin="2" Text="{Binding AgentEMail}"/>
|
||||
<TextBox Grid.Row="5" Grid.Column="3" Name="textBox_AgentFirstName" MaxLength="100" Margin="2" Text="{Binding AgentFirstName}"/>
|
||||
<TextBox Grid.Row="6" Grid.Column="3" Name="textBox_AgentFax" MaxLength="100" Margin="2" Text="{Binding AgentFax}"/>
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</src:DetailBaseControl>
|
||||
|
||||
@ -18,6 +18,7 @@ using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
using bsmd.database;
|
||||
using bsmd.ExcelReadService;
|
||||
using ENI2;
|
||||
|
||||
namespace ENI2.DetailViewControls
|
||||
@ -27,9 +28,60 @@ namespace ENI2.DetailViewControls
|
||||
/// </summary>
|
||||
public partial class PortCallDetailControl : DetailBaseControl
|
||||
{
|
||||
private NOA_NOD _noa_nod;
|
||||
private AGNT _agnt;
|
||||
|
||||
public PortCallDetailControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
foreach (Message aMessage in this.Messages)
|
||||
{
|
||||
if (aMessage.MessageNotificationClass == Message.NotificationClass.NOA_NOD)
|
||||
{
|
||||
if (aMessage.Elements.Count > 0)
|
||||
_noa_nod = aMessage.Elements[0] as NOA_NOD;
|
||||
else
|
||||
_noa_nod = new NOA_NOD(); // TODO
|
||||
}
|
||||
|
||||
if(aMessage.MessageNotificationClass == Message.NotificationClass.AGNT)
|
||||
{
|
||||
if (aMessage.Elements.Count > 0)
|
||||
_agnt = aMessage.Elements[0] as AGNT;
|
||||
else
|
||||
_agnt = new AGNT();
|
||||
}
|
||||
}
|
||||
|
||||
this.dateTimePicker_ETAToKielCanal.IsEnabled = this.Core.IsTransit;
|
||||
this.dateTimePicker_ETDFromKielCanal.IsEnabled = this.Core.IsTransit;
|
||||
this.dateTimePicker_ETAToPortOfCall.IsEnabled = !this.Core.IsTransit;
|
||||
this.dateTimePicker_ETDFromPortOfCall.IsEnabled = !this.Core.IsTransit;
|
||||
|
||||
this.noaNodGroupBox.DataContext = _noa_nod;
|
||||
this.locodeControl_LastPort.DataContext = _noa_nod;
|
||||
this.locodeControl_NextPort.DataContext = _noa_nod;
|
||||
|
||||
this.dataGridCallPurposes.Initialize();
|
||||
this.dataGridCallPurposes.ItemsSource = _noa_nod.CallPurposes;
|
||||
|
||||
this.agentGroupBox.DataContext = _agnt;
|
||||
|
||||
this.dateTimePicker_ETAToKielCanal.DataContext = _noa_nod;
|
||||
this.dateTimePicker_ETAToNextPort.DataContext = _noa_nod;
|
||||
this.dateTimePicker_ETAToPortOfCall.DataContext = _noa_nod;
|
||||
this.dateTimePicker_ETDFromKielCanal.DataContext = _noa_nod;
|
||||
this.dateTimePicker_ETDFromLastPort.DataContext = _noa_nod;
|
||||
this.dateTimePicker_ETDFromPortOfCall.DataContext = _noa_nod;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,8 +35,8 @@
|
||||
<MinimumRequiredVersion>3.5.1.0</MinimumRequiredVersion>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>publish.html</WebPage>
|
||||
<ApplicationRevision>5</ApplicationRevision>
|
||||
<ApplicationVersion>3.5.3.%2a</ApplicationVersion>
|
||||
<ApplicationRevision>3</ApplicationRevision>
|
||||
<ApplicationVersion>3.5.6.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||
@ -157,6 +157,10 @@
|
||||
<Compile Include="..\..\..\nsw\Source\bsmd.ExcelReadService\LocodeDB.cs">
|
||||
<Link>Locode\LocodeDB.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="Controls\ENIDataGrid.cs" />
|
||||
<Compile Include="Controls\LocodeControl.xaml.cs">
|
||||
<DependentUpon>LocodeControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DetailBaseControl.cs" />
|
||||
<Compile Include="DetailRootControl.xaml.cs">
|
||||
<DependentUpon>DetailRootControl.xaml</DependentUpon>
|
||||
@ -211,6 +215,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Controls\LocodeControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="DetailRootControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@ -286,6 +294,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Themes\Generic.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="VorgaengeControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@ -305,6 +317,9 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Resource Include="Resources\edit.png" />
|
||||
<Resource Include="Resources\delete.png" />
|
||||
<Resource Include="Resources\add.png" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
|
||||
30
ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
generated
30
ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
generated
@ -60,6 +60,16 @@ namespace ENI2.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap add {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("add", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@ -160,6 +170,16 @@ namespace ENI2.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap delete {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("delete", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@ -170,6 +190,16 @@ namespace ENI2.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap edit {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("edit", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
||||
@ -181,4 +181,13 @@
|
||||
<data name="bullet_ball_yellow" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\bullet_ball_yellow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="add" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
BIN
ENI-2/ENI2/ENI2/Resources/add.png
Normal file
BIN
ENI-2/ENI2/ENI2/Resources/add.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 763 B |
BIN
ENI-2/ENI2/ENI2/Resources/delete.png
Normal file
BIN
ENI-2/ENI2/ENI2/Resources/delete.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
ENI-2/ENI2/ENI2/Resources/edit.png
Normal file
BIN
ENI-2/ENI2/ENI2/Resources/edit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@ -9,7 +9,7 @@
|
||||
d:DesignHeight="600" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="120" />
|
||||
<RowDefinition Height="150" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="0">
|
||||
@ -26,7 +26,9 @@
|
||||
<RowDefinition Height="30" />
|
||||
<RowDefinition Height="30" />
|
||||
<RowDefinition Height="30" />
|
||||
<RowDefinition Height="30" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="0" Content="Id"/>
|
||||
<Label Grid.Column="0" Grid.Row="1" Content="IMO / ENI Nr."/>
|
||||
<Label Grid.Column="0" Grid.Row="2" Content="Schiffsname"/>
|
||||
@ -34,7 +36,7 @@
|
||||
<Label Grid.Column="2" Grid.Row="1" Content="ETA"/>
|
||||
<Label Grid.Column="2" Grid.Row="2" Content="Ticket-Nr."/>
|
||||
<TextBox Grid.Column="1" Grid.Row="0" Name="textBoxId" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<TextBox Grid.Column="1" Grid.Row="1" Name="textBoxIMO" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<TextBox Grid.Column="1" Grid.Row="1" Name="textBoxIMO" VerticalContentAlignment="Center" Margin="2" MaxLength="7"/>
|
||||
<TextBox Grid.Column="1" Grid.Row="2" Name="textBoxName" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<TextBox Grid.Column="3" Grid.Row="0" Name="textBoxHafen" VerticalContentAlignment="Center" Margin="2"/>
|
||||
<Grid Grid.Column="3" Grid.Row="1" Height="Auto" Margin="2">
|
||||
@ -45,14 +47,15 @@
|
||||
<ColumnDefinition Width="3*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0" Content="Von:" HorizontalAlignment="Left" />
|
||||
<xctk:DateTimePicker Grid.Column="1" Grid.Row="0" Name="dateTimePickerETAFrom" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
|
||||
<xctk:DateTimePicker Grid.Column="1" Grid.Row="0" Name="dateTimePickerETAFrom" Format="Custom" FormatString="dd.MM.yyyy" ShowButtonSpinner="False" VerticalContentAlignment="Center" AutoCloseCalendar="True" ValueChanged="etaValueChanged" AllowTextInput="False" TimePickerVisibility="Collapsed"/>
|
||||
<Label Grid.Column="2" Grid.Row="0" Content="Bis:" HorizontalAlignment="Left" />
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="0" Name="dateTimePickerETATo" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
|
||||
<xctk:DateTimePicker Grid.Column="3" Grid.Row="0" Name="dateTimePickerETATo" Format="Custom" FormatString="dd.MM.yyyy" ShowButtonSpinner="False" VerticalContentAlignment="Center" AutoCloseCalendar="True" ValueChanged="etaValueChanged" AllowTextInput="False" TimePickerVisibility="Collapsed"/>
|
||||
</Grid>
|
||||
<TextBox Grid.Column="3" Grid.Row="2" Name="textBoxTicketNr" Margin="2"/>
|
||||
|
||||
<Button Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Content="Eingaben löschen" Name="buttonClearInput" Click="Button_Click" Margin="2"/>
|
||||
<Button Grid.Column="2" Grid.Row="3" Grid.ColumnSpan="2" Content="Suche" Name="buttonSuche" Click="buttonSuche_Click" Margin="2"/>
|
||||
<Label Name="searchResultLabel" Grid.ColumnSpan="4" Grid.Row="4" VerticalContentAlignment="Center" />
|
||||
</Grid>
|
||||
<DataGrid Grid.Row="1" Margin="0,8,0,0" x:Name="dataGrid" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
|
||||
SelectionMode="Single" AutoGenerateColumns="False" MouseDoubleClick="dataGrid_MouseDoubleClick" PreviewKeyDown="dataGrid_PreviewKeyDown" >
|
||||
|
||||
@ -75,7 +75,8 @@ namespace ENI2
|
||||
}
|
||||
if(!this.dateTimePickerETATo.Text.IsNullOrEmpty())
|
||||
{
|
||||
to = this.dateTimePickerETATo.Value.Value.ToUnixTimeStamp();
|
||||
DateTime toTime = this.dateTimePickerETATo.Value.Value.Add(new TimeSpan(23, 59, 59)); // search till the end of the "to" day (no time selection)
|
||||
to = toTime.ToUnixTimeStamp();
|
||||
}
|
||||
|
||||
if (from.HasValue || to.HasValue)
|
||||
@ -86,6 +87,19 @@ namespace ENI2
|
||||
|
||||
// ergebnis anzeigen
|
||||
this.dataGrid.ItemsSource = this.anmeldungen;
|
||||
this.searchResultLabel.Content = (this.anmeldungen.Count > 0) ? string.Format("{0} results found.", this.anmeldungen.Count) : "no results";
|
||||
|
||||
}
|
||||
|
||||
private void etaValueChanged(object sender, EventArgs args)
|
||||
{
|
||||
bool valid = true;
|
||||
if ((this.dateTimePickerETAFrom.Value != null) && (this.dateTimePickerETATo.Value != null) &&
|
||||
this.dateTimePickerETATo.Value.Value < this.dateTimePickerETAFrom.Value.Value)
|
||||
valid = false;
|
||||
|
||||
this.dateTimePickerETAFrom.Background = valid ? SystemColors.ControlBrush : Brushes.Red;
|
||||
this.dateTimePickerETATo.Background = valid ? SystemColors.ControlBrush : Brushes.Red;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
20
ENI-2/ENI2/ENI2/Themes/Generic.xaml
Normal file
20
ENI-2/ENI2/ENI2/Themes/Generic.xaml
Normal file
@ -0,0 +1,20 @@
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:enictrl="clr-namespace:ENI2.Controls"
|
||||
xmlns:local="clr-namespace:ENI2">
|
||||
|
||||
|
||||
<Style TargetType="{x:Type enictrl:ENIDataGrid}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type enictrl:ENIDataGrid}">
|
||||
<Border Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}">
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
Binary file not shown.
@ -281,6 +281,8 @@ namespace bsmd.ExcelReadService
|
||||
bpol.StowawaysOnBoard = (poba.TotalStowawaysOnBoardUponArrival ?? 0) > 0;
|
||||
}
|
||||
|
||||
bpol.DeleteElements();
|
||||
|
||||
// PortOfItinerary
|
||||
for (int i = 1; i <= 10; i++)
|
||||
{
|
||||
@ -382,6 +384,7 @@ namespace bsmd.ExcelReadService
|
||||
hazaMessage.Elements.Add(newHaza);
|
||||
}
|
||||
HAZ haza = hazaMessage.Elements[0] as HAZ;
|
||||
haza.DeleteElements();
|
||||
|
||||
haza.NoDPGOnBoardOnArrival = !reader.ReadBoolean("HAZA.DGOnBoard");
|
||||
haza.DPGManifestOnBoardOnArrival = reader.ReadBoolean("HAZA.DPGManifestOnBoardOnArrival");
|
||||
@ -681,6 +684,7 @@ namespace bsmd.ExcelReadService
|
||||
hazdMessage.Elements.Add(newHazd);
|
||||
}
|
||||
HAZ hazd = hazdMessage.Elements[0] as HAZ;
|
||||
hazd.DeleteElements();
|
||||
|
||||
hazd.NoDPGOnBoardOnArrival = !reader.ReadBoolean("HAZD.DGOnBoard");
|
||||
hazd.DPGManifestOnBoardOnArrival = reader.ReadBoolean("HAZD.DPGManifestOnBoardOnDeparture");
|
||||
@ -1197,6 +1201,7 @@ namespace bsmd.ExcelReadService
|
||||
wasMessage.Elements.Add(newWAS);
|
||||
}
|
||||
WAS was = wasMessage.Elements[0] as WAS;
|
||||
was.DeleteElements();
|
||||
Util.ScanMessage(was, reader);
|
||||
was.WasteDisposalDelivery = reader.ReadDelivery("WAS.WasteDisposalDelivery");
|
||||
if ((was.LastWasteDisposalPort != null) && (was.LastWasteDisposalPort.Length > 5))
|
||||
@ -1394,6 +1399,7 @@ namespace bsmd.ExcelReadService
|
||||
mdhMessage.Elements.Add(newMDH);
|
||||
}
|
||||
MDH mdh = mdhMessage.Elements[0] as MDH;
|
||||
mdh.DeleteElements();
|
||||
Util.ScanMessage(mdh, reader);
|
||||
|
||||
// lt. Mail von Christin am 28.9.2016
|
||||
@ -1788,6 +1794,7 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanBKRA(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message bkraMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.BKRA);
|
||||
bkraMessage.DeleteElements();
|
||||
for (int i = 1; i <= bkraMessage.NumberOfExcelRows; i++)
|
||||
{
|
||||
string lnQuantity = string.Format("BKRA.BunkerFuelQuantity_TNE_{0}", i);
|
||||
@ -1829,6 +1836,7 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanBKRD(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message bkrdMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.BKRD);
|
||||
bkrdMessage.DeleteElements();
|
||||
for (int i = 1; i <= bkrdMessage.NumberOfExcelRows; i++)
|
||||
{
|
||||
string lnQuantity = string.Format("BKRD.BunkerFuelQuantity_TNE_{0}", i);
|
||||
@ -1869,6 +1877,7 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanTOWA(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message towaMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWA);
|
||||
towaMessage.DeleteElements();
|
||||
for (int i = 1; i <= towaMessage.NumberOfExcelRows; i++)
|
||||
{
|
||||
string tName = string.Format("TOWA.TowageOnArrivalName_{0}", i);
|
||||
@ -1914,6 +1923,7 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanTOWD(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message towdMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWD);
|
||||
towdMessage.DeleteElements();
|
||||
|
||||
for (int i = 1; i <= towdMessage.NumberOfExcelRows; i++)
|
||||
{
|
||||
@ -2001,6 +2011,8 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanSTO(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message stoMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.STO);
|
||||
stoMessage.DeleteElements();
|
||||
|
||||
for(int i=0;i<stoMessage.NumberOfExcelRows;i++) // 10
|
||||
{
|
||||
string stoName = string.Format("STO.Name_{0}", i + 1);
|
||||
@ -2040,6 +2052,8 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanLADG(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message ladgMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.LADG);
|
||||
ladgMessage.DeleteElements();
|
||||
|
||||
for (int i = 0; i < ladgMessage.NumberOfExcelRows; i++)
|
||||
{
|
||||
string lnCHT = string.Format("LADG.CargoHandlingType_{0}", i + 1);
|
||||
@ -2143,6 +2157,8 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanCREW(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message crewMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.CREW);
|
||||
crewMessage.DeleteElements();
|
||||
|
||||
for (int i = 0; i < crewMessage.NumberOfExcelRows; i++)
|
||||
{
|
||||
string crewLastName = string.Format("CREW.CrewMemberLastName_{0}", i + 1);
|
||||
@ -2254,6 +2270,8 @@ namespace bsmd.ExcelReadService
|
||||
static void ScanPAS(List<Message> messages, MessageCore messageCore, ExcelReader reader)
|
||||
{
|
||||
Message pasMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.PAS);
|
||||
pasMessage.DeleteElements();
|
||||
|
||||
for (int i = 0; i < pasMessage.NumberOfExcelRows; i++)
|
||||
{
|
||||
string pasLastName = string.Format("PAS.PassengerLastName_{0}", i + 1);
|
||||
|
||||
@ -22,6 +22,7 @@ namespace bsmd.database
|
||||
{
|
||||
private static ILog _log = LogManager.GetLogger(typeof(Extensions));
|
||||
private static Regex splitRegex = new Regex(@"(""((\\"")|([^""]))*"")|('((\\')|([^']))*')|(\S+)");
|
||||
private static char[] splitDelimiter = new[] { ',', ';', ' ' };
|
||||
|
||||
public static bool IsNullOrEmpty(this String str)
|
||||
{
|
||||
@ -114,11 +115,17 @@ namespace bsmd.database
|
||||
|
||||
foreach(Match match in splitRegex.Matches(source))
|
||||
{
|
||||
result.Add(match.Value);
|
||||
result.Add(match.Value.Trim());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<string> SimpleSplit(this string source)
|
||||
{
|
||||
List<string> result = new List<string>(source.Split(splitDelimiter, StringSplitOptions.RemoveEmptyEntries));
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,9 +2,7 @@
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace bsmd.database
|
||||
{
|
||||
@ -276,7 +274,7 @@ namespace bsmd.database
|
||||
}
|
||||
case Message.LoadFilter.BSMDSTATUS:
|
||||
{
|
||||
sb.Append("WHERE BSMDStatus = @STATUS ORDER BY Created DESC");
|
||||
sb.Append("WHERE BSMDStatus = @STATUS ORDER BY ETA");
|
||||
((SqlCommand)cmd).Parameters.AddWithValue("@STATUS", criteria[0]);
|
||||
break;
|
||||
}
|
||||
@ -374,7 +372,7 @@ namespace bsmd.database
|
||||
{
|
||||
sb.Append("( ");
|
||||
int paramCnt = 0;
|
||||
foreach (string param in searchDict[key].RegexSplit())
|
||||
foreach (string param in searchDict[key].SimpleSplit())
|
||||
{
|
||||
string paramName = string.Format("@SEARCH_PORT{0}", paramCnt);
|
||||
if (paramCnt > 0) sb.Append(" OR ");
|
||||
@ -399,10 +397,12 @@ namespace bsmd.database
|
||||
if (!moreThanOne) moreThanOne = true;
|
||||
}
|
||||
}
|
||||
sb.Append(" ORDER BY ETA");
|
||||
break;
|
||||
}
|
||||
case Message.LoadFilter.ALL:
|
||||
default:
|
||||
sb.Append(" ORDER BY ETA");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@ -2,6 +2,6 @@
|
||||
|
||||
[assembly: AssemblyCompany("Informatikbüro Daniel Schick")]
|
||||
[assembly: AssemblyProduct("BSMD NSW interface")]
|
||||
[assembly: AssemblyInformationalVersion("3.5.5")]
|
||||
[assembly: AssemblyInformationalVersion("3.5.6")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014-2017 Informatikbüro Daniel Schick. All rights reserved.")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
@ -1,4 +1,4 @@
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyVersion("3.5.5.*")]
|
||||
[assembly: AssemblyVersion("3.5.6.*")]
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user