Compare commits

...

10 Commits

16 changed files with 145 additions and 71 deletions

View File

@@ -124,6 +124,7 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
</ApplicationDefinition> </ApplicationDefinition>
<Compile Include="Data\Entities\Anonymisierungsausnahme.cs" /> <Compile Include="Data\Entities\Anonymisierungsausnahme.cs" />
<Compile Include="Data\Entities\FoerderMittel.cs" />
<Compile Include="Data\Entities\Kommunikation.cs" /> <Compile Include="Data\Entities\Kommunikation.cs" />
<Compile Include="Data\Entities\Mitarbeiter.cs" /> <Compile Include="Data\Entities\Mitarbeiter.cs" />
<Compile Include="Data\Entities\ZahlungSEPA.cs" /> <Compile Include="Data\Entities\ZahlungSEPA.cs" />
@@ -237,6 +238,7 @@
<EmbeddedResource Include="Data\Mappings\Kommunikation.hbm.xml" /> <EmbeddedResource Include="Data\Mappings\Kommunikation.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Anonymisierungsausnahme.hbm.xml" /> <EmbeddedResource Include="Data\Mappings\Anonymisierungsausnahme.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Mitarbeiter.hbm.xml" /> <EmbeddedResource Include="Data\Mappings\Mitarbeiter.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\FoerderMittel.hbm.xml" />
<Content Include="hibernate.cfg.xml"> <Content Include="hibernate.cfg.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>

View File

@@ -22,6 +22,8 @@ namespace AidA.Data.Entities
public virtual AntragsStatus AntragsStatus { get; set; } public virtual AntragsStatus AntragsStatus { get; set; }
public virtual Ansprechpartner Ansprechpartner { get; set; } public virtual Ansprechpartner Ansprechpartner { get; set; }
public virtual FoerderMittel FoerderMittel { get; set; }
public virtual IList<AntragsPersonenDaten> AntragsPersonenDatenListe { get; set; } public virtual IList<AntragsPersonenDaten> AntragsPersonenDatenListe { get; set; }
public virtual IList<Kommunikation> Kommunikationen { get; set; } public virtual IList<Kommunikation> Kommunikationen { get; set; }

View File

@@ -0,0 +1,12 @@
namespace AidA.Data.Entities
{
public class FoerderMittel
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
public virtual long Version { get; set; }
public virtual long? AntragsArtId { get; set; }
}
}

View File

@@ -7,8 +7,8 @@
</id> </id>
<property name="AntragsNummer" type="Int64" /> <property name="AntragsNummer" type="Int64" />
<property name="Prio" type="Boolean" /> <property name="Prio" type="Boolean" />
<property name="EingangsDatum" type="DateTime2" /> <property name="EingangsDatum" />
<property name="FaelligkeitsDatum" type="DateTime2" /> <property name="FaelligkeitsDatum" />
<property name="BewilligungsJahr" type="Int32" /> <property name="BewilligungsJahr" type="Int32" />
<property name="Wiedervorlage" type="Boolean" /> <property name="Wiedervorlage" type="Boolean" />
<property name="Bemerkung" type="String" /> <property name="Bemerkung" type="String" />
@@ -17,10 +17,10 @@
<property name="Aktualisiert" type="Boolean" /> <property name="Aktualisiert" type="Boolean" />
<property name="SachbearbeiterId" type="Int64" /> <property name="SachbearbeiterId" type="Int64" />
<!-- property name="AnsprechpartnerId" type="Int64" /-->
<many-to-one name="AntragsStatus" column="AntragsStatusId" class="AidA.Data.Entities.AntragsStatus, AidA" cascade="none" /> <many-to-one name="AntragsStatus" column="AntragsStatusId" class="AidA.Data.Entities.AntragsStatus, AidA" cascade="none" />
<many-to-one name="Ansprechpartner" column="AnsprechpartnerId" class="AidA.Data.Entities.Ansprechpartner, AidA" cascade="none" /> <many-to-one name="Ansprechpartner" column="AnsprechpartnerId" class="AidA.Data.Entities.Ansprechpartner, AidA" cascade="none" />
<many-to-one name="FoerderMittel" column="FoerderMittelId" class="AidA.Data.Entities.FoerderMittel, AidA" cascade="none" />
<bag name="AntragsPersonenDatenListe" table="AntragsPersonenDaten" generic="true" cascade="all-delete-orphan" batch-size="250"> <bag name="AntragsPersonenDatenListe" table="AntragsPersonenDaten" generic="true" cascade="all-delete-orphan" batch-size="250">
<key column="AntragsId" /> <key column="AntragsId" />
<one-to-many class="AidA.Data.Entities.AntragsPersonenDaten, AidA" /> <one-to-many class="AidA.Data.Entities.AntragsPersonenDaten, AidA" />

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.FoerderMittel, AidA" table="FoerderMittel">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Name" type="String" />
<property name="Version" type="Int64" />
<property name="AntragsArtId" type="Int64" />
</class>
</hibernate-mapping>

View File

@@ -42,8 +42,6 @@ namespace AidA.Service.Anonymization
AntragsStatus antragsStatus; AntragsStatus antragsStatus;
IList<AntragsPersonenDaten> antragsPersonenDatenListe; IList<AntragsPersonenDaten> antragsPersonenDatenListe;
IList<AntragsGegenstand> antragsGegenstaende; IList<AntragsGegenstand> antragsGegenstaende;
DateTime? beginnAufbewahrungsfrist = null;
DateTime aufbewahrenBis = new DateTime(DateTime.Now.Year - aufbewahrungsfrist, DateTime.Now.Month, DateTime.Now.Day);
ZuAnonymisierendeAntraege = new List<Antrag>(); ZuAnonymisierendeAntraege = new List<Antrag>();
AnsprechpartnerDictionary = new Dictionary<long, IList<Antrag>>(); AnsprechpartnerDictionary = new Dictionary<long, IList<Antrag>>();
@@ -91,6 +89,7 @@ namespace AidA.Service.Anonymization
antragsStatus = antrag.AntragsStatus; antragsStatus = antrag.AntragsStatus;
DateTime? beginnAufbewahrungsfrist = null;
if (antragsStatus != null && (antragsStatus.Name.Equals("erledigt") || antragsStatus.Name.Equals("mit Fehlern erledigt"))) if (antragsStatus != null && (antragsStatus.Name.Equals("erledigt") || antragsStatus.Name.Equals("mit Fehlern erledigt")))
{ {
erledigteAntraege++; erledigteAntraege++;
@@ -253,10 +252,19 @@ namespace AidA.Service.Anonymization
antragsPersonenDaten.Bank = null; antragsPersonenDaten.Bank = null;
PersonenIdentitaet personenIdentitaet = antragsPersonenDaten.PersonenIdentitaet; PersonenIdentitaet personenIdentitaet = antragsPersonenDaten.PersonenIdentitaet;
bool nochBenoetigt = CheckPersonenIdentitaetNochBenoetigt(personenIdentitaet, antrag); bool nochBenoetigt = CheckPersonenIdentitaetNochBenoetigt(personenIdentitaet, antrag);
if (nochBenoetigt) if (nochBenoetigt)
{ {
antragsPersonenDaten.PersonenIdentitaet = anonymisiertePersonenIdentitaeten[antragsPersonenDaten.Id]; if (antrag.FoerderMittel != null &&
(antrag.FoerderMittel.AntragsArtId == 2 || antrag.FoerderMittel.AntragsArtId == 3))
{
// bei Antragsart Gruppenhilfe (2) oder Projekt (3) nicht entknuepfen
}
else
{
antragsPersonenDaten.PersonenIdentitaet = anonymisiertePersonenIdentitaeten[antragsPersonenDaten.Id];
}
} }
else else
{ {
@@ -288,8 +296,12 @@ namespace AidA.Service.Anonymization
} }
} }
// Memo loeschen - noch pruefen ob so gueltig und verarbeitbar // Memo bei Antragsart Gruppenhilfe (2) oder Projekt (3) auf leeres html, sonst auf null setzten
antrag.Memo = null; if (antrag.FoerderMittel != null &&
(antrag.FoerderMittel.AntragsArtId == 2 || antrag.FoerderMittel.AntragsArtId == 3))
antrag.Memo = "<HTML><head><meta charset=\"utf - 8\"><style>body {font: 12pt Arial;}</style></head><BODY></BODY></HTML>";
else
antrag.Memo = null;
anonymisierungslauf.Anonymisierungen.Add(anonymisierung); anonymisierungslauf.Anonymisierungen.Add(anonymisierung);
anzahlAnonymisierteAntraege++; anzahlAnonymisierteAntraege++;
@@ -486,6 +498,7 @@ namespace AidA.Service.Anonymization
IList<PersonenIdentitaet> dbAnonymisiertePersonen = Database.GetPersonenIdentitaeten(vorname, nachname); IList<PersonenIdentitaet> dbAnonymisiertePersonen = Database.GetPersonenIdentitaeten(vorname, nachname);
Dictionary<DateTime, PersonenIdentitaet> neuAnonymisiertePersonen = new Dictionary<DateTime, PersonenIdentitaet>(); Dictionary<DateTime, PersonenIdentitaet> neuAnonymisiertePersonen = new Dictionary<DateTime, PersonenIdentitaet>();
Dictionary<long, PersonenIdentitaet> anonymisiertePersonenFuerAntragsPersonenDaten = new Dictionary<long, PersonenIdentitaet>(); Dictionary<long, PersonenIdentitaet> anonymisiertePersonenFuerAntragsPersonenDaten = new Dictionary<long, PersonenIdentitaet>();
DateTime nullDatum = new DateTime(1900, 1, 1);
foreach (var antrag in ZuAnonymisierendeAntraege) foreach (var antrag in ZuAnonymisierendeAntraege)
{ {
@@ -504,8 +517,8 @@ namespace AidA.Service.Anonymization
} }
else else
{ {
// bei Geburtsdatum null anonymisieren wir auf den 1.1.0042 // bei Geburtsdatum null den 1.1.1900 zum Zwischenspeichern verwenden
anonymisiertesDatum = new DateTime(42, 1, 1); anonymisiertesDatum = nullDatum;
} }
foreach (var pi in dbAnonymisiertePersonen.Where(p => p.Geburtsdatum == anonymisiertesDatum)) foreach (var pi in dbAnonymisiertePersonen.Where(p => p.Geburtsdatum == anonymisiertesDatum))
@@ -525,8 +538,9 @@ namespace AidA.Service.Anonymization
anonymisiertePersonenIdentitaet = new PersonenIdentitaet(); anonymisiertePersonenIdentitaet = new PersonenIdentitaet();
anonymisiertePersonenIdentitaet.Vorname = vorname; anonymisiertePersonenIdentitaet.Vorname = vorname;
anonymisiertePersonenIdentitaet.Nachname = nachname; anonymisiertePersonenIdentitaet.Nachname = nachname;
anonymisiertePersonenIdentitaet.Geburtsdatum = anonymisiertesDatum;
anonymisiertePersonenIdentitaet.Version = 1; anonymisiertePersonenIdentitaet.Version = 1;
if (anonymisiertesDatum != nullDatum)
anonymisiertePersonenIdentitaet.Geburtsdatum = anonymisiertesDatum;
Database.InsertPersonenIdentitaet(anonymisiertePersonenIdentitaet); Database.InsertPersonenIdentitaet(anonymisiertePersonenIdentitaet);
neuAnonymisiertePersonen.Add(anonymisiertesDatum, anonymisiertePersonenIdentitaet); neuAnonymisiertePersonen.Add(anonymisiertesDatum, anonymisiertePersonenIdentitaet);

View File

@@ -1,8 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AidA.Service namespace AidA.Service
{ {
@@ -10,8 +6,12 @@ namespace AidA.Service
{ {
public static DateTime? MaxTimestamp(DateTime? ts1, DateTime? ts2) public static DateTime? MaxTimestamp(DateTime? ts1, DateTime? ts2)
{ {
DateTime? maxTs = null; DateTime? maxTs = ts1;
if (ts1 != null) if (ts1 is null)
{
maxTs = ts2;
}
else
{ {
if (ts2 != null) if (ts2 != null)
{ {
@@ -19,28 +19,15 @@ namespace AidA.Service
{ {
maxTs = ts2; maxTs = ts2;
} }
else
{
maxTs = ts1;
}
} }
} }
else if (ts2 != null)
{
maxTs = ts2;
}
return maxTs; return maxTs;
} }
public static DateTime? MaxTimestamp(DateTime? ts1, DateTime? ts2, DateTime? ts3) public static DateTime? MaxTimestamp(DateTime? ts1, DateTime? ts2, DateTime? ts3)
{ {
DateTime? maxTs = MaxTimestamp(ts1, ts2); DateTime? maxTs = MaxTimestamp(MaxTimestamp(ts1, ts2), ts3);
if (ts3 != null && ts3 > maxTs)
{
maxTs = ts3;
}
return maxTs; return maxTs;
} }
} }

View File

@@ -5,7 +5,7 @@
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
x:Class="AidA.View.AnonymisierungsAusnahmenWindow" x:Class="AidA.View.AnonymisierungsAusnahmenWindow"
Title="Anonymisierungsausnahmen" Height="222.992" Width="425.36" ResizeMode="NoResize" Title="Anonymisierungsausnahmen" Height="222.992" Width="425.36" ResizeMode="CanMinimize"
> >
<Grid> <Grid>

View File

@@ -7,7 +7,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="AidA.View.AnonymisierungslaufDetailWindow" x:Class="AidA.View.AnonymisierungslaufDetailWindow"
Title="Anonymisierungslauf" Height="470.333" Width="564" ResizeMode="NoResize" Title="Anonymisierungslauf" Height="470.333" Width="564" ResizeMode="CanMinimize"
> >
<Grid> <Grid>

View File

@@ -21,6 +21,10 @@ namespace AidA.View
if (anonymisierungslauf.Id > 0) if (anonymisierungslauf.Id > 0)
{ {
Title = "Anonymisierungslauf " + anonymisierungslauf.Id; Title = "Anonymisierungslauf " + anonymisierungslauf.Id;
StartenButton.IsEnabled = false;
VerwerfenButton.IsEnabled = false;
SpeichernButton.IsEnabled = false;
SchliessenButton.IsEnabled = false;
} }
else else
{ {

View File

@@ -4,7 +4,7 @@
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="AidA.View.AnonymisierungslaufVorbereitenWindow" x:Class="AidA.View.AnonymisierungslaufVorbereitenWindow"
Title="Anonymisierungslauf vorbereiten" Height="209" Width="400" ResizeMode="NoResize" WindowStyle="ThreeDBorderWindow" Title="Anonymisierungslauf vorbereiten" Height="209" Width="400" ResizeMode="CanMinimize" WindowStyle="ThreeDBorderWindow"
> >
<Grid> <Grid>

View File

@@ -1,18 +1,6 @@
using AidA.Data.ViewModel; using DevExpress.Xpf.Core;
using AidA.Service.Anonymization;
using DevExpress.Xpf.Core;
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace AidA.View namespace AidA.View
@@ -34,10 +22,29 @@ namespace AidA.View
private void VorbereitenButton_Click(object sender, RoutedEventArgs e) private void VorbereitenButton_Click(object sender, RoutedEventArgs e)
{ {
VorbereitungProgressbar.Visibility = Visibility.Visible; if (String.IsNullOrEmpty(TextEditAufbewahrungsfrist.Text))
MainController.AnonymisierungslaufVorbereiten2(Int32.Parse(TextEditAufbewahrungsfrist.Text), VorbereitungProgressbar); {
// Default von 10 Jahren vom Benutzer bestaetigen lassen
this.Close(); var text = "Anonymisierungslauf mit einer Aufbewahrungsfrist von 10 Jahren vorbereiten?";
MessageBoxResult messageBoxResult = MessageBox.Show(text, "Aufbewahrungsfrist bitte prüfen", MessageBoxButton.OKCancel);
if (messageBoxResult.Equals(MessageBoxResult.OK))
{
VorbereitungProgressbar.Visibility = Visibility.Visible;
MainController.AnonymisierungslaufVorbereiten2(10, VorbereitungProgressbar);
this.Close();
}
else if (messageBoxResult.Equals(MessageBoxResult.Cancel))
{
TextEditAufbewahrungsfrist.Text = "";
TextEditAufbewahrungsfrist.Focus();
}
}
else
{
VorbereitungProgressbar.Visibility = Visibility.Visible;
MainController.AnonymisierungslaufVorbereiten2(Int32.Parse(TextEditAufbewahrungsfrist.Text), VorbereitungProgressbar);
this.Close();
}
} }
} }
} }

View File

@@ -4,7 +4,7 @@
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="AidA.View.LoginWindow" x:Class="AidA.View.LoginWindow"
Title="AidA Administration" Height="350" Width="430" ResizeMode="NoResize" WindowStyle="ThreeDBorderWindow" Title="AidA Administration" Height="350" Width="430" ResizeMode="CanMinimize" WindowStyle="ThreeDBorderWindow"
> >
<Grid Margin="0,0,0,0"> <Grid Margin="0,0,0,0">

View File

@@ -70,6 +70,9 @@ namespace AidA.View
public static void AnonymisierungslaufSpeichern(Anonymisierungslauf anonymisierungslauf) public static void AnonymisierungslaufSpeichern(Anonymisierungslauf anonymisierungslauf)
{ {
if (AnonymizationManager is null)
AnonymizationManager = new AnonymizationManager(WindowsUserName);
AnonymizationManager.AnonymisierungslaufSpeichern(anonymisierungslauf); AnonymizationManager.AnonymisierungslaufSpeichern(anonymisierungslauf);
} }
@@ -97,6 +100,12 @@ namespace AidA.View
AnonymizationManager.AnonymisierungsAusnahmeLoeschen(anonymisierungsausnahme); AnonymizationManager.AnonymisierungsAusnahmeLoeschen(anonymisierungsausnahme);
} }
public static void AnonymisierungslaufAnzeigen(Anonymisierungslauf anonymisierungslauf)
{
AnonymisierungslaufDetailWindow = new AnonymisierungslaufDetailWindow(anonymisierungslauf);
AnonymisierungslaufDetailWindow.Show();
}
public static void DatenbankSichern() public static void DatenbankSichern()
{ {
String dbBackupVerzeichnis = Properties.Settings.Default.DbBackupVerzeichnis; String dbBackupVerzeichnis = Properties.Settings.Default.DbBackupVerzeichnis;

View File

@@ -6,7 +6,7 @@
xmlns:local="clr-namespace:AidA" xmlns:local="clr-namespace:AidA"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxn="http://schemas.devexpress.com/winfx/2008/xaml/navbar" x:Class="AidA.MainWindow" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxn="http://schemas.devexpress.com/winfx/2008/xaml/navbar" x:Class="AidA.MainWindow"
mc:Ignorable="d" mc:Ignorable="d"
Title="AidA Administration" Height="973" Width="1607" MinWidth="1603" MinHeight="973" ResizeMode="NoResize" Closing="Window_Closing"> Title="AidA Administration" Height="973" Width="1607" MinWidth="1603" MinHeight="973" ResizeMode="CanMinimize" Closing="Window_Closing">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="768*"/> <ColumnDefinition Width="768*"/>
@@ -14,9 +14,9 @@
<ColumnDefinition Width="181*"/> <ColumnDefinition Width="181*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Image HorizontalAlignment="Left" Height="100" Margin="68,10,0,0" VerticalAlignment="Top" Width="100" Source="DAS-Logo.png" Grid.Column="2"/> <Image HorizontalAlignment="Left" Height="100" Margin="68,10,0,0" VerticalAlignment="Top" Width="100" Source="DAS-Logo.png" Grid.Column="2"/>
<dxg:GridControl x:Name="MainGridControl" AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Left" Height="712" Margin="5,115,0,0" VerticalAlignment="Top" Width="1578" Grid.ColumnSpan="3"> <dxg:GridControl x:Name="MainGridControl" AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Left" Height="712" Margin="5,115,0,0" VerticalAlignment="Top" Width="1578" Grid.ColumnSpan="3" MouseDoubleClick="MainGridControl_DoubleClick">
<dxg:GridControl.View> <dxg:GridControl.View>
<dxg:TableView x:Name="MainTableView" ShowTotalSummary="True" AllowBestFit="True" BestFitMode="Smart" AutoWidth="True" Loaded="MainTableView_Loaded" AllowEditing="True" Margin="0,0,-2,0"> <dxg:TableView x:Name="MainTableView" ShowTotalSummary="True" AllowBestFit="True" BestFitMode="Smart" AutoWidth="True" Loaded="MainTableView_Loaded" AllowEditing="False" Margin="0,0,-2,0">
<dxg:TableView.RuntimeLocalizationStrings> <dxg:TableView.RuntimeLocalizationStrings>
<dxg:GridRuntimeStringCollection> <dxg:GridRuntimeStringCollection>
<dxg:RuntimeStringIdInfo Id="GridGroupPanelText" Value="Ziehen Sie eine Spaltenüberschrift hierher, um nach dieser Spalte zu gruppieren." /> <dxg:RuntimeStringIdInfo Id="GridGroupPanelText" Value="Ziehen Sie eine Spaltenüberschrift hierher, um nach dieser Spalte zu gruppieren." />
@@ -27,7 +27,7 @@
</dxg:GridControl> </dxg:GridControl>
<dx:SimpleButton Content="Anonymisierungslauf vorbereiten" HorizontalAlignment="Left" Height="53" Margin="5,36,0,0" VerticalAlignment="Top" Width="198" Click="AnonymisierungslaufVorbereiten_Click"/> <dx:SimpleButton Content="Anonymisierungslauf vorbereiten" HorizontalAlignment="Left" Height="53" Margin="5,36,0,0" VerticalAlignment="Top" Width="198" Click="AnonymisierungslaufVorbereiten_Click"/>
<dx:SimpleButton Content="Anonymisierungsausnahmen" HorizontalAlignment="Left" Height="53" Margin="208,36,0,0" VerticalAlignment="Top" Width="174" Click="Anonymisierungsausnahmen_Click"/> <dx:SimpleButton Content="Anonymisierungsausnahmen" HorizontalAlignment="Left" Height="53" Margin="208,36,0,0" VerticalAlignment="Top" Width="174" Click="Anonymisierungsausnahmen_Click"/>
<dx:SimpleButton Content="Datenbank sichern" HorizontalAlignment="Left" Height="53" Margin="387,36,0,0" VerticalAlignment="Top" Width="119" Click="DbSichern_Click"/> <dx:SimpleButton Content="Datenbank sichern" HorizontalAlignment="Left" Height="53" Margin="387,36,0,0" VerticalAlignment="Top" Width="125" Click="DbSichern_Click"/>
<dx:SimpleButton Content="Anonymisierungsläufe" HorizontalAlignment="Left" Height="73" Margin="8,846,0,0" VerticalAlignment="Top" Width="142" Click="Anonymisierungslaeufe_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Dashboards/AutomaticUpdates.svg}"/> <dx:SimpleButton Content="Anonymisierungsläufe" HorizontalAlignment="Left" Height="73" Margin="8,846,0,0" VerticalAlignment="Top" Width="142" Click="Anonymisierungslaeufe_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Dashboards/AutomaticUpdates.svg}"/>
<dx:SimpleButton Content="Anonymisierungen" HorizontalAlignment="Left" Height="73" Margin="155,846,0,0" VerticalAlignment="Top" Width="122" Click="Anonymisierungen_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Business Objects/BO_User.svg}"/> <dx:SimpleButton Content="Anonymisierungen" HorizontalAlignment="Left" Height="73" Margin="155,846,0,0" VerticalAlignment="Top" Width="122" Click="Anonymisierungen_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Business Objects/BO_User.svg}"/>
<dx:SimpleButton Content="Anträge" HorizontalAlignment="Left" Height="73" Margin="282,846,0,0" VerticalAlignment="Top" Width="100" Click="Antraege_Click" Glyph="{dx:DXImage SvgImages/Edit/Copy.svg}" GlyphAlignment="Top"/> <dx:SimpleButton Content="Anträge" HorizontalAlignment="Left" Height="73" Margin="282,846,0,0" VerticalAlignment="Top" Width="100" Click="Antraege_Click" Glyph="{dx:DXImage SvgImages/Edit/Copy.svg}" GlyphAlignment="Top"/>

View File

@@ -17,98 +17,114 @@ namespace AidA
private void MainTableView_Loaded(object sender, RoutedEventArgs e) private void MainTableView_Loaded(object sender, RoutedEventArgs e)
{ {
this.MainTableView.BestFitColumns(); MainTableView.BestFitColumns();
} }
private void Anonymisierungslaeufe_Click(object sender, RoutedEventArgs e) private void Anonymisierungslaeufe_Click(object sender, RoutedEventArgs e)
{ {
var anonymisierungslaeufe = Database.GetAll<Anonymisierungslauf>(); var anonymisierungslaeufe = Database.GetAll<Anonymisierungslauf>();
MainGridControl.ItemsSource = anonymisierungslaeufe; MainGridControl.ItemsSource = anonymisierungslaeufe;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void Anonymisierungen_Click(object sender, RoutedEventArgs e) private void Anonymisierungen_Click(object sender, RoutedEventArgs e)
{ {
var anonymisierungen = Database.GetAll<Anonymisierung>(); var anonymisierungen = Database.GetAll<Anonymisierung>();
MainGridControl.ItemsSource = anonymisierungen; MainGridControl.ItemsSource = anonymisierungen;
this.MainTableView.BestFitColumns();
// Editieren erlauben, damit Antragsnummer aus dem Grid kopiert werden kann
MainTableView.AllowEditing = true;
MainTableView.BestFitColumns();
} }
private void Antraege_Click(object sender, RoutedEventArgs e) private void Antraege_Click(object sender, RoutedEventArgs e)
{ {
var antraege = Database.GetAll<Antrag>(); var antraege = Database.GetAll<Antrag>();
MainGridControl.ItemsSource = antraege; MainGridControl.ItemsSource = antraege;
//this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
//MainTableView.BestFitColumns();
} }
private void AntragsStati_Click(object sender, RoutedEventArgs e) private void AntragsStati_Click(object sender, RoutedEventArgs e)
{ {
var antragsStati = Database.GetAll<AntragsStatus>(); var antragsStati = Database.GetAll<AntragsStatus>();
MainGridControl.ItemsSource = antragsStati; MainGridControl.ItemsSource = antragsStati;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void AntragsGegenstaende_Click(object sender, RoutedEventArgs e) private void AntragsGegenstaende_Click(object sender, RoutedEventArgs e)
{ {
var antragsGegenstaende = Database.GetAll<AntragsGegenstand>(); var antragsGegenstaende = Database.GetAll<AntragsGegenstand>();
MainGridControl.ItemsSource = antragsGegenstaende; MainGridControl.ItemsSource = antragsGegenstaende;
//this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
//MainTableView.BestFitColumns();
} }
private void AntragsPersonenDaten_Click(object sender, RoutedEventArgs e) private void AntragsPersonenDaten_Click(object sender, RoutedEventArgs e)
{ {
var antragsPersonenDaten = Database.GetAll<AntragsPersonenDaten>(); var antragsPersonenDaten = Database.GetAll<AntragsPersonenDaten>();
MainGridControl.ItemsSource = antragsPersonenDaten; MainGridControl.ItemsSource = antragsPersonenDaten;
//this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
//MainTableView.BestFitColumns();
} }
private void Ansprechpartner_Click(object sender, RoutedEventArgs e) private void Ansprechpartner_Click(object sender, RoutedEventArgs e)
{ {
var ansprechpartner = Database.GetAll<Ansprechpartner>(); var ansprechpartner = Database.GetAll<Ansprechpartner>();
MainGridControl.ItemsSource = ansprechpartner; MainGridControl.ItemsSource = ansprechpartner;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void Beratungsstellen_Click(object sender, RoutedEventArgs e) private void Beratungsstellen_Click(object sender, RoutedEventArgs e)
{ {
var beratungsstellen = Database.GetAll<Beratungsstelle>(); var beratungsstellen = Database.GetAll<Beratungsstelle>();
MainGridControl.ItemsSource = beratungsstellen; MainGridControl.ItemsSource = beratungsstellen;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void KontaktInfos_Click(object sender, RoutedEventArgs e) private void KontaktInfos_Click(object sender, RoutedEventArgs e)
{ {
var kontaktInfos = Database.GetAll<KontaktInfo>(); var kontaktInfos = Database.GetAll<KontaktInfo>();
MainGridControl.ItemsSource = kontaktInfos; MainGridControl.ItemsSource = kontaktInfos;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void FinanzTransaktionen_Click(object sender, RoutedEventArgs e) private void FinanzTransaktionen_Click(object sender, RoutedEventArgs e)
{ {
var finanzTransaktionen = Database.GetAll<FinanzTransaktion>(); var finanzTransaktionen = Database.GetAll<FinanzTransaktion>();
MainGridControl.ItemsSource = finanzTransaktionen; MainGridControl.ItemsSource = finanzTransaktionen;
//this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
//MainTableView.BestFitColumns();
} }
private void ZahlungenSEPA_Click(object sender, RoutedEventArgs e) private void ZahlungenSEPA_Click(object sender, RoutedEventArgs e)
{ {
var zahlungenSEPA = Database.GetAll<ZahlungSEPA>(); var zahlungenSEPA = Database.GetAll<ZahlungSEPA>();
MainGridControl.ItemsSource = zahlungenSEPA; MainGridControl.ItemsSource = zahlungenSEPA;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void Kommunikationen_Click(object sender, RoutedEventArgs e) private void Kommunikationen_Click(object sender, RoutedEventArgs e)
{ {
var kommunikationen = Database.GetAll<Kommunikation>(); var kommunikationen = Database.GetAll<Kommunikation>();
MainGridControl.ItemsSource = kommunikationen; MainGridControl.ItemsSource = kommunikationen;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void Mitarbeiter_Click(object sender, RoutedEventArgs e) private void Mitarbeiter_Click(object sender, RoutedEventArgs e)
{ {
var mitarbeiter = Database.GetAll<Mitarbeiter>(); var mitarbeiter = Database.GetAll<Mitarbeiter>();
MainGridControl.ItemsSource = mitarbeiter; MainGridControl.ItemsSource = mitarbeiter;
this.MainTableView.BestFitColumns(); MainTableView.AllowEditing = false;
MainTableView.BestFitColumns();
} }
private void AnonymisierungslaufVorbereiten_Click(object sender, RoutedEventArgs e) private void AnonymisierungslaufVorbereiten_Click(object sender, RoutedEventArgs e)
@@ -130,5 +146,13 @@ namespace AidA
{ {
MainController.AnwendungSchliessen(); MainController.AnwendungSchliessen();
} }
private void MainGridControl_DoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (MainGridControl.SelectedItem is Anonymisierungslauf)
{
MainController.AnonymisierungslaufAnzeigen((Anonymisierungslauf)MainGridControl.SelectedItem);
}
}
} }
} }