Darkmode für Loading

Asp Meldung beim Start
This commit is contained in:
Marcus 2025-11-24 13:47:28 +01:00
parent fd053d94d2
commit 761641f71a
14 changed files with 122 additions and 264 deletions

View File

@ -46,6 +46,7 @@
<ComboBoxItem Content="DB Services GmbH"/>
<ComboBoxItem Content="DB Gastronomie GmbH"/>
<ComboBoxItem Content="DB Regio AG"/>
<ComboBoxItem Content="Sasse"/>
</ComboBox>
<TextBlock Margin="10,5,10,0" Foreground="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" TextWrapping="Wrap" Text="Private Adresse (Straße und Hausnummer)*" VerticalAlignment="Top" Grid.Row="6"/>
@ -65,7 +66,7 @@
<TextBox x:Name="tbVorgesetzter" Margin="10,26,10,0" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="9" TextChanged="Textboxes_Changed" PreviewKeyDown="TextBoxes_PreviewKeyDown"/>
<StackPanel Margin="150,20,10,12" Grid.Row="10">
<StackPanel Margin="160,20,10,12" Grid.Row="10">
<RadioButton x:Name="rbDKennzeichen" Content="Deutsches Kennzeichen" Height="25" VerticalAlignment="Bottom" IsChecked="True"/>
<RadioButton x:Name="rbOtherKennzeichen" Content="Ausländisches Kennzeichen" Height="25" VerticalAlignment="Bottom" Checked="rbOtherKennzeichen_Checked"/>
<RadioButton x:Name="rbVersKennzeichen" Content="Versicherungskennzeichen" Height="25" VerticalAlignment="Bottom" Checked="rbVersKennzeichen_Checked"/>
@ -74,16 +75,16 @@
<TextBlock Text="Kennzeichen*" Margin="10,10,0,0" Foreground="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" TextWrapping="Wrap" VerticalAlignment="Top" Grid.Row="10"/>
<StackPanel x:Name="spDKennzeichen" Margin="10,36,0,20" Grid.Row="10" HorizontalAlignment="Left" Orientation="Horizontal" Width="130">
<StackPanel x:Name="spDKennzeichen" Margin="10,36,0,20" Grid.Row="10" HorizontalAlignment="Left" Orientation="Horizontal" Width="140">
<TextBox x:Name="tbDTownKennzeichen" Height="25" CharacterCasing="Upper" Padding="0,4,0,0" TextWrapping="Wrap" Visibility="Visible" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextAlignment="Center" Width="37" PreviewTextInput="tbDTownKennzeichen_PreviewTextInput" TextChanged="Textboxes_Changed"/>
<TextBlock Margin="5,0,0,0" Foreground="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" TextWrapping="Wrap" Text="-" HorizontalAlignment="Left" Visibility="Visible" FontSize="14" FontWeight="SemiBold" Padding="0,2,0,0" Height="20"/>
<TextBox x:Name="tbDCharsKennzeichen" Height="25" Margin="5,0,0,0" CharacterCasing="Upper" HorizontalAlignment="Left" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="10" Visibility="Visible" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextAlignment="Center" Width="32" PreviewTextInput="tbDCharsKennzeichen_PreviewTextInput" TextChanged="Textboxes_Changed"/>
<TextBox x:Name="tbDDigitsKennzeichen" Height="25" Margin="5,0,0,0" HorizontalAlignment="Left" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="10" Visibility="Visible" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextAlignment="Center" Width="39" PreviewTextInput="tbDDigitsKennzeichen_PreviewTextInput" TextChanged="Textboxes_Changed"/>
<TextBox x:Name="tbDDigitsKennzeichen" Height="25" Margin="5,0,0,0" HorizontalAlignment="Left" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="10" Visibility="Visible" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextAlignment="Center" Width="50" PreviewTextInput="tbDDigitsKennzeichen_PreviewTextInput" TextChanged="Textboxes_Changed"/>
</StackPanel>
<TextBox x:Name="tbOtherKennzeichen" Height="25" Margin="10,0,0,0" CharacterCasing="Upper" HorizontalAlignment="Left" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="10" Visibility="Collapsed" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextChanged="Textboxes_Changed" Width="124"/>
<TextBox x:Name="tbOtherKennzeichen" Height="25" Margin="10,16,0,0" CharacterCasing="Upper" HorizontalAlignment="Left" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="10" Visibility="Collapsed" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextChanged="Textboxes_Changed" Width="124"/>
<StackPanel x:Name="spVersKennzeichen" Orientation="Horizontal" Visibility="Collapsed" Grid.Row="10" Margin="10,15,0,0">
<StackPanel x:Name="spVersKennzeichen" Orientation="Horizontal" Visibility="Collapsed" Grid.Row="10" Margin="10,16,0,0">
<TextBox x:Name="tbVersKennzeichen1" MaxLength="3" Height="25" Margin="10,0,0,0" CharacterCasing="Upper" HorizontalAlignment="Left" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="10" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextChanged="Textboxes_Changed" Width="40"/>
<TextBox x:Name="tbVersKennzeichen2" MaxLength="3" Height="25" Margin="10,0,0,0" CharacterCasing="Upper" HorizontalAlignment="Left" Padding="0,4,0,0" TextWrapping="Wrap" Grid.Row="10" PreviewKeyDown="TextBoxes_PreviewKeyDown" TextChanged="Textboxes_Changed" Width="40"/>
</StackPanel>

View File

@ -512,13 +512,21 @@ namespace ZKuP
private void tbDDigitsKennzeichen_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if ((sender as TextBox).Text.Length >= 5)
if (e.Text != "H" && e.Text != "E" && (sender as TextBox).Text.Length >= 5)
{
e.Handled = true;
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(e.Text, "^[0-9]*$"))
var tb = (TextBox)sender;
// neuer Text unter Berücksichtigung von Selection (Ersetzung möglich)
string newText = tb.Text.Substring(0, tb.SelectionStart)
+ e.Text
+ tb.Text.Substring(tb.SelectionStart + tb.SelectionLength);
if (!System.Text.RegularExpressions.Regex.IsMatch(newText, @"^[0-9]+(?:E|H)?$"))
{
e.Handled = true;
return;

View File

@ -9,7 +9,7 @@
Title="Unterschriftenanzeige" Height="370" Width="419" Loaded="Window_Loaded" LocationChanged="Window_LocationChanged">
<Grid>
<Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Top">
<StackPanel x:Name="panelRB" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Top">
<RadioButton Content="Zutritte" Margin="5" Checked="RadioButton_Checked" IsChecked="True"/>
<RadioButton Content="Karten" Margin="5" Checked="RadioButton_Checked"/>
<RadioButton Content="McFit" Margin="5" Checked="RadioButton_Checked"/>

View File

@ -62,7 +62,13 @@ namespace ZKuP
{
Dispatcher.Invoke(new Action(() =>
{
if (!showComboBox) { dPDate.Visibility = cBSignature.Visibility = btnToday.Visibility = btnUp.Visibility = btnDown.Visibility = tbFilter.Visibility = lblFilter.Visibility = btnFiltern.Visibility = cbOnlyWithSignature.Visibility = Visibility.Collapsed; }
if (!showComboBox)
{
dPDate.Visibility = cBSignature.Visibility = btnToday.Visibility = btnUp.Visibility = btnDown.Visibility = tbFilter.Visibility = lblFilter.Visibility = btnFiltern.Visibility = cbOnlyWithSignature.Visibility = panelRB.Visibility = Visibility.Collapsed;
imageSignature.Margin = new Thickness(10);
this.Height = imageSignature.ActualHeight + 50;
}
else { cBSignature.Visibility = dPDate.Visibility = btnToday.Visibility = btnUp.Visibility = btnDown.Visibility = tbFilter.Visibility = lblFilter.Visibility = btnFiltern.Visibility = cbOnlyWithSignature.Visibility = Visibility.Visible; }
}));

View File

@ -120,47 +120,7 @@
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
<!--<DrawingImage x:Key="ConnectedIcon">
<DrawingImage.Drawing>
<DrawingGroup>
--><!-- Left connector part --><!--
<GeometryDrawing Brush="#22c55e"
Geometry="M0,8 L20,8 A8,8 0 0,1 20,24 L0,24 A8,8 0 0,1 0,8 Z">
<GeometryDrawing.Pen>
<Pen Brush="#16a34a" Thickness="2"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
--><!-- Right connector part --><!--
<GeometryDrawing Brush="#22c55e"
Geometry="M30,8 L50,8 A8,8 0 0,1 50,24 L30,24 A8,8 0 0,1 30,8 Z">
<GeometryDrawing.Pen>
<Pen Brush="#16a34a" Thickness="2"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
--><!-- Left pin --><!--
<GeometryDrawing Brush="White"
Geometry="M17,13 L23,13 A1,1 0 0,1 23,19 L17,19 A1,1 0 0,1 17,13 Z"/>
--><!-- Right pin --><!--
<GeometryDrawing Brush="White"
Geometry="M27,13 L33,13 A1,1 0 0,1 33,19 L27,19 A1,1 0 0,1 27,13 Z"/>
--><!-- Connection line --><!--
<GeometryDrawing>
<GeometryDrawing.Pen>
<Pen Brush="#16a34a" Thickness="3"/>
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<LineGeometry StartPoint="20,16" EndPoint="30,16"/>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>-->
<!-- Not Connected Icon -->
<DrawingImage x:Key="NotConnectedIcon">
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V100 H300 V0 H0 Z">
@ -203,59 +163,11 @@
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
<!--<DrawingImage x:Key="NotConnectedIcon">
<DrawingImage.Drawing>
<DrawingGroup>
--><!-- Left connector part --><!--
<GeometryDrawing Brush="#ef4444"
Geometry="M0,8 L20,8 A8,8 0 0,1 20,24 L0,24 A8,8 0 0,1 0,8 Z">
<GeometryDrawing.Pen>
<Pen Brush="#dc2626" Thickness="2"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
--><!-- Right connector part (separated) --><!--
<GeometryDrawing Brush="#ef4444"
Geometry="M35,8 L55,8 A8,8 0 0,1 55,24 L35,24 A8,8 0 0,1 35,8 Z">
<GeometryDrawing.Pen>
<Pen Brush="#dc2626" Thickness="2"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
--><!-- Left pin --><!--
<GeometryDrawing Brush="White"
Geometry="M17,13 L23,13 A1,1 0 0,1 23,19 L17,19 A1,1 0 0,1 17,13 Z"/>
--><!-- Right pin --><!--
<GeometryDrawing Brush="White"
Geometry="M38,13 L44,13 A1,1 0 0,1 44,19 L38,19 A1,1 0 0,1 38,13 Z"/>
--><!-- Spark/gap indication --><!--
<GeometryDrawing>
<GeometryDrawing.Pen>
<Pen Brush="#ef4444" Thickness="2"/>
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry>
<PathFigure StartPoint="25,14">
<LineSegment Point="30,16"/>
<LineSegment Point="25,18"/>
</PathFigure>
<PathFigure StartPoint="30,14">
<LineSegment Point="35,16"/>
<LineSegment Point="30,18"/>
</PathFigure>
</PathGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>-->
</mah:MetroWindow.Resources>
<Grid>
<Grid x:Name="gridBackground" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="160"/>
@ -270,22 +182,11 @@
</Canvas.Background>
</Canvas>
<Grid x:Name="gridSpinner" Background="White" Grid.RowSpan="4" Panel.ZIndex="99" Margin="0" Visibility="Visible" VerticalAlignment="Top" Height="{Binding Height, ElementName=metroWindow}">
<!--<Canvas HorizontalAlignment="Center" VerticalAlignment="Center" Width="90" Height="90">
<local:ucSpinnerPiston RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Left="46" Canvas.Top="46" Height="25" Width="25" >
<local:ucSpinnerPiston.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="3" ScaleX="3"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform X="-13.5" Y="-13.5"/>
</TransformGroup>
</local:ucSpinnerPiston.RenderTransform>
</local:ucSpinnerPiston>
</Canvas>-->
<Image x:Name="imgLoading" gif:AnimationBehavior.SourceUri="/Resources/Loading.gif" gif:AnimationBehavior.CacheFramesInMemory="True" gif:AnimationBehavior.AnimationCompleted="imgLoading_AnimationCompleted" VerticalAlignment="Center" Width="400" Height="120" Margin="0,0,0,80"/>
<!--gif:ImageBehavior.RepeatBehavior="3x"-->
<TextBlock Text="ZKuP wird geladen..." HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,120,0,0" FontSize="20" Foreground="#CC000000"/>
<Grid x:Name="gridSpinner" Background="#252525" Grid.RowSpan="4" Panel.ZIndex="99" Margin="0" Visibility="Visible" VerticalAlignment="Top" Height="{Binding Height, ElementName=metroWindow}">
<Image x:Name="imgLoading" gif:AnimationBehavior.SourceUri="/Resources/Loading2.gif" gif:AnimationBehavior.CacheFramesInMemory="True" gif:AnimationBehavior.AnimationCompleted="imgLoading_AnimationCompleted" VerticalAlignment="Center" Width="400" Height="120" Margin="0,0,0,80"/>
<!--gif:ImageBehavior.RepeatBehavior="3x"-->
<TextBlock Text="ZKuP wird geladen..." HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,120,0,0" FontSize="20" Foreground="White"/>
<ProgressBar x:Name="pgLoad" Maximum="100" Value="0" Background="{x:Null}" Margin="0,368,0,184" VerticalAlignment="Center" Height="30" HorizontalAlignment="Center" Width="400"/>
</Grid>
@ -339,24 +240,7 @@
<Button x:Name="btnPrintParkausweis" Content="Parkausweise drucken" Height="37" FontSize="12" Padding="-5" Margin="2,5" VerticalAlignment="Top" FontWeight="Regular" Width="150" Click="btnPrintParkausweis_Click" Visibility="Collapsed"/>
</StackPanel>
<!--<Button x:Name="btnCreateParkausweis" Content="Parkausweis beantragen" Height="23" FontSize="12" Padding="-5" VerticalAlignment="Top" FontWeight="Regular" HorizontalAlignment="Right" Margin="0,13,280,0" Width="150" Click="btnCreateParkausweis_Click" Visibility="Collapsed"/>
<Button x:Name="btnCreateSpecialParkausweis" Content="Sonderparkausweis" Height="23" FontSize="12" Padding="-5" VerticalAlignment="Top" FontWeight="Regular" HorizontalAlignment="Right" Margin="0,13,440,0" Width="150" Click="btnCreateSpecialParkausweis_Click" Visibility="Collapsed"/>
<Button x:Name="btnGrantParkausweis" Content="Parkausweise genehmigen" Height="23" FontSize="12" Padding="-5" VerticalAlignment="Top" FontWeight="Regular" HorizontalAlignment="Right" Margin="0,38,280,0" Width="150" Click="btnGrantParkausweis_Click" Visibility="Collapsed"/>
<Button x:Name="btnListParkausweis" Content="Parkausweise verwalten" Height="23" FontSize="12" Padding="-5" VerticalAlignment="Top" FontWeight="Regular" HorizontalAlignment="Right" Margin="0,63,280,0" Width="150" Click="btnListParkausweis_Click" Visibility="Collapsed"/>
<Button x:Name="btnCheckParkausweis" Content="Parkausweise prüfen" Height="23" FontSize="12" Padding="-5" VerticalAlignment="Top" FontWeight="Regular" HorizontalAlignment="Right" Margin="0,88,280,0" Width="150" Click="btnCheckParkausweis_Click" Visibility="Collapsed">
<Button.ToolTip>
<TextBlock Text="Hier kann überprüft werden ob Kennzeichen einen Parkschein hat"/>
</Button.ToolTip>
</Button>
<Button x:Name="btnPrintParkausweis" Content="Parkausweise drucken" Height="23" FontSize="12" Padding="-5" VerticalAlignment="Top" FontWeight="Regular" HorizontalAlignment="Right" Margin="0,88,440,0" Width="150" Click="btnPrintParkausweis_Click" Visibility="Collapsed"/>
<Button x:Name="btnCheckKennzeichen" Content="Kennzeichen prüfen" Height="23" FontSize="12" Padding="-5" VerticalAlignment="Bottom" FontWeight="Regular" HorizontalAlignment="Right" Margin="0,0,280,-20" Width="150" Click="btnCheckKennzeichen_Click" Visibility="Collapsed">
<Button.ToolTip>
<StackPanel>
<TextBlock Text="Für eingefahrene Fzg. zb von Firmen das Kennzeichen prüfen"/>
<TextBlock Text="Die Suche ergibt Kennzeichen für die ein Zutritt genehmigt wurde"/>
</StackPanel>
</Button.ToolTip>
</Button>-->
</StackPanel>
</TabItem>
<TabItem x:Name="tabFirmBesAsp" Header="Firmen/Besucher/Asp" Visibility="Collapsed" Margin="5,0" Width="195" FontSize="8" Height="30" mah:HeaderedControlHelper.HeaderFontSize="18" mah:HeaderedControlHelper.HeaderHorizontalContentAlignment="Center" mah:HeaderedControlHelper.HeaderVerticalContentAlignment="Center">
@ -1217,7 +1101,6 @@
</Grid>
<Grid Margin="0,-25,200,0" HorizontalAlignment="Right" VerticalAlignment="Top">
<Border>
<Grid Width="50" Height="30" HorizontalAlignment="Left" VerticalAlignment="Top">
<Image Source="/Resources/ConnBackground.png" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Uniform"/>

View File

@ -31,6 +31,7 @@ using System.Windows.Threading;
using Windows.UI.Composition;
using Process = System.Diagnostics.Process;
namespace ZKuP
{
/// <summary>
@ -45,7 +46,7 @@ namespace ZKuP
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public const string Version = "5.2.4.0";
public static string Version { get; } = "5.2.5.2";
//public static Roles LoggedInRole { get; private set; } = Roles.None;
internal static MainWindow main;
ThemeManager TM;
@ -80,6 +81,7 @@ namespace ZKuP
set { fzgAnmeldungEmailUsers = value; OnPropertyChanged(); }
}
public static FullName CompleteName = new FullName();
DataTable overv = new DataTable("Overview");
@ -567,7 +569,7 @@ namespace ZKuP
}
TM.ChangeTheme(Settings.GetSettingBool("DarkMode"));
TM.ChangeTheme(Settings.GetSettingBool("DarkMode"));
TM.ChangeAccent(Settings.GetSettingString("Accent"));
this.Title = "ZKuP - " + Version + "\tRolle: " + RoleManager.LoggedInRole.ToString().Replace("_", " ");
@ -669,6 +671,10 @@ namespace ZKuP
gridToday.ColumnDefinitions[2].Width = new GridLength(col2Width, GridUnitType.Star);
// Index 1 ist der GridSplitter mit Auto-Breite
gridRowTop.Height = new GridLength(Settings.GetSettingDouble("SplitterPos"));
if (gridRowTop.Height.Value > .8 * this.Height)
gridRowTop.Height = new GridLength((this.ActualHeight - 160 - 190) / (Helper.scale == 0 ? 1 : Helper.scale));
@ -740,13 +746,16 @@ namespace ZKuP
{
try
{
using (var domainContext = new PrincipalContext(ContextType.Domain, Environment.UserDomainName))
{
using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, Environment.UserName))
{
if (foundUser.Enabled.HasValue)
{
CompleteName.Vorname = foundUser.Surname;
CompleteName.Nachname = foundUser.Name;
CompleteName.Mittelinitial = foundUser.MiddleName;
return (bool)foundUser.Enabled;
}
else
@ -1696,59 +1705,6 @@ namespace ZKuP
//private async void BtnNew_Click(object sender, RoutedEventArgs e)
//{
// if (LoggedInRole == Roles.Admin || LoggedInRole == Roles.Pförtner)
// {
// reloadTimer.Stop();
// reloadTimerHinweis.Stop();
// if (dgToday.SelectedValue == null)
// {
// if (MessageBox.Show(this, "Möchten Sie wirklich eine Ankunft ohne vorherige Auswahl bestätigen?\n\nWenn die Firma/der Besucher in der Liste 'Ankunft heute' steht, bitte per Doppelklick auf die Zeile bestätigen", "Sicher?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
// {
// Arrivals arrivals = new Arrivals(this);
// arrivals.Owner = this;
// arrivals.Show();
// arrivals.Closed -= Arrivals_Closed;
// arrivals.Closed += Arrivals_Closed;
// }
// }
// else
// {
// Arrivals arrivals;
// //if (!(dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().StartsWith("Besucher:"))
// // arrivals = new Arrivals(this, (int)(dgToday.SelectedValue as DataRowView).Row.ItemArray[0]);//(dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().Replace("Besucher: ", ""));
// //else
// // arrivals = new Arrivals(this, (int)(dgToday.SelectedValue as DataRowView).Row.ItemArray[17], 1);//(dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().Replace("Besucher: ", ""));
// if ((dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().StartsWith("Besucher:"))
// arrivals = new Arrivals(this, (int)(dgToday.SelectedValue as DataRowView).Row.ItemArray[17], 1);
// //(dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().Replace("Besucher: ", ""));
// else if ((dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().StartsWith("Führung:"))
// arrivals = new Arrivals(this, (int)(dgToday.SelectedValue as DataRowView).Row.ItemArray[17], 2, (dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString());
// else
// arrivals = new Arrivals(this, (int)(dgToday.SelectedValue as DataRowView).Row.ItemArray[0]);
// arrivals.Owner = this;
// arrivals.Show();
// arrivals.Closed -= Arrivals_Closed;
// arrivals.Closed += Arrivals_Closed;
// }
// //await getZutritte();
// //overv = await SQL.ReadSQL($"SELECT * FROM {MainWindow.table}.zutritte where Zutritt >= now() + INTERVAL -10 DAY", overv);
// //dgOverview.Items.SortDescriptions.Clear();
// //dgOverview.Items.SortDescriptions.Add(new SortDescription("Zutritt", ListSortDirection.Descending));
// //dgOverview.Items.Refresh();
// }
//}
private async void btnDelivery_Click(object sender, RoutedEventArgs e)
{
Cursor = Cursors.Wait;
@ -1771,11 +1727,7 @@ namespace ZKuP
await getZutritte();
await getFahrzeuge();
}
//overv = await SQL.ReadSQL($"SELECT * FROM {MainWindow.table}.zutritte where Zutritt >= now() + INTERVAL -10 DAY", overv);
//dgOverview.Items.SortDescriptions.Clear();
//dgOverview.Items.SortDescriptions.Add(new SortDescription("Zutritt", ListSortDirection.Descending));
//dgOverview.Items.Refresh();
Cursor = Cursors.Arrow;
}
@ -2114,12 +2066,6 @@ namespace ZKuP
else if (dg.Name == "dgToday")
{
Arrivals arrivals;
//if ((dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().StartsWith("Besucher:"))
// arrivals = new Arrivals(this, (int)(dgToday.SelectedValue as DataRowView).Row.ItemArray[17], 1);
////(dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().Replace("Besucher: ", ""));
//else if ((dgToday.SelectedValue as DataRowView).Row.ItemArray[1].ToString().StartsWith("Führung:"))
// arrivals = new Arrivals(this, (int)(dgToday.SelectedValue as DataRowView).Row.ItemArray[22], 2, (dgToday.SelectedValue as DataRowView).Row.ItemArray[2].ToString());
//else
var res = -1;
int.TryParse((dgToday.SelectedValue as DataRowView).Row.ItemArray[0].ToString(), out res);
@ -2164,15 +2110,6 @@ namespace ZKuP
}
else Log.WriteLog("Trying to open an Arrival with no DataGrid Name");
//await getZutritte();
//overv = await SQL.ReadSQL($"SELECT * FROM {MainWindow.table}.zutritte where Zutritt >= now() + INTERVAL -10 DAY", overv);
//dgOverview.Items.SortDescriptions.Clear();
//dgOverview.Items.SortDescriptions.Add(new SortDescription("Zutritt", ListSortDirection.Descending));
//dgOverview.Items.Refresh();
//
}
Cursor = Cursors.Arrow;
@ -2816,6 +2753,8 @@ namespace ZKuP
e.Handled = true; // Bewegung stoppen
gridRowTop.Height = new GridLength((this.ActualHeight - 160 - 190) / (Helper.scale == 0 ? 1 : Helper.scale));
}
Settings.WriteSetting("SplitterPos", gridRowTop.Height.Value);
}
@ -3151,4 +3090,10 @@ namespace ZKuP
public string Bemerkung;
}
public class FullName
{
public string Vorname;
public string Nachname;
public string Mittelinitial;
}
}

View File

@ -32,7 +32,13 @@
<DataGridTextColumn Binding="{Binding Tel_Nr}" ClipboardContentBinding="{x:Null}" Header="Asp-Tel" Width="*"/>
<DataGridTextColumn Binding="{Binding Tel_Vertreter}" ClipboardContentBinding="{x:Null}" Header="Vertreter-Tel" Width="*"/>
<DataGridTextColumn Binding="{Binding Tel_Vorgesetzter}" ClipboardContentBinding="{x:Null}" Header="Vorgesetzter-Tel" Width="*"/>
<DataGridTextColumn Binding="{Binding Raum}" ClipboardContentBinding="{x:Null}" Header="Raum/Werkstatt" Width="*" DisplayIndex="1"/>
<DataGridTextColumn Binding="{Binding Raum}" ClipboardContentBinding="{x:Null}" Header="Raum/Werkstatt" Width="*" DisplayIndex="1">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>

View File

@ -33,7 +33,7 @@ namespace ZKuP
//}
DataTable asp = new DataTable("Asp");
string UserID = "0";
string UserID = "-1";
public ManageAsp()
{
@ -43,6 +43,8 @@ namespace ZKuP
UserID = SQL.ReadSingleValue($"SELECT idusers FROM {MainWindow.table}.users WHERE Username = '{Environment.UserName}'");
if (UserID == "1" && Environment.UserName.ToLower() != "marcusbachler") Log.WriteLog("UserID Fail");
Query();
}
@ -71,22 +73,34 @@ namespace ZKuP
MessageBox.Show(this, "Ansprechpartner muss qualifiziert ausgefüllt sein!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbAspVertreter.Text) || tbAspVertreter.Text.ToList<char>().Distinct().Count() < 5)
MessageBox.Show(this, "Vertreter muss qualifiziert ausgefüllt sein!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbRaum.Text) || tbRaum.Text.ToList<char>().Distinct().Count() < 5)
else if (string.IsNullOrWhiteSpace(tbRaum.Text) || tbRaum.Text.ToList<char>().Distinct().Count() < 2)
MessageBox.Show(this, "Raum/Werkstatt qualifiziert ausgefüllt sein!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbAspVorgesetzter.Text) || tbAspVorgesetzter.Text.ToList<char>().Distinct().Count() < 5)
MessageBox.Show(this, "Vorgesetzter muss qualifiziert ausgefüllt sein!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbAspTel.Text) || !System.Text.RegularExpressions.Regex.IsMatch(tbAspTel.Text, "^[0-9()+\\-/ ]*$") || tbAspTel.Text.ToList<char>().Distinct().Count() < 5)
else if (string.IsNullOrWhiteSpace(tbAspTel.Text) || !System.Text.RegularExpressions.Regex.IsMatch(tbAspTel.Text, "^[0-9()+\\-/ ]*$") || tbAspTel.Text.ToList<char>().Distinct().Count() < 4)
MessageBox.Show(this, "Ansprechpartner-Telefonnummer muss qualifiziert ausgefüllt sein!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbVertreterTel.Text) || !System.Text.RegularExpressions.Regex.IsMatch(tbAspTel.Text, "^[0-9()+\\-/ ]*$") || tbVertreterTel.Text.ToList<char>().Distinct().Count() < 5)
else if (string.IsNullOrWhiteSpace(tbVertreterTel.Text) || !System.Text.RegularExpressions.Regex.IsMatch(tbAspTel.Text, "^[0-9()+\\-/ ]*$") || tbVertreterTel.Text.ToList<char>().Distinct().Count() < 4)
MessageBox.Show(this, "Vertreter-Telefonnummer muss qualifiziert ausgefüllt sein!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbVorgesetzterTel.Text) || !System.Text.RegularExpressions.Regex.IsMatch(tbVertreterTel.Text, "^[0-9()+\\-/ ]*$") || tbVertreterTel.Text.ToList<char>().Distinct().Count() < 5)
else if (string.IsNullOrWhiteSpace(tbVorgesetzterTel.Text) || !System.Text.RegularExpressions.Regex.IsMatch(tbVertreterTel.Text, "^[0-9()+\\-/ ]*$") || tbVertreterTel.Text.ToList<char>().Distinct().Count() < 4)
MessageBox.Show(this, "Vorgesetzter-Telefonnummer muss qualifiziert ausgefüllt sein!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else
{
await SQL.WriteSQL($"INSERT INTO {MainWindow.table}.ansprechpartner (Name,Vertreter,Tel_Nr,Vorgesetzter,Tel_Vertreter,Tel_Vorgesetzter,CreatorID) VALUES " +
$"('{tbAsp.Text}','{tbAspVertreter.Text}','{tbAspTel.Text}','{tbAspVorgesetzter.Text}','{tbVertreterTel.Text}','{tbVorgesetzterTel.Text}','{UserID}')");
//if (UserID == "1") UserID = (new Random().Next(2, 10000) * -1).ToString();
var exists = SQL.ReadSingleValue($"SELECT EXISTS(SELECT 1 FROM ansprechpartner WHERE CreatorID = '{UserID}')");
if (exists == "1")
{
await SQL.WriteSQL($"UPDATE {MainWindow.table}.ansprechpartner SET Name = '{tbAsp.Text}', Raum = '{tbRaum.Text}',Vertreter = '{tbAspVertreter.Text}',Tel_Nr = '{tbAspTel.Text}',Vorgesetzter = '{tbAspVorgesetzter.Text}',Tel_Vertreter = '{tbVertreterTel.Text}',Tel_Vorgesetzter = '{tbVorgesetzterTel.Text}' WHERE CreatorID = {UserID}");
}
else
{
await SQL.WriteSQL($"INSERT INTO {MainWindow.table}.ansprechpartner (Name,Raum,Vertreter,Tel_Nr,Vorgesetzter,Tel_Vertreter,Tel_Vorgesetzter,CreatorID) VALUES " +
$"('{tbAsp.Text}','{tbRaum.Text}','{tbAspVertreter.Text}','{tbAspTel.Text}','{tbAspVorgesetzter.Text}','{tbVertreterTel.Text}','{tbVorgesetzterTel.Text}','{UserID}')");
}
tbAsp.Text = "";
tbRaum.Text = "";
tbAspTel.Text = "";
tbAspVertreter.Text = "";
tbAspVorgesetzter.Text = "";
@ -105,7 +119,7 @@ namespace ZKuP
var arr = row.Row.ItemArray;
if (arr[0].ToString() == Helper.InsertSpaceBeforeUpperCase(Environment.UserName) || arr[6].ToString() == UserID)
if (arr[0].ToString() == Helper.InsertSpaceBeforeUpperCase(Environment.UserName) || arr[0].ToString() == $"{MainWindow.CompleteName.Vorname} {MainWindow.CompleteName.Mittelinitial} {MainWindow.CompleteName.Nachname}" || arr[6].ToString() == UserID)
{
await SQL.WriteSQL($"DELETE FROM {MainWindow.table}.ansprechpartner WHERE `Name` = '{arr[0]}'");
@ -125,6 +139,7 @@ namespace ZKuP
var newValue = (e.EditingElement as TextBox).Text;
var name = (e.Row.Item as DataRowView).Row.ItemArray[0];
if (UserID == "1") UserID = (new Random().Next(2, 10000) * -1).ToString();
switch (header)
{
@ -227,34 +242,4 @@ namespace ZKuP
}
}
//public class Asp
//{
// string Name;
// string Vertreter;
// string Tel_Nr;
// string Vorgesetzter;
// string Tel_Vertreter;
// string Tel_Vorgesetzter;
// public static List<Asp> DataTableToAsp(System.Data.DataTable dataTable)
// {
// List<Asp> x = new List<Asp>();
// foreach (DataRow dr in dataTable.Rows)
// {
// x.Add(new Asp()
// {
// Name = dr[0].ToString(),
// Vertreter = dr[1].ToString(),
// Tel_Nr = dr[2].ToString(),
// Vorgesetzter = dr[3].ToString(),
// Tel_Vertreter = dr[4].ToString(),
// Tel_Vorgesetzter = dr[5].ToString()
// });
// }
// return x;
// }
//}
}

View File

@ -6,7 +6,7 @@
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:local="clr-namespace:ZKuP"
mc:Ignorable="d"
Title="Manage Users" Height="657" Width="450" Loaded="Window_Loaded" LocationChanged="Window_LocationChanged">
Title="Manage Users" Height="657" Width="550" MinWidth="550" Loaded="Window_Loaded" LocationChanged="Window_LocationChanged">
<mah:MetroWindow.Resources>
<local:IntToRole x:Key="IntToRole"/>
</mah:MetroWindow.Resources>
@ -19,6 +19,13 @@
<DataGrid x:Name="dgUsers" Margin="160,10,10,46" ItemsSource="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" CanUserAddRows="False" AutoGenerateColumns="False" PreviewKeyDown="DgUsers_PreviewKeyDown" CellEditEnding="dgUsers_CellEditEnding">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding idusers}" IsReadOnly="True" Header="UserID">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Username, Mode=TwoWay}" ClipboardContentBinding="{x:Null}" Header="Username" Width="*" SortDirection="Ascending"/>
<DataGridTemplateColumn ClipboardContentBinding="{x:Null}" Header="Role" Width="100">
<DataGridTemplateColumn.CellTemplate>

View File

@ -41,15 +41,4 @@ using System.Windows;
)]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion(ZKuP.MainWindow.Version)]
[assembly: AssemblyFileVersion(ZKuP.MainWindow.Version)]

BIN
ZKuP/Resources/Loading2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

View File

@ -1,4 +1,5 @@
using MySql.Data.MySqlClient;
using Renci.SshNet;
using System;
using System.Collections.Generic;
using System.Data;
@ -258,7 +259,7 @@ namespace ZKuP
isOnline = true;
return true;
}
catch (Exception ex)
catch (Exception)
{
conn.Close();
//Log.WriteLog(ex.ToString());
@ -749,6 +750,19 @@ namespace ZKuP
//byte[] rawData;
System.Drawing.Bitmap image = null;
var pattern = @"\b[A-Za-z0-9_]*timestamp[A-Za-z0-9_]*\s*=\s*''";
if (System.Text.RegularExpressions.Regex.IsMatch(SQLCommand.ToLower(), pattern))
{
var uri = new Uri(@"/Resources/NoSignature.png", UriKind.Relative);
StreamResourceInfo info = System.Windows.Application.GetResourceStream(uri);
using (var stream = info.Stream)
{
image = new Bitmap(stream);
}
return image;
}
using (conn)
{
using (cmd)
@ -863,7 +877,17 @@ namespace ZKuP
{
while (reader.Read())
{
queryResult.Add(reader.GetDateTime(ColumnID).ToString("yyyy-MM-dd HH:mm:ss") + ";" + reader.GetValue(ColumnID + 1).ToString());
var dateValue = reader.IsDBNull(ColumnID)
? ""
: reader.GetDateTime(ColumnID).ToString("yyyy-MM-dd HH:mm:ss");
var otherValue = reader.IsDBNull(ColumnID + 1)
? ""
: reader.GetValue(ColumnID + 1).ToString();
queryResult.Add($"{dateValue};{otherValue}");
//queryResult.Add(reader.GetDateTime(ColumnID).ToString("yyyy-MM-dd HH:mm:ss") + ";" + reader.GetValue(ColumnID + 1).ToString());
}
}
}

View File

@ -56,7 +56,7 @@ namespace ZKuP
if (SettingsDict.ContainsKey(key))
{
var value = SettingsDict[key];
return (double)value;
return Convert.ToDouble(value);
}
return 0;
}

View File

@ -71,6 +71,7 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
<NoWarn>4014,1998,0108</NoWarn>
<XamlDebuggingInformation>True</XamlDebuggingInformation>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
@ -894,5 +895,8 @@
<ItemGroup>
<Resource Include="Resources\Lock.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\Loading2.gif" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>