Initialer Stand

This commit is contained in:
2025-04-29 18:47:00 +02:00
commit 8a50dd801c
143 changed files with 411406 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
/AidA/bin
/AidA/obj
/.vs

25
AidA.sln Normal file
View File

@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.33214.272
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AidA", "AidA\AidA.csproj", "{108F9587-86B7-416F-B3B2-875C4396A4E2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{108F9587-86B7-416F-B3B2-875C4396A4E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{108F9587-86B7-416F-B3B2-875C4396A4E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{108F9587-86B7-416F-B3B2-875C4396A4E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{108F9587-86B7-416F-B3B2-875C4396A4E2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D3FBE47C-2063-41E8-8636-D5D35BB3FFDE}
EndGlobalSection
EndGlobal

257
AidA/AidA.csproj Normal file
View File

@@ -0,0 +1,257 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{108F9587-86B7-416F-B3B2-875C4396A4E2}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>AidA</RootNamespace>
<AssemblyName>AidA</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>C:\tmp\AidaDeploy\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>false</MapFileExtensions>
<AutorunEnabled>true</AutorunEnabled>
<ApplicationRevision>4</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>113DC5DAEB8BF5A0067D354B9F6C1E3EC7AD3857</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>AidA_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<ItemGroup>
<Reference Include="Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
<HintPath>..\packages\Antlr3.Runtime.3.5.1\lib\net40-client\Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Mvvm.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Pdf.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Controls.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Core.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Grid.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Grid.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.LayoutControl.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.NavBar.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.PropertyGrid.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraWizard.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="Iesi.Collections, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<HintPath>..\packages\Iesi.Collections.4.0.4\lib\net461\Iesi.Collections.dll</HintPath>
</Reference>
<Reference Include="NHibernate, Version=5.5.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<HintPath>..\packages\NHibernate.5.5.2\lib\net461\NHibernate.dll</HintPath>
</Reference>
<Reference Include="Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b, processorArchitecture=MSIL">
<HintPath>..\packages\Remotion.Linq.2.2.0\lib\net45\Remotion.Linq.dll</HintPath>
</Reference>
<Reference Include="Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b, processorArchitecture=MSIL">
<HintPath>..\packages\Remotion.Linq.EagerFetching.2.2.0\lib\net45\Remotion.Linq.EagerFetching.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="UIAutomationProvider" />
<Reference Include="UIAutomationTypes" />
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="Data\Entities\Anonymisierungsausnahme.cs" />
<Compile Include="Data\Entities\Kommunikation.cs" />
<Compile Include="Data\Entities\Mitarbeiter.cs" />
<Compile Include="Data\Entities\ZahlungSEPA.cs" />
<Compile Include="Data\Entities\FinanzTransaktion.cs" />
<Compile Include="Data\Entities\PersonenIdentitaet.cs" />
<Compile Include="Data\Entities\KontaktInfo.cs" />
<Compile Include="Data\Entities\Beratungsstelle.cs" />
<Compile Include="Data\Entities\Ansprechpartner.cs" />
<Compile Include="Data\ViewModel\AnonymisierungVM.cs" />
<Compile Include="Data\ViewModel\AnonymisierungslaufVM.cs" />
<Compile Include="Data\ViewModel\AbstractBaseVM.cs" />
<Compile Include="Service\Anonymization\AnonymizationManager.cs" />
<Compile Include="View\AnonymisierungsAusnahmenWindow.xaml.cs">
<DependentUpon>AnonymisierungsAusnahmenWindow.xaml</DependentUpon>
</Compile>
<Compile Include="View\MainController.cs" />
<Compile Include="Service\DateUtils.cs" />
<Compile Include="View\AnonymisierungslaufDetailWindow.xaml.cs">
<DependentUpon>AnonymisierungslaufDetailWindow.xaml</DependentUpon>
</Compile>
<Compile Include="View\AnonymisierungslaufVorbereitenWindow.xaml.cs">
<DependentUpon>AnonymisierungslaufVorbereitenWindow.xaml</DependentUpon>
</Compile>
<Compile Include="View\LoginWindow.xaml.cs">
<DependentUpon>LoginWindow.xaml</DependentUpon>
</Compile>
<Page Include="View\AnonymisierungsAusnahmenWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Data\Database.cs" />
<Compile Include="Data\Entities\Anonymisierung.cs" />
<Compile Include="Data\Entities\Anonymisierungslauf.cs" />
<Compile Include="Data\Entities\AntragsGegenstand.cs" />
<Compile Include="Data\Entities\AntragsPersonenDaten.cs" />
<Compile Include="Data\Entities\AntragsStatus.cs" />
<Compile Include="Data\HibernateHelper.cs" />
<Compile Include="Data\Entities\Antrag.cs" />
<Compile Include="View\MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="View\AnonymisierungslaufDetailWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\AnonymisierungslaufVorbereitenWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\LoginWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Licenses.licx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Data\Mappings\Antrag.hbm.xml" />
<None Include="AidA_TemporaryKey.pfx" />
<None Include="packages.config" />
<None Include="Properties\DataSources\AidA.Data.ViewModel.AnonymisierungslaufVM.datasource" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Data\Configs\" />
</ItemGroup>
<ItemGroup>
<Resource Include="View\DAS-Logo.png" />
<EmbeddedResource Include="Data\Mappings\AntragsStatus.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\AntragsPersonenDaten.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\AntragsGegenstand.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Anonymisierung.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Anonymisierungslauf.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Ansprechpartner.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\KontaktInfo.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Beratungsstelle.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\PersonenIdentitaet.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\FinanzTransaktion.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\ZahlungSEPA.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Kommunikation.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Anonymisierungsausnahme.hbm.xml" />
<EmbeddedResource Include="Data\Mappings\Mitarbeiter.hbm.xml" />
<Content Include="hibernate.cfg.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 und x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

17
AidA/AidA.csproj.user Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
<PublishUrlHistory>C:\tmp\AidaDeploy\|C:\tmp\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>de-DE</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>
</PropertyGroup>
</Project>

BIN
AidA/AidA_TemporaryKey.pfx Normal file

Binary file not shown.

21
AidA/App.config Normal file
View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="AidA.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<userSettings>
<AidA.Properties.Settings>
<setting name="DbBackupVerzeichnis" serializeAs="String">
<value>c:/tmp/</value>
</setting>
<setting name="AntragsIdFuerAntragspersondatenEntknuepfung" serializeAs="String">
<value>83730</value>
</setting>
</AidA.Properties.Settings>
</userSettings>
</configuration>

9
AidA/App.xaml Normal file
View File

@@ -0,0 +1,9 @@
<Application x:Class="AidA.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:AidA"
StartupUri="View/LoginWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>

17
AidA/App.xaml.cs Normal file
View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace AidA
{
/// <summary>
/// Interaktionslogik für "App.xaml"
/// </summary>
public partial class App : Application
{
}
}

238
AidA/Data/Database.cs Normal file
View File

@@ -0,0 +1,238 @@
using AidA.Data.Entities;
using NHibernate;
using NHibernate.Criterion;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Windows;
namespace AidA.Data
{
public class Database
{
public static IList<T> GetAll<T>() where T : class
{
return HibernateHelper.GetCurrentSession().CreateCriteria<T>().List<T>();
}
public static void InsertAnonymisierungslauf(Anonymisierungslauf anonymisierungslauf, string user)
{
ISession session = HibernateHelper.GetCurrentSession();
ITransaction transaction = session.BeginTransaction();
anonymisierungslauf.InsTs = DateTime.Now;
anonymisierungslauf.InsUser = user;
try
{
session.Save(anonymisierungslauf);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
public static void UpdateAnonymisierungslauf(Anonymisierungslauf anonymisierungslauf, string user)
{
ISession session = HibernateHelper.GetCurrentSession();
ITransaction transaction = session.BeginTransaction();
anonymisierungslauf.UpdTs = DateTime.Now;
anonymisierungslauf.UpdUser = user;
try
{
session.Save(anonymisierungslauf);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
public static void SaveAnonymisierungslaufDurchfuehrung(Anonymisierungslauf anonymisierungslauf, IList<Antrag> ZuAnonymisierendeAntraege, string user)
{
ISession session = HibernateHelper.GetCurrentSession();
ITransaction transaction = session.BeginTransaction();
DateTime ts = DateTime.Now;
anonymisierungslauf.UpdTs = ts;
anonymisierungslauf.UpdUser = user;
bool dbGesichert = false;
try
{
ErstelleDbSicherheitsKopie(anonymisierungslauf.Sicherung);
dbGesichert = true;
}
catch (Exception ex)
{
transaction.Rollback();
var text = "Fehler beim Erstellen der Datenbanksicherung:\n\n" +
ex.Message + "\n\n" +
"Anonymisierungsdaten werden nicht gespeichert!\n" +
"Bitte Rechte des Datenbankbenutzers prüfen.";
MessageBox.Show(text, "Erstellen der Datenbanksicherung fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Error);
anonymisierungslauf.Sicherung = null;
anonymisierungslauf.AnzahlAnonymisierteAntraege = 0;
}
if (dbGesichert)
{
try
{
foreach (var anonymisierung in anonymisierungslauf.Anonymisierungen)
{
session.Save(anonymisierung);
anonymisierung.InsTs = ts;
anonymisierung.InsUser = user;
}
foreach (var antrag in ZuAnonymisierendeAntraege)
{
foreach (var kommunikation in antrag.Kommunikationen)
{
session.Delete(kommunikation);
}
session.Save(antrag);
}
session.SaveOrUpdate(anonymisierungslauf);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
var text = "Fehler beim Speichern der Anonymisierungsdaten:\n\n" + ex.Message;
MessageBox.Show(text, "Speichern der Anonymisierungsdaten fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Error);
anonymisierungslauf.AnzahlAnonymisierteAntraege = 0;
}
}
}
public static void InsertAnonymisierung(Anonymisierung anonymisierung, String user)
{
ISession session = HibernateHelper.GetCurrentSession();
ITransaction transaction = session.BeginTransaction();
anonymisierung.InsTs = DateTime.Now;
anonymisierung.InsUser = user;
try
{
session.Save(anonymisierung);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
public static void InsertAnonymisierungsausnahme(Anonymisierungsausnahme anonymisierungsausnahme, String user)
{
ISession session = HibernateHelper.GetCurrentSession();
ITransaction transaction = session.BeginTransaction();
anonymisierungsausnahme.InsTs = DateTime.Now;
anonymisierungsausnahme.InsUser = user;
try
{
session.Save(anonymisierungsausnahme);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
public static void DeleteAnonymisierungsausnahme(Anonymisierungsausnahme anonymisierungsausnahme)
{
ISession session = HibernateHelper.GetCurrentSession();
ITransaction transaction = session.BeginTransaction();
try
{
session.Delete(anonymisierungsausnahme);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
public static long GetAntragsIdForAntragsNummer(long antragsNummer)
{
var c = HibernateHelper.GetCurrentSession().CreateCriteria<Antrag>().Add(Restrictions.Eq("AntragsNummer", antragsNummer));
Antrag antrag = (Antrag)c.UniqueResult();
return antrag.Id;
}
public static AntragsStatus GetAntragsStatus(long antragsStatusId)
{
var c = HibernateHelper.GetCurrentSession().CreateCriteria<AntragsStatus>().Add(Restrictions.Eq("Id", antragsStatusId));
return (AntragsStatus) c.UniqueResult();
}
public static Anonymisierung GetAnonymisierungForAntrag(long antragsId)
{
var c = HibernateHelper.GetCurrentSession().CreateCriteria<Anonymisierung>().Add(Restrictions.Eq("AntragsId", antragsId));
return (Anonymisierung) c.UniqueResult();
}
public static IList<Antrag> GetAntraegeForAnsprechpartner (Ansprechpartner ansprechpartner)
{
var c = HibernateHelper.GetCurrentSession().CreateCriteria<Antrag>().Add(Restrictions.Eq("Ansprechpartner", ansprechpartner));
return (IList<Antrag>) c.UniqueResult();
}
public static void ErstelleDbSicherheitsKopie(string dateiName)
{
const string query = @"BACKUP DATABASE @db TO DISK = @file;";
String dbBackupVerzeichnis = Properties.Settings.Default.DbBackupVerzeichnis;
SqlConnection sqlConnection = new SqlConnection(HibernateHelper.GetConnectString());
SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
sqlCommand.Parameters.AddWithValue("@db", "aida-dev");
sqlCommand.Parameters.AddWithValue("@file", dbBackupVerzeichnis + dateiName);
sqlConnection.Open();
int result = sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
}
public static void DbSichern(String dateiname)
{
String dbBackupVerzeichnis = Properties.Settings.Default.DbBackupVerzeichnis;
ISession session = HibernateHelper.GetCurrentSession();
const string query = @"BACKUP DATABASE @db TO DISK = @file;";
SqlConnection sqlConnection = new SqlConnection(HibernateHelper.GetConnectString());
SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
sqlCommand.Parameters.AddWithValue("@db", "aida-dev");
sqlCommand.Parameters.AddWithValue("@file", dateiname);
sqlConnection.Open();
try
{
int result = sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
MessageBox.Show("Datenbank gesichert nach \n\n" + dateiname, "Datenbank gesichert", MessageBoxButton.OK);
}
catch (Exception ex)
{
var text = "Fehler beim Erstellen der Datenbanksicherung:\n\n" + ex.Message + "\n\n" + ex.StackTrace;
MessageBox.Show(text, "Erstellen der Datenbanksicherung fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Error);
sqlConnection.Close();
}
}
}
}

View File

@@ -0,0 +1,20 @@
using System;
namespace AidA.Data.Entities
{
public class Anonymisierung
{
public virtual long Id { get; set; }
public virtual int Aufbewahrungsfrist { get; set; }
public virtual long AntragsNummer { get; set; }
public virtual string Bemerkung { get; set; }
public virtual DateTime? InsTs { get; set; }
public virtual string InsUser { get; set; }
public virtual DateTime? UpdTs { get; set; }
public virtual string UpdUser { get; set; }
public virtual long AntragsId { get; set; }
public virtual long AnonymisierungslaufId { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
namespace AidA.Data.Entities
{
public class Anonymisierungsausnahme
{
public virtual long Id { get; set; }
public virtual long AntragsNummer { get; set; }
public virtual long AntragsId { get; set; }
public virtual DateTime? InsTs { get; set; }
public virtual string InsUser { get; set; }
}
}

View File

@@ -0,0 +1,59 @@
using AidA.Data.ViewModel;
using System;
using System.Collections.Generic;
namespace AidA.Data.Entities
{
public class Anonymisierungslauf
{
public virtual long Id { get; set; }
public virtual int Aufbewahrungsfrist { get; set; }
public virtual string Sicherung { get; set; }
public virtual DateTime? PruefBeginn { get; set; }
public virtual DateTime? PruefEnde { get; set; }
public virtual string PruefUser { get; set; }
public virtual int AnzahlGepruefteAntraege { get; set; }
public virtual int AnzahlBereitsAnonymisierteAntraege { get; set; }
public virtual int AnzahlAusgenommeneAntraege { get; set; }
public virtual int AnzahlNochAufzubewahrendeAntraege { get; set; }
public virtual int AnzahlZuAnonymisierendeAntraege { get; set; }
public virtual DateTime? AnonymisierungsBeginn { get; set; }
public virtual DateTime? AnonymisierungsEnde { get; set; }
public virtual string AnonymisierungsUser { get; set; }
public virtual int AnzahlAnonymisierteAntraege { get; set; }
public virtual string Bemerkung { get; set; }
public virtual DateTime? InsTs { get; set; }
public virtual string InsUser { get; set; }
public virtual DateTime? UpdTs { get; set; }
public virtual string UpdUser { get; set; }
public virtual IList<Anonymisierung> Anonymisierungen { get; set; }
public Anonymisierungslauf()
{
}
public Anonymisierungslauf(AnonymisierungslaufVM vm)
{
Aufbewahrungsfrist = vm.Aufbewahrungsfrist;
PruefBeginn = vm.PruefBeginn;
PruefEnde = vm.PruefEnde;
PruefUser = vm.PruefUser;
AnzahlGepruefteAntraege = vm.AnzahlGepruefteAntraege;
AnzahlBereitsAnonymisierteAntraege = vm.AnzahlBereitsAnonymisierteAntraege;
AnzahlAusgenommeneAntraege = vm.AnzahlAusgenommeneAntraege;
AnzahlNochAufzubewahrendeAntraege = vm.AnzahlNochAufzubewahrendeAntraege;
AnzahlZuAnonymisierendeAntraege = vm.AnzahlZuAnonymisierendeAntraege;
AnonymisierungsBeginn = vm.AnonymisierungsBeginn;
AnonymisierungsEnde = vm.AnonymisierungsEnde;
AnonymisierungsUser = vm.AnonymisierungsUser;
AnzahlAnonymisierteAntraege = vm.AnzahlAnonymisierteAntraege;
Bemerkung = vm.Bemerkung;
}
}
}

View File

@@ -0,0 +1,16 @@
namespace AidA.Data.Entities
{
public class Ansprechpartner
{
public virtual long Id { get; set; }
public virtual string Vorname { get; set; }
public virtual string Nachname { get; set; }
public virtual string Abteilung { get; set; }
public virtual bool Aktiv { get; set; }
public virtual long Version { get; set; }
public virtual Beratungsstelle Beratungsstelle { get; set; }
public virtual KontaktInfo KontaktInfo { get; set; }
}
}

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
namespace AidA.Data.Entities
{
public class Antrag
{
public virtual long Id { get; set; }
public virtual long AntragsNummer { get; set; }
public virtual bool Prio { get; set; }
public virtual DateTime? EingangsDatum { get; set; }
public virtual DateTime? FaelligkeitsDatum { get; set; }
public virtual int BewilligungsJahr { get; set; }
public virtual bool Wiedervorlage { get; set; }
public virtual string Bemerkung { get; set; }
public virtual string Memo { get; set; }
public virtual long Version { get; set; }
public virtual bool Aktualisiert { get; set; }
public virtual long? SachbearbeiterId { get; set; }
public virtual AntragsStatus AntragsStatus { get; set; }
public virtual Ansprechpartner Ansprechpartner { get; set; }
public virtual IList<AntragsPersonenDaten> AntragsPersonenDatenListe { get; set; }
public virtual IList<Kommunikation> Kommunikationen { get; set; }
public virtual IList<Anonymisierung> Anonymisierungen { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
namespace AidA.Data.Entities
{
public class AntragsGegenstand
{
public virtual long Id { get; set; }
public virtual string Gegenstand { get; set; }
public virtual decimal? BetragBeantragt { get; set; }
public virtual DateTime? BeantragtTimestamp { get; set; }
public virtual decimal? BetragBewilligt { get; set; }
public virtual DateTime? BewilligtTimestamp { get; set; }
public virtual bool Darlehen { get; set; }
public virtual DateTime? GeaendertDurchTimestamp { get; set; }
public virtual string Bemerkung { get; set; }
public virtual long Version { get; set; }
public virtual AntragsPersonenDaten AntragsPersoenenDaten { get; set; }
public virtual IList<FinanzTransaktion> FinanzTransaktionen { get; set; }
}
}

View File

@@ -0,0 +1,33 @@
using System.Collections.Generic;
namespace AidA.Data.Entities
{
public class AntragsPersonenDaten
{
public virtual long Id { get; set; }
public virtual string Strasse { get; set; }
public virtual string Plz { get; set; }
public virtual string Ort { get; set; }
public virtual string Telefon { get; set; }
public virtual string Email { get; set; }
public virtual string Handy { get; set; }
public virtual string Fax { get; set; }
public virtual string Iban { get; set; }
public virtual string Bank { get; set; }
public virtual bool AussergewoehnlGehBehinderung { get; set; }
public virtual bool HilflosNachESTG { get; set; }
public virtual bool Blind { get; set; }
public virtual bool Gehoerlos { get; set; }
public virtual bool RundfunkbeitragsErmaessigung { get; set; }
public virtual bool BegleitPersonÖffentlVerkehrsmittel { get; set; }
public virtual bool ErhebBeeintrBewStrassenVerkehr { get; set; }
public virtual bool PsychischeErkrankung { get; set; }
public virtual long Version { get; set; }
public virtual long AntragsId { get; set; }
public virtual IList<AntragsGegenstand> AntragsGegenstaende { get; set; }
public virtual PersonenIdentitaet PersonenIdentitaet { get; set; }
}
}

View File

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

View File

@@ -0,0 +1,13 @@
namespace AidA.Data.Entities
{
public class Beratungsstelle
{
public virtual long Id { get; set; }
public virtual string Name1 { get; set; }
public virtual string Name2 { get; set; }
public virtual long Version { get; set; }
public virtual KontaktInfo KontaktInfo { get; set; }
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
namespace AidA.Data.Entities
{
public class FinanzTransaktion
{
public virtual long Id { get; set; }
public virtual decimal Betrag { get; set; }
public virtual DateTime? AuszugsDatum { get; set; }
public virtual DateTime? ErfassungsTimestamp { get; set; }
public virtual string Bemerkung { get; set; }
public virtual long Version { get; set; }
public virtual IList<ZahlungSEPA> ZahlungenSEPA { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using System;
namespace AidA.Data.Entities
{
public class Kommunikation
{
public virtual long Id { get; set; }
public virtual DateTime? Datum { get; set; }
public virtual string Beschreibung { get; set; }
public virtual string Inhalt { get; set; }
public virtual long Version { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
namespace AidA.Data.Entities
{
public class KontaktInfo
{
public virtual long Id { get; set; }
public virtual string Telefon { get; set; }
public virtual string Handy { get; set; }
public virtual string Fax { get; set; }
public virtual string Email { get; set; }
public virtual string Internet { get; set; }
public virtual long Version { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
namespace AidA.Data.Entities
{
public class Mitarbeiter
{
public virtual long Id { get; set; }
public virtual string Vorname { get; set; }
public virtual string Nachname { get; set; }
public virtual string Telefon { get; set; }
public virtual string Email { get; set; }
public virtual string Anmeldename { get; set; }
public virtual bool Aktiv { get; set; }
public virtual string Sprechzeit { get; set; }
public virtual long Version { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
namespace AidA.Data.Entities
{
public class PersonenIdentitaet
{
public virtual long Id { get; set; }
public virtual string Vorname { get; set; }
public virtual string Nachname { get; set; }
public virtual DateTime? Geburtsdatum { get; set; }
public virtual long Version { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
namespace AidA.Data.Entities
{
public class ZahlungSEPA
{
public virtual long Id { get; set; }
public virtual string Empfaenger { get; set; }
public virtual string IBAN { get; set; }
public virtual string BIC { get; set; }
public virtual string Verwendungszweck { get; set; }
public virtual long Version { get; set; }
}
}

View File

@@ -0,0 +1,65 @@
using NHibernate;
using NHibernate.Cfg;
using System.Collections.Generic;
namespace AidA.Data
{
public sealed class HibernateHelper
{
private static ISession CurrentSession;
private static ISessionFactory SessionFactory;
private static string ConnectString;
static HibernateHelper()
{
}
public static ISession GetCurrentSession()
{
if (CurrentSession == null)
{
CurrentSession = SessionFactory.OpenSession();
}
return CurrentSession;
}
public static void CloseSession()
{
if (CurrentSession == null)
{
// No current session
return;
}
CurrentSession.Close();
}
public static void CloseSessionFactory()
{
if (SessionFactory != null)
{
SessionFactory.Close();
}
}
public static string GetConnectString()
{
return ConnectString;
}
public static void Connect(string databaseUserName, string password)
{
Configuration configuration = new Configuration().Configure();
IDictionary<string, string> properties = configuration.Properties;
ConnectString = new Configuration().Configure().GetProperty("connection.connection_string");
ConnectString = ConnectString.Replace("userId", databaseUserName);
ConnectString = ConnectString.Replace("userPwd", password);
configuration.SetProperty("connection.connection_string", ConnectString);
SessionFactory = configuration.BuildSessionFactory();
}
}
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.Anonymisierung, AidA" table="Anonymisierung">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Aufbewahrungsfrist" type="Int32" />
<property name="AntragsNummer" type="Int64" />
<property name="Bemerkung" type="String" />
<property name="InsTs" type="DateTime2" />
<property name="InsUser" type="String" />
<property name="UpdTs" type="DateTime2" />
<property name="UpdUser" type="String" />
<property name="AntragsId" type="Int64" />
<property name="AnonymisierungslaufId" type="Int64" />
</class>
</hibernate-mapping>

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.Anonymisierungsausnahme, AidA" table="Anonymisierungsausnahme">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="AntragsNummer" type="Int64" />
<property name="AntragsId" type="Int64" />
<property name="InsTs" type="DateTime2" />
<property name="InsUser" type="String" />
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.Anonymisierungslauf, AidA" table="Anonymisierungslauf">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Aufbewahrungsfrist" type="Int32" />
<property name="Sicherung" type="String" />
<property name="PruefBeginn" type="DateTime2" />
<property name="PruefEnde" type="DateTime2" />
<property name="PruefUser" type="String" />
<property name="AnzahlGepruefteAntraege" type="Int32" />
<property name="AnzahlBereitsAnonymisierteAntraege" type="Int32" />
<property name="AnzahlAusgenommeneAntraege" type="Int32" />
<property name="AnzahlNochAufzubewahrendeAntraege" type="Int32" />
<property name="AnzahlZuAnonymisierendeAntraege" type="Int32" />
<property name="AnonymisierungsBeginn" type="DateTime2" />
<property name="AnonymisierungsEnde" type="DateTime2" />
<property name="AnonymisierungsUser" type="String" />
<property name="AnzahlAnonymisierteAntraege" type="Int32" />
<property name="Bemerkung" type="String" />
<property name="InsTs" type="DateTime2" />
<property name="InsUser" type="String" />
<property name="UpdTs" type="DateTime2" />
<property name="UpdUser" type="String" />
<!--bag name="Anonymisierungen" table="Anonymisierung" generic="true" cascade="all-delete-orphan">
<key column="AnonymisierungslaufId" />
<one-to-many class="AidA.Data.Entities.Anonymisierung, AidA" />
</bag-->
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.Ansprechpartner, AidA" table="Ansprechpartner">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Vorname" type="String" />
<property name="Nachname" type="String" />
<property name="Abteilung" type="String" />
<property name="Aktiv" type="Boolean" />
<property name="Version" type="Int64" />
<many-to-one name="Beratungsstelle" column="BeratungsstelleId" class="AidA.Data.Entities.Beratungsstelle, AidA" cascade="none" />
<many-to-one name="KontaktInfo" column="KontaktInfoId" class="AidA.Data.Entities.KontaktInfo, AidA" cascade="none" />
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.Antrag, AidA" table="Antrag">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="AntragsNummer" type="Int64" />
<property name="Prio" type="Boolean" />
<property name="EingangsDatum" type="DateTime2" />
<property name="FaelligkeitsDatum" type="DateTime2" />
<property name="BewilligungsJahr" type="Int32" />
<property name="Wiedervorlage" type="Boolean" />
<property name="Bemerkung" type="String" />
<property name="Memo" type="String" />
<property name="Version" type="Int64" />
<property name="Aktualisiert" type="Boolean" />
<property name="SachbearbeiterId" type="Int64" />
<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" />
<bag name="AntragsPersonenDatenListe" table="AntragsPersonenDaten" generic="true" cascade="all-delete-orphan" batch-size="250">
<key column="AntragsId" />
<one-to-many class="AidA.Data.Entities.AntragsPersonenDaten, AidA" />
</bag>
<bag name="Kommunikationen" table="Kommunikation" generic="true">
<key column="AntragsId" />
<one-to-many class="AidA.Data.Entities.Kommunikation, AidA" />
</bag>
<!--bag name="Anonymisierungen" table="Anonymisierung" generic="true" cascade="all-delete-orphan">
<key column="AntragsId" />
<one-to-many class="AidA.Data.Entities.Anonymisierung, AidA" />
</bag-->
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.AntragsGegenstand, AidA" table="AntragsGegenstand">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Gegenstand" type="String" />
<property name="BetragBeantragt" type="decimal" />
<property name="BeantragtTimestamp" type="DateTime2" />
<property name="BetragBewilligt" type="decimal" />
<property name="BewilligtTimestamp" type="DateTime2" />
<property name="Darlehen" type="Boolean" />
<property name="GeaendertDurchTimestamp" type="DateTime2" />
<property name="Bemerkung" type="String" />
<property name="Version" type="Int64" />
<bag name="FinanzTransaktionen" table="FinanzTransaktion" generic="true" cascade="all-delete-orphan">
<key column="AntragsGegenstandId" />
<one-to-many class="AidA.Data.Entities.FinanzTransaktion, AidA" />
</bag>
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.AntragsPersonenDaten, AidA" table="AntragsPersonenDaten">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Strasse" type="String" />
<property name="Plz" type="String" />
<property name="Ort" type="String" />
<property name="Telefon" type="String" />
<property name="Email" type="String" />
<property name="Handy" type="String" />
<property name="Fax" type="String" />
<property name="Iban" type="String" />
<property name="Bank" type="String" />
<property name="AussergewoehnlGehBehinderung" type="Boolean" />
<property name="HilflosNachESTG" type="Boolean" />
<property name="Blind" type="Boolean" />
<property name="Gehoerlos" type="Boolean" />
<property name="RundfunkbeitragsErmaessigung" type="Boolean" />
<property name="BegleitPersonÖffentlVerkehrsmittel" type="Boolean" />
<property name="ErhebBeeintrBewStrassenVerkehr" type="Boolean" />
<property name="PsychischeErkrankung" type="Boolean" />
<property name="Version" type="Int64" />
<property name="AntragsId" type="Int64" />
<bag name="AntragsGegenstaende" table="AntragsGegenstand" generic="true" cascade="all-delete-orphan" batch-size="250">
<key column="AntragsPersonenDatenId" />
<one-to-many class="AidA.Data.Entities.AntragsGegenstand, AidA" />
</bag>
<many-to-one name="PersonenIdentitaet" column="PersonenIdentitaetId" class="AidA.Data.Entities.PersonenIdentitaet, AidA" cascade="none" />
</class>
</hibernate-mapping>

View File

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

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.Beratungsstelle, AidA" table="Beratungsstelle">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Name1" type="String" />
<property name="Name2" type="String" />
<property name="Version" type="Int64" />
<many-to-one name="KontaktInfo" column="KontaktInfoId" class="AidA.Data.Entities.KontaktInfo, AidA" cascade="none" />
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.FinanzTransaktion, AidA" table="FinanzTransaktion">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Betrag" type="decimal" />
<property name="AuszugsDatum" type="DateTime2" />
<property name="ErfassungsTimestamp" type="DateTime2" />
<property name="Bemerkung" type="String" />
<property name="Version" type="Int64" />
<bag name="ZahlungenSEPA" table="ZahlungSEPA" generic="true" cascade="all-delete-orphan">
<key column="FinanzTransaktionId" />
<one-to-many class="AidA.Data.Entities.ZahlungSEPA, AidA" />
</bag>
</class>
</hibernate-mapping>

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.Kommunikation, AidA" table="Kommunikation">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Datum" type="DateTime2" />
<property name="Beschreibung" type="String" />
<property name="Inhalt" type="String" />
<property name="Version" type="Int64" />
</class>
</hibernate-mapping>

View File

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

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="AidA.Data.Entities.Mitarbeiter, AidA" table="Mitarbeiter">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Vorname" type="String" />
<property name="Nachname" type="String" />
<property name="Telefon" type="String" />
<property name="Email" type="String" />
<property name="Anmeldename" type="String" />
<property name="Aktiv" type="Boolean" />
<property name="Sprechzeit" type="String" />
<property name="Version" type="Int64" />
</class>
</hibernate-mapping>

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.PersonenIdentitaet, AidA" table="PersonenIdentitaet">
<id name="Id" column="Id" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<property name="Vorname" type="String" />
<property name="Nachname" type="String" />
<property name="Geburtsdatum" type="DateTime2" />
<property name="Version" type="Int64" />
</class>
</hibernate-mapping>

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -0,0 +1,102 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
namespace AidA.Data.ViewModel
{
public abstract class AbstractBaseVM : INotifyPropertyChanged
{
private bool _IsDirty;
public virtual bool IsDirty
{
get { return _IsDirty; }
}
public Type Type
{
get { return GetType(); }
}
public event PropertyChangedEventHandler PropertyChanged;
public virtual void SetDirty(bool newDirty)
{
_IsDirty = newDirty;
}
protected bool AreDifferent(object pMember, object pNewValue)
{
if (pNewValue is string && ((string)pNewValue) == string.Empty)
{
return pMember != null && ((string)pMember) != string.Empty;
}
return (pMember == null && pNewValue != null) || (pMember != null && !pMember.Equals(pNewValue));
}
protected bool AreDifferent<T>(object pMember, object pNewValue)
{
if (pMember is IEnumerable<T> l1 && pNewValue is IEnumerable<T> l2)
{
return !Enumerable.SequenceEqual(l1, l2);
}
return AreDifferent(pMember, pNewValue);
}
protected bool AreEqual(object x, object y)
{
if (x == null)
{
return y == null;
}
return x.Equals(y);
}
public object Itself
{
get
{
return this;
}
}
public void FirePropertyChangedItself()
{
FirePropertyChanged(nameof(Itself));
}
protected virtual void FirePropertyChanged(string pPropertyName)
{
FirePropertyChanged(PropertyChanged, this, pPropertyName);
}
protected void FirePropertyChanged(PropertyChangedEventHandler handler, string pPropertyName)
{
FirePropertyChanged(handler, this, pPropertyName);
}
protected void FirePropertyChanged(object sender, string pPropertyName)
{
FirePropertyChanged(PropertyChanged, sender, pPropertyName);
}
protected void FirePropertyChanged(object sender, PropertyChangedEventArgs e)
{
FirePropertyChanged(PropertyChanged, sender, e);
}
protected void FirePropertyChanged(PropertyChangedEventHandler handler, object sender, string pPropertyName)
{
FirePropertyChanged(handler, sender, new PropertyChangedEventArgs(pPropertyName));
}
protected void FirePropertyChanged(PropertyChangedEventHandler handler, object sender, PropertyChangedEventArgs e)
{
_IsDirty = true;
handler?.Invoke(sender, e);
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
namespace AidA.Data.ViewModel
{
public class AnonymisierungVM : AbstractBaseVM
{
public virtual long Id { get; set; }
public virtual int Aufbewahrungsfrist { get; set; }
public virtual DateTime? InsTs { get; set; }
public virtual DateTime? UpdTs { get; set; }
public virtual string Bemerkung { get; set; }
public virtual long Version { get; set; }
public virtual long AntragsId { get; set; }
public virtual long AnonymisierungslaufId { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
using AidA.Data.Entities;
using System;
using System.Collections.Generic;
namespace AidA.Data.ViewModel
{
public class AnonymisierungslaufVM : AbstractBaseVM
{
public virtual long Id { get; set; }
public virtual int Aufbewahrungsfrist { get; set; }
public virtual string Sicherung { get; set; }
public virtual DateTime? PruefBeginn { get; set; }
public virtual DateTime? PruefEnde { get; set; }
public virtual string PruefUser { get; set; }
public virtual int AnzahlGepruefteAntraege { get; set; }
public virtual int AnzahlBereitsAnonymisierteAntraege { get; set; }
public virtual int AnzahlAusgenommeneAntraege { get; set; }
public virtual int AnzahlNochAufzubewahrendeAntraege { get; set; }
public virtual int AnzahlZuAnonymisierendeAntraege { get; set; }
public virtual DateTime? AnonymisierungsBeginn { get; set; }
public virtual DateTime? AnonymisierungsEnde { get; set; }
public virtual string AnonymisierungsUser { get; set; }
public virtual int AnzahlAnonymisierteAntraege { get; set; }
public virtual string Bemerkung { get; set; }
public virtual long Version { get; set; }
public virtual IList<AnonymisierungVM> Anonymisierungen { get; set; }
}
}

View File

@@ -0,0 +1,55 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("AidA")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AidA")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
//Um mit dem Erstellen lokalisierbarer Anwendungen zu beginnen, legen Sie
//<UICulture>ImCodeVerwendeteKultur</UICulture> in der .csproj-Datei
//in einer <PropertyGroup> fest. Wenn Sie in den Quelldateien beispielsweise Deutsch
//(Deutschland) verwenden, legen Sie <UICulture> auf \"de-DE\" fest. Heben Sie dann die Auskommentierung
//des nachstehenden NeutralResourceLanguage-Attributs auf. Aktualisieren Sie "en-US" in der nachstehenden Zeile,
//sodass es mit der UICulture-Einstellung in der Projektdatei übereinstimmt.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //Speicherort der designspezifischen Ressourcenwörterbücher
//(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
// oder in den Anwendungsressourcen-Wörterbüchern nicht gefunden werden kann.)
ResourceDictionaryLocation.SourceAssembly //Speicherort des generischen Ressourcenwörterbuchs
//(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
// designspezifischen Ressourcenwörterbuch nicht gefunden werden kann.)
)]
// 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,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

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

View File

@@ -0,0 +1,10 @@
DevExpress.Xpf.Editors.ButtonEdit, DevExpress.Xpf.Core.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraWizard.WizardControl, DevExpress.XtraWizard.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.Grid.GridControl, DevExpress.Xpf.Grid.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.Editors.ProgressBarEdit, DevExpress.Xpf.Core.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.Editors.TextEdit, DevExpress.Xpf.Core.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.LayoutControl.GroupBox, DevExpress.Xpf.LayoutControl.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.PropertyGrid.PropertyGridControl, DevExpress.Xpf.PropertyGrid.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.LayoutControl.DataLayoutControl, DevExpress.Xpf.LayoutControl.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.NavBar.NavBarControl, DevExpress.Xpf.NavBar.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpf.Editors.ComboBoxEdit, DevExpress.Xpf.Core.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

70
AidA/Properties/Resources.Designer.cs generated Normal file
View File

@@ -0,0 +1,70 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion: 4.0.30319.42000
//
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AidA.Properties
{
/// <summary>
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
/// </summary>
// Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse
// über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AidA.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
/// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

50
AidA/Properties/Settings.Designer.cs generated Normal file
View File

@@ -0,0 +1,50 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AidA.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("c:/tmp/")]
public string DbBackupVerzeichnis {
get {
return ((string)(this["DbBackupVerzeichnis"]));
}
set {
this["DbBackupVerzeichnis"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("83730")]
public long AntragsIdFuerAntragspersondatenEntknuepfung {
get {
return ((long)(this["AntragsIdFuerAntragspersondatenEntknuepfung"]));
}
set {
this["AntragsIdFuerAntragspersondatenEntknuepfung"] = value;
}
}
}
}

View File

@@ -0,0 +1,12 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="AidA.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="DbBackupVerzeichnis" Type="System.String" Scope="User">
<Value Profile="(Default)">c:/tmp/</Value>
</Setting>
<Setting Name="AntragsIdFuerAntragspersondatenEntknuepfung" Type="System.Int64" Scope="User">
<Value Profile="(Default)">83730</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,415 @@
using AidA.Data;
using AidA.Data.Entities;
using DevExpress.Xpf.Editors;
using System;
using System.Collections.Generic;
using System.Linq;
namespace AidA.Service.Anonymization
{
public class AnonymizationManager
{
private Dictionary<long, IList<Antrag>> AnsprechpartnerDictionary;
private Dictionary<long, IList<Antrag>> AntragsPersonenDatenDictionary;
private IList<Antrag> ZuAnonymisierendeAntraege;
private IList<Anonymisierung> Anonymisierungen;
private IList<Anonymisierungsausnahme> Anonymisierungsausnahmen;
private string UserName;
public AnonymizationManager(String userName)
{
UserName = userName;
}
public Anonymisierungslauf AnonymisierungslaufVorbereiten(int aufbewahrungsfrist, ProgressBarEdit progressBar)
{
var antraege = Database.GetAll<Antrag>();
int gepruefteAntraege = 0;
int bereitsAnonymisierteAntraege = 0;
int ausgenommeneAntraege = 0;
int erledigteAntraege = 0;
int nochAufzubewahrendeAntraege = 0;
int antragsPersonenDatenCount = 0;
int antragsGegenstaendeCount = 0;
AntragsStatus antragsStatus;
IList<AntragsPersonenDaten> antragsPersonenDatenListe;
IList<AntragsGegenstand> antragsGegenstaende;
DateTime? beginnAufbewahrungsfrist = null;
DateTime aufbewahrenBis = new DateTime(DateTime.Now.Year - aufbewahrungsfrist, DateTime.Now.Month, DateTime.Now.Day);
ZuAnonymisierendeAntraege = new List<Antrag>();
AnsprechpartnerDictionary = new Dictionary<long, IList<Antrag>>();
AntragsPersonenDatenDictionary = new Dictionary<long, IList<Antrag>>();
Anonymisierungen = Database.GetAll<Anonymisierung>();
Anonymisierungsausnahmen = Database.GetAll<Anonymisierungsausnahme>();
progressBar.Minimum = 0;
progressBar.Maximum = antraege.Count;
progressBar.Value = 0;
progressBar.DisplayFormatString = progressBar.DisplayFormatString + " von " + antraege.Count;
progressBar.Visibility = System.Windows.Visibility.Visible;
Anonymisierungslauf anonymisierungslauf = new Anonymisierungslauf();
anonymisierungslauf.PruefBeginn = DateTime.Now;
anonymisierungslauf.PruefUser = UserName;
anonymisierungslauf.Aufbewahrungsfrist = aufbewahrungsfrist;
foreach (var antrag in antraege)
{
if (gepruefteAntraege % 1000 == 0)
System.Windows.Forms.Application.DoEvents();
var anonymisierung = Anonymisierungen.FirstOrDefault(a => a.AntragsId.Equals(antrag.Id));
if (anonymisierung != null)
{
bereitsAnonymisierteAntraege++;
gepruefteAntraege++;
progressBar.Value++;
continue;
}
var anonymisierungsausnahme = Anonymisierungsausnahmen.FirstOrDefault(a => a.AntragsId.Equals(antrag.Id));
if (anonymisierungsausnahme != null)
{
ausgenommeneAntraege++;
UpdateAnsprechpartnerDictionary(antrag);
UpdateAntragsPersonenDatenDictionary(antrag);
gepruefteAntraege++;
progressBar.Value++;
continue;
}
antragsStatus = antrag.AntragsStatus;
if (antragsStatus != null && (antragsStatus.Name.Equals("erledigt") || antragsStatus.Name.Equals("mit Fehlern erledigt")))
{
erledigteAntraege++;
antragsPersonenDatenListe = antrag.AntragsPersonenDatenListe;
foreach (var antragsPersonenDaten in antragsPersonenDatenListe)
{
antragsPersonenDatenCount++;
antragsGegenstaende = antragsPersonenDaten.AntragsGegenstaende;
DateTime? allMaxTS = null;
foreach (var antragsGegenstand in antragsGegenstaende)
{
antragsGegenstaendeCount++;
DateTime? maxTS = DateUtils.MaxTimestamp(antragsGegenstand.BeantragtTimestamp, antragsGegenstand.BewilligtTimestamp, antragsGegenstand.GeaendertDurchTimestamp);
allMaxTS = DateUtils.MaxTimestamp(allMaxTS, maxTS);
}
beginnAufbewahrungsfrist = allMaxTS;
}
}
// konnte fuer erledigte Antraege aufgrund fehlender Timestamps kein Beginn der Aufbewahrungsfrist ermittelt werden,
// verfahren wir (bis auf Weiteres) wie bei nicht erledigten Antraegen
if (beginnAufbewahrungsfrist is null)
{
if (antrag.FaelligkeitsDatum != null)
{
DateTime faelligkeitsDatum = (DateTime)antrag.FaelligkeitsDatum;
beginnAufbewahrungsfrist = new DateTime(faelligkeitsDatum.Year + 1, 1, 1);
}
else
{
int bewilligungsJahr = antrag.BewilligungsJahr;
if (bewilligungsJahr == 0)
{
// es gibt 18 Antraege mit Bewilligungsjahr 0, haben alle Eingangsdatum > 2022
// wir setzen den Beginn der Aufbewahrungsfrist auf 2022, um die Anonymisierung zu verhindern
beginnAufbewahrungsfrist = new DateTime(2022, 1, 1);
}
else
{
beginnAufbewahrungsfrist = new DateTime(bewilligungsJahr + 1, 1, 1);
}
}
}
if (beginnAufbewahrungsfrist != null)
{
DateTime beginn = (DateTime)beginnAufbewahrungsfrist;
DateTime endeAufbewahrungsfrist = new DateTime(beginn.Year + aufbewahrungsfrist, beginn.Month, beginn.Day);
if (DateTime.Now > endeAufbewahrungsfrist)
{
ZuAnonymisierendeAntraege.Add(antrag);
}
else
{
nochAufzubewahrendeAntraege++;
}
}
else
{
nochAufzubewahrendeAntraege++;
}
UpdateAnsprechpartnerDictionary(antrag);
UpdateAntragsPersonenDatenDictionary(antrag);
gepruefteAntraege++;
progressBar.Value++;
}
anonymisierungslauf.PruefEnde = DateTime.Now;
anonymisierungslauf.AnzahlGepruefteAntraege = gepruefteAntraege;
anonymisierungslauf.AnzahlBereitsAnonymisierteAntraege = bereitsAnonymisierteAntraege;
anonymisierungslauf.AnzahlAusgenommeneAntraege = ausgenommeneAntraege;
anonymisierungslauf.AnzahlNochAufzubewahrendeAntraege = nochAufzubewahrendeAntraege;
anonymisierungslauf.AnzahlZuAnonymisierendeAntraege = ZuAnonymisierendeAntraege.Count;
return anonymisierungslauf;
}
public void AnonymisierungslaufDurchfuehren(Anonymisierungslauf anonymisierungslauf, ProgressBarEdit progressBar)
{
anonymisierungslauf.AnonymisierungsBeginn = DateTime.Now;
anonymisierungslauf.AnonymisierungsUser = UserName;
anonymisierungslauf.Sicherung = "Anonymisierungsbackup_" + String.Format("{0:yyyyMMdd HHmm}", anonymisierungslauf.AnonymisierungsBeginn) + ".bak";
Database.InsertAnonymisierungslauf(anonymisierungslauf, UserName);
anonymisierungslauf.Anonymisierungen = new List<Anonymisierung>();
int anzahlAnonymisierteAntraege = 0;
var ansprechpartnerIds = new List<long>();
long antragsIdFuerAntragspersondatenEntknuepfung = Properties.Settings.Default.AntragsIdFuerAntragspersondatenEntknuepfung;
progressBar.Minimum = 0;
progressBar.Maximum = ZuAnonymisierendeAntraege.Count;
progressBar.Value = 0;
progressBar.DisplayFormatString = progressBar.DisplayFormatString + " von " + ZuAnonymisierendeAntraege.Count;
progressBar.Visibility = System.Windows.Visibility.Visible;
foreach (var antrag in ZuAnonymisierendeAntraege)
{
if (anzahlAnonymisierteAntraege % 20 == 0)
System.Windows.Forms.Application.DoEvents();
Anonymisierung anonymisierung = new Anonymisierung();
anonymisierung.AntragsId = antrag.Id;
anonymisierung.Aufbewahrungsfrist = anonymisierungslauf.Aufbewahrungsfrist;
anonymisierung.AntragsNummer = antrag.AntragsNummer;
anonymisierung.AnonymisierungslaufId = anonymisierungslauf.Id;
Ansprechpartner ansprechpartner = antrag.Ansprechpartner;
if (ansprechpartner != null)
{
bool ansprechpartnerNochBenoetigt = CheckAnsprechpartnerNochBenoetigt(ansprechpartner, antrag);
if (!ansprechpartnerNochBenoetigt)
{
// Beratungsstelle wird zurzeit noch nicht benoetigt
// Beratungsstelle beratungsstelle = ansprechpartner.Beratungsstelle;
if (ansprechpartner.KontaktInfo != null)
{
ansprechpartner.KontaktInfo = null;
}
// Ansprechpartner (und Antrag.AnsprechpartnerId) loeschen (todo: Pruefen, ob das so klappt)
antrag.Ansprechpartner = null;
}
}
antrag.SachbearbeiterId = null;
IList<AntragsPersonenDaten> antragsPersonenDatenListe = antrag.AntragsPersonenDatenListe;
if (antragsPersonenDatenListe != null)
{
foreach (var antragsPersonenDaten in antragsPersonenDatenListe)
{
bool antragsPersonenDatenNochBenoetigt = CheckAntragsPersonenDatenNochBenoetigt(antragsPersonenDaten, antrag);
if (!antragsPersonenDatenNochBenoetigt)
{
antragsPersonenDaten.Strasse = null;
if (antragsPersonenDaten.Plz != null && antragsPersonenDaten.Plz.Length > 2)
{
antragsPersonenDaten.Plz = antragsPersonenDaten.Plz.Substring(0, 2);
}
antragsPersonenDaten.Ort = null;
antragsPersonenDaten.Handy = null;
antragsPersonenDaten.Telefon = null;
antragsPersonenDaten.Fax = null;
antragsPersonenDaten.Email = null;
antragsPersonenDaten.Iban = null;
antragsPersonenDaten.Bank = null;
if (antragsPersonenDaten.PersonenIdentitaet != null)
{
PersonenIdentitaet personenIdentitaet = antragsPersonenDaten.PersonenIdentitaet;
personenIdentitaet.Vorname = null;
personenIdentitaet.Nachname = null;
DateTime? gebDatum = personenIdentitaet.Geburtsdatum;
if (gebDatum != null)
{
personenIdentitaet.Geburtsdatum = new DateTime(((DateTime) gebDatum).Year, 1, 1);
}
}
IList<AntragsGegenstand> antragsGegenstaende = antragsPersonenDaten.AntragsGegenstaende;
foreach (var antragsGegenstand in antragsGegenstaende)
{
IList<FinanzTransaktion> finanzTransaktionen = antragsGegenstand.FinanzTransaktionen;
foreach (var finanzTransaktion in finanzTransaktionen)
{
IList<ZahlungSEPA> zahlungenSEPA = finanzTransaktion.ZahlungenSEPA;
foreach (var zahlungSEPA in zahlungenSEPA)
{
zahlungSEPA.Empfaenger = "";
zahlungSEPA.IBAN = "";
zahlungSEPA.BIC = "";
zahlungSEPA.Verwendungszweck = "";
}
}
}
}
else
{
// Antragspersonendaten werden noch benoetigt, aber wir entknuepfen sie vom zu anoynisierenden Antrag
// weil die AntragsId nicht geloescht werden kann, biegen wir sie um auf die eines dafuer konfigurierten (Test-) Auftrags
antragsPersonenDaten.AntragsId = antragsIdFuerAntragspersondatenEntknuepfung;
}
}
}
// Memo loeschen - noch pruefen ob so gueltig und verarbeitbar
antrag.Memo = null;
anonymisierungslauf.Anonymisierungen.Add(anonymisierung);
anzahlAnonymisierteAntraege++;
progressBar.Value++;
}
anonymisierungslauf.AnzahlAnonymisierteAntraege = anzahlAnonymisierteAntraege;
anonymisierungslauf.AnonymisierungsEnde = DateTime.Now;
Database.SaveAnonymisierungslaufDurchfuehrung(anonymisierungslauf, ZuAnonymisierendeAntraege, UserName);
}
public void AnonymisierungslaufSpeichern(Anonymisierungslauf anonymisierungslauf)
{
Database.UpdateAnonymisierungslauf(anonymisierungslauf, UserName);
}
public void AnonymisierungsAusnahmeHinzufuegen(long antragsNummer)
{
Anonymisierungsausnahme anonymisierungsausnahme = new Anonymisierungsausnahme();
anonymisierungsausnahme.AntragsNummer = antragsNummer;
anonymisierungsausnahme.AntragsId = Database.GetAntragsIdForAntragsNummer(antragsNummer);
Database.InsertAnonymisierungsausnahme(anonymisierungsausnahme, UserName);
}
public void AnonymisierungsAusnahmeLoeschen(Anonymisierungsausnahme anonymisierungsausnahme)
{
Database.DeleteAnonymisierungsausnahme(anonymisierungsausnahme);
}
private void UpdateAnsprechpartnerDictionary(Antrag antrag)
{
Ansprechpartner ansprechpartner = antrag.Ansprechpartner;
if (ansprechpartner != null)
{
if (AnsprechpartnerDictionary.ContainsKey(ansprechpartner.Id))
{
AnsprechpartnerDictionary[ansprechpartner.Id].Add(antrag);
}
else
{
AnsprechpartnerDictionary.Add(ansprechpartner.Id, new List<Antrag> { antrag });
}
}
}
private void UpdateAntragsPersonenDatenDictionary(Antrag antrag)
{
IList<AntragsPersonenDaten> antragsPersonenDatenListe = antrag.AntragsPersonenDatenListe;
if (antragsPersonenDatenListe != null)
{
foreach (var antragsPersonenDaten in antragsPersonenDatenListe)
{
if (AntragsPersonenDatenDictionary.ContainsKey(antragsPersonenDaten.Id))
{
AntragsPersonenDatenDictionary[antragsPersonenDaten.Id].Add(antrag);
}
else
{
AntragsPersonenDatenDictionary.Add(antragsPersonenDaten.Id, new List<Antrag> { antrag });
}
}
}
}
/**
* Prueft, ob der Ansprechpartner eines Antrags noch fuer andere Antraege benoetigt wird
*/
private bool CheckAnsprechpartnerNochBenoetigt(Ansprechpartner ansprechpartner, Antrag antrag)
{
bool nochBenoetigt = false;
if (AnsprechpartnerDictionary.ContainsKey(ansprechpartner.Id))
{
var ansprechpartnerAntraege = AnsprechpartnerDictionary[ansprechpartner.Id];
if (ansprechpartnerAntraege != null && ansprechpartnerAntraege.Count > 1)
{
foreach (var ansprechpartnerAntrag in ansprechpartnerAntraege)
{
if (ansprechpartnerAntrag.Id != antrag.Id)
{
var zuAnonymisieren = ZuAnonymisierendeAntraege.FirstOrDefault(a => a.Id.Equals(ansprechpartnerAntrag.Id));
if (zuAnonymisieren is null)
{
var schonAnonymisiert = Anonymisierungen.FirstOrDefault(a => a.AntragsId.Equals(ansprechpartnerAntrag.Id));
if (schonAnonymisiert is null)
{
nochBenoetigt = true;
}
}
}
}
}
}
return nochBenoetigt;
}
/**
* Prueft, ob AntragsPersonenDaten eines Antrags noch fuer andere Antraege benoetigt werden
*/
private bool CheckAntragsPersonenDatenNochBenoetigt(AntragsPersonenDaten antragsPersonenDaten, Antrag antrag)
{
bool nochBenoetigt = false;
if (AntragsPersonenDatenDictionary.ContainsKey(antragsPersonenDaten.Id))
{
var antragsPersonenDatenAntraege = AntragsPersonenDatenDictionary[antragsPersonenDaten.Id];
if (antragsPersonenDatenAntraege != null && antragsPersonenDatenAntraege.Count > 1)
{
foreach (var antragsPersonenDatenAntrag in antragsPersonenDatenAntraege)
{
if (antragsPersonenDatenAntrag.Id != antrag.Id)
{
var zuAnonymisieren = ZuAnonymisierendeAntraege.FirstOrDefault(a => a.Id.Equals(antragsPersonenDatenAntrag.Id));
if (zuAnonymisieren is null)
{
var schonAnonymisiert = Anonymisierungen.FirstOrDefault(a => a.AntragsId.Equals(antragsPersonenDatenAntrag.Id));
if (schonAnonymisiert is null)
{
nochBenoetigt = true;
}
}
}
}
}
}
return nochBenoetigt;
}
}
}

47
AidA/Service/DateUtils.cs Normal file
View File

@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AidA.Service
{
public class DateUtils
{
public static DateTime? MaxTimestamp(DateTime? ts1, DateTime? ts2)
{
DateTime? maxTs = null;
if (ts1 != null)
{
if (ts2 != null)
{
if (ts2 > ts1)
{
maxTs = ts2;
}
else
{
maxTs = ts1;
}
}
}
else if (ts2 != null)
{
maxTs = ts2;
}
return maxTs;
}
public static DateTime? MaxTimestamp(DateTime? ts1, DateTime? ts2, DateTime? ts3)
{
DateTime? maxTs = MaxTimestamp(ts1, ts2);
if (ts3 != null && ts3 > maxTs)
{
maxTs = ts3;
}
return maxTs;
}
}
}

View File

@@ -0,0 +1,34 @@
<dx:ThemedWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
x:Class="AidA.View.AnonymisierungsAusnahmenWindow"
Title="Anonymisierungsausnahmen" Height="222.992" Width="425.36" ResizeMode="NoResize"
>
<Grid>
<Label Content="Anträge mit diesen Antragsnummern von der Anonymisierung ausnehmen" HorizontalAlignment="Left" Margin="12,13,0,0" VerticalAlignment="Top" Width="403"/>
<Label Content="AntragsNummer" HorizontalAlignment="Left" Margin="12,40,0,0" VerticalAlignment="Top" Width="98"/>
<dxe:TextEdit x:Name="TextEditAntragsNummer" HorizontalAlignment="Left" Margin="115,40,0,0" VerticalAlignment="Top" Width="137" NullText="{x:Null}" Mask="n" MaskType="Numeric" RenderTransformOrigin="-0.203,0.566"/>
<Button Content="Hinzufügen" HorizontalAlignment="Left" Margin="257,40,0,0" VerticalAlignment="Top" Width="153" IsDefault="True" Click="HinzufuegenButton_Click"/>
<Button Content="Schließen" HorizontalAlignment="Left" Margin="326,165,0,0" VerticalAlignment="Top" Width="84" IsDefault="True" Click="SchliessenButton_Click"/>
<dxg:GridControl Margin="10,70,7,32" Name="GridControlAnonymisierungsAusnahmen">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="IsDeleteable" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<dx:SimpleButton HorizontalAlignment="Left" Width="18" Height="18" Glyph="{dx:DXImage SvgImages/Icon Builder/Actions_Delete.svg}" Click="DeleteButton_Click"/>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="AntragsNummer" Header="AntragsNummer" SortOrder="Ascending" SortIndex="0" />
<dxg:GridColumn FieldName="AntragsId" Header="AntragsId"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" Margin="0,0,-2,0" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</dx:ThemedWindow>

View File

@@ -0,0 +1,58 @@
using AidA.Data;
using AidA.Data.Entities;
using AidA.Data.ViewModel;
using AidA.Service.Anonymization;
using DevExpress.Xpf.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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
{
/// <summary>
/// Interaction logic for AnonymisierungsAusnahmenWindow.xaml
/// </summary>
public partial class AnonymisierungsAusnahmenWindow : ThemedWindow
{
IList<Anonymisierungsausnahme> AnonymisierungsAusnahmen;
public AnonymisierungsAusnahmenWindow()
{
InitializeComponent();
AnonymisierungsAusnahmen = Database.GetAll<Anonymisierungsausnahme>();
GridControlAnonymisierungsAusnahmen.ItemsSource = AnonymisierungsAusnahmen;
}
private void HinzufuegenButton_Click(object sender, RoutedEventArgs e)
{
long antragsNummer = long.Parse(TextEditAntragsNummer.Text);
MainController.AnonymisierungsAusnahmeHinzufuegen(antragsNummer);
AnonymisierungsAusnahmen = Database.GetAll<Anonymisierungsausnahme>();
GridControlAnonymisierungsAusnahmen.ItemsSource = AnonymisierungsAusnahmen;
}
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
Anonymisierungsausnahme anonymisierungsAusnahme = (Anonymisierungsausnahme) GridControlAnonymisierungsAusnahmen.CurrentItem;
MainController.AnonymisierungsAusnahmeLoeschen(anonymisierungsAusnahme);
AnonymisierungsAusnahmen = Database.GetAll<Anonymisierungsausnahme>();
GridControlAnonymisierungsAusnahmen.ItemsSource = AnonymisierungsAusnahmen;
}
private void SchliessenButton_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}

View File

@@ -0,0 +1,81 @@
<dx:ThemedWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="AidA.View.AnonymisierungslaufDetailWindow"
Title="Anonymisierungslauf" Height="470.333" Width="564" ResizeMode="NoResize"
>
<Grid>
<Label Content="Aufbewahrungsfrist (Jahre)" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="152"/>
<dxe:TextEdit x:Name="TextEditAufbewahrungsfrist" Text="{Binding Aufbewahrungsfrist}" IsReadOnly="True" HorizontalAlignment="Left" Margin="161,10,0,0" VerticalAlignment="Top" Width="61" Mask="d" MaskType="Numeric"/>
<Label Content="Sicherung" HorizontalAlignment="Left" Margin="232,10,0,0" VerticalAlignment="Top" Width="60"/>
<dxe:TextEdit x:Name="SicherungTextEdit" Text="{Binding Sicherung}" IsReadOnly="True" HorizontalAlignment="Left" Margin="292,10,0,0" VerticalAlignment="Top" Width="254"/>
<dxlc:GroupBox Header="Prüfung" HorizontalAlignment="Left" Margin="8,42,0,0" VerticalAlignment="Top" Height="155" Width="538">
<Grid HorizontalAlignment="Left" Height="112" Margin="0,0,-4,-2" VerticalAlignment="Top" Width="518">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Prüfbeginn" HorizontalAlignment="Right" />
<TextBox Grid.Row="0" Grid.Column="1" Margin="3" Text="{Binding PruefBeginn, StringFormat=dd.MM.yyyy HH:mm:ss}" IsReadOnly="True" />
<Label Grid.Row="0" Grid.Column="2" Content="Prüfende" HorizontalAlignment="Right"/>
<TextBox Grid.Row="0" Grid.Column="3" Margin="3" Text="{Binding PruefEnde, StringFormat=dd.MM.yyyy HH:mm:ss}" IsReadOnly="True" />
<Label Grid.Row="1" Grid.Column="0" Content="Prüfbenutzer" HorizontalAlignment="Right" />
<TextBox Grid.Row="1" Grid.Column="1" Margin="3" Text="{Binding PruefUser}" IsReadOnly="True" />
<Label Grid.Row="1" Grid.Column="2" Content="Geprüfte Anträge" HorizontalAlignment="Right" />
<dxe:TextEdit Grid.Row="1" Grid.Column="3" Margin="3" Text="{Binding AnzahlGepruefteAntraege}" IsReadOnly="True" Mask="n" MaskType="Numeric" />
<Label Grid.Row="2" Grid.Column="0" Content="bereits anonymisiert" HorizontalAlignment="Right" />
<dxe:TextEdit Grid.Row="2" Grid.Column="1" Margin="3" Text="{Binding AnzahlBereitsAnonymisierteAntraege}" IsReadOnly="True" />
<Label Grid.Row="2" Grid.Column="2" Content="ausgenommen" HorizontalAlignment="Right" />
<dxe:TextEdit Grid.Row="2" Grid.Column="3" Margin="3" Text="{Binding AnzahlAusgenommeneAntraege}" IsReadOnly="True" />
<Label Grid.Row="3" Grid.Column="0" Content="noch aufzubewahren" HorizontalAlignment="Right" />
<dxe:TextEdit Grid.Row="3" Grid.Column="1" Margin="3" Text="{Binding AnzahlNochAufzubewahrendeAntraege}" IsReadOnly="True" />
<Label Grid.Row="3" Grid.Column="2" Content="zu anonymisieren" HorizontalAlignment="Right" />
<dxe:TextEdit Grid.Row="3" Grid.Column="3" Margin="3" Text="{Binding AnzahlZuAnonymisierendeAntraege}" IsReadOnly="True" />
</Grid>
</dxlc:GroupBox>
<dxlc:GroupBox Header="Anonymisierung" HorizontalAlignment="Left" Margin="10,202,0,0" VerticalAlignment="Top" Height="102" Width="536">
<Grid HorizontalAlignment="Left" Height="56" Margin="0,0,-3,0" VerticalAlignment="Top" Width="515">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Anonymisierungsbeginn" HorizontalAlignment="Right" />
<TextBox Grid.Row="0" Grid.Column="1" Margin="3" Text="{Binding AnonymisierungsBeginn, StringFormat=dd.MM.yyyy HH:mm:ss}" IsReadOnly="True" />
<Label Grid.Row="0" Grid.Column="2" Content="Anonymisierungsende" HorizontalAlignment="Right"/>
<TextBox Grid.Row="0" Grid.Column="3" Margin="3" Text="{Binding AnonymisierungsEnde, StringFormat=dd.MM.yyyy HH:mm:ss}" IsReadOnly="True" />
<Label Grid.Row="1" Grid.Column="0" Content="Anonymisierungsbenutzer" HorizontalAlignment="Right" />
<dxe:TextEdit Grid.Row="1" Grid.Column="1" Margin="3" Text="{Binding AnonymisierungsUser}" IsReadOnly="True" />
<Label Grid.Row="1" Grid.Column="2" Content="Anonymisierte Anträge" HorizontalAlignment="Right" />
<dxe:TextEdit Grid.Row="1" Grid.Column="3" Margin="3" Text="{Binding AnzahlAnonymisierteAntraege}" IsReadOnly="True" Mask="n" MaskType="Numeric" />
</Grid>
</dxlc:GroupBox>
<Label Content="Bemerkung" HorizontalAlignment="Left" Margin="10,310,0,0" VerticalAlignment="Top" Width="81"/>
<TextBox Name="BemerkungTextBox" Text="{Binding Bemerkung}" HorizontalAlignment="Left" VerticalAlignment="Top" MaxLength="1024" Height="44" Margin="91,310,0,0" TextWrapping="Wrap" Width="455" TextChanged="BemerkungTextBox_TextChanged"/>
<Button Name="StartenButton" Content="Starten" HorizontalAlignment="Left" Margin="213,409,0,0" VerticalAlignment="Top" Width="74" IsDefault="True" Click="StartButton_Click"/>
<Button Name="VerwerfenButton" Content="Verwerfen" HorizontalAlignment="Left" Margin="292,409,0,0" VerticalAlignment="Top" Width="76" IsDefault="True" Click="VerwerfenButton_Click"/>
<Button Name="SpeichernButton" Content="Speichern" HorizontalAlignment="Left" Margin="373,409,0,0" VerticalAlignment="Top" Width="87" IsDefault="True" Click="SpeichernButton_Click" IsEnabled="False"/>
<Button Name="SchliessenButton" Content="Schließen" HorizontalAlignment="Left" Margin="465,409,0,0" VerticalAlignment="Top" Width="81" IsDefault="True" Click="SchliessenButton_Click"/>
<dxe:ProgressBarEdit x:Name="DurchfuehrenProgressbar" HorizontalAlignment="Left" Margin="10,359,0,0" VerticalAlignment="Top" Width="536" Height="43" ContentDisplayMode="Value" DisplayFormatString="Anonymisiere Anträge: {0}" Visibility="Hidden"/>
</Grid>
</dx:ThemedWindow>

View File

@@ -0,0 +1,93 @@
using AidA.Data.Entities;
using DevExpress.Xpf.Core;
using System.Windows;
namespace AidA.View
{
/// <summary>
/// Interaction logic for AnonymisierungslaufDetailWindow.xaml
/// </summary>
public partial class AnonymisierungslaufDetailWindow : ThemedWindow
{
private Anonymisierungslauf Anonymisierungslauf { get; set; }
private bool AnonymisierungslaufDurchgefuehrt = false;
public AnonymisierungslaufDetailWindow(Anonymisierungslauf anonymisierungslauf)
{
InitializeComponent();
Anonymisierungslauf = anonymisierungslauf;
if (anonymisierungslauf.Id > 0)
{
Title = "Anonymisierungslauf " + anonymisierungslauf.Id;
}
else
{
Title = "Neuer Anonymisierungslauf";
}
this.DataContext = anonymisierungslauf;
}
private void StartButton_Click(object sender, RoutedEventArgs e)
{
DurchfuehrenProgressbar.Visibility = Visibility.Visible;
StartenButton.IsEnabled = false;
MainController.AnonymisierungslaufDurchfuehren(Anonymisierungslauf, DurchfuehrenProgressbar);
this.DataContext = null;
this.DataContext = Anonymisierungslauf;
AnonymisierungslaufDurchgefuehrt = true;
VerwerfenButton.IsEnabled = false;
}
private void VerwerfenButton_Click(object sender, RoutedEventArgs e)
{
if (AnonymisierungslaufDurchgefuehrt)
{
this.Close();
}
else
{
var text = "Vorbereiteten Anonymisierungslauf wirklich verwerfen?" +
"\nDaten werden nicht gespeichert.";
var result = MessageBox.Show(text, "Vorbereiteten Anonymisierungslauf verwerfen?", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
this.Close();
}
}
}
private void SpeichernButton_Click(object sender, RoutedEventArgs e)
{
MainController.AnonymisierungslaufSpeichern(Anonymisierungslauf);
SpeichernButton.IsEnabled = false;
}
private void SchliessenButton_Click(object sender, RoutedEventArgs e)
{
if (AnonymisierungslaufDurchgefuehrt)
{
this.Close();
}
else
{
var text = "Fenster schließen und vorbereiteten Anonymisierungslauf verwerfen?" +
"\nDaten werden nicht gespeichert.";
var result = MessageBox.Show(text, "Schließen und vorbereiteten Anonymisierungslauf verwerfen?", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
this.Close();
}
}
}
private void BemerkungTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
if (BemerkungTextBox.Text.Length > 0)
{
SpeichernButton.IsEnabled = true;
}
}
}
}

View File

@@ -0,0 +1,18 @@
<dx:ThemedWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="AidA.View.AnonymisierungslaufVorbereitenWindow"
Title="Anonymisierungslauf vorbereiten" Height="209" Width="400" ResizeMode="NoResize" WindowStyle="ThreeDBorderWindow"
>
<Grid>
<Label Content="Bitte Aufbewahrungsfrist (in Jahren) eingeben." HorizontalAlignment="Left" Margin="12,13,0,0" VerticalAlignment="Top" Width="370"/>
<Label Content="Aufbewahrungsfrist (Jahre)" HorizontalAlignment="Left" Margin="12,40,0,0" VerticalAlignment="Top" Width="152"/>
<dxe:TextEdit x:Name="TextEditAufbewahrungsfrist" HorizontalAlignment="Left" Margin="169,41,0,0" VerticalAlignment="Top" Width="81" NullText="10" Mask="d" MaskType="Numeric"/>
<Button Name="VorbereitenButton" Content="Anonymisierungslauf vorbereiten" HorizontalAlignment="Left" Margin="95,137,0,0" VerticalAlignment="Top" Width="199" IsDefault="True" Click="VorbereitenButton_Click"/>
<Button Content="Abbrechen" HorizontalAlignment="Left" Margin="300,137,0,0" VerticalAlignment="Top" Width="84" IsDefault="True" Click="AbbrechenButton_Click"/>
<dxe:ProgressBarEdit x:Name="VorbereitungProgressbar" HorizontalAlignment="Left" Margin="10,77,0,0" VerticalAlignment="Top" Width="374" Height="45" ContentDisplayMode="Value" DisplayFormatString="Prüfe Anträge: {0}" Visibility="Hidden"/>
</Grid>
</dx:ThemedWindow>

View File

@@ -0,0 +1,43 @@
using AidA.Data.ViewModel;
using AidA.Service.Anonymization;
using DevExpress.Xpf.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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
{
/// <summary>
/// Interaction logic for AnonymisierungslaufVorbereitenWindow.xaml
/// </summary>
public partial class AnonymisierungslaufVorbereitenWindow : ThemedWindow
{
public AnonymisierungslaufVorbereitenWindow()
{
InitializeComponent();
}
private void AbbrechenButton_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void VorbereitenButton_Click(object sender, RoutedEventArgs e)
{
VorbereitungProgressbar.Visibility = Visibility.Visible;
MainController.AnonymisierungslaufVorbereiten2(Int32.Parse(TextEditAufbewahrungsfrist.Text), VorbereitungProgressbar);
this.Close();
}
}
}

BIN
AidA/View/DAS-Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -0,0 +1,25 @@
<dx:ThemedWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="AidA.View.LoginWindow"
Title="AidA Administration" Height="350" Width="430" ResizeMode="NoResize" WindowStyle="ThreeDBorderWindow"
>
<Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="100" Source="DAS-Logo.png"/>
<Label Content="Herzlich willkommen!" HorizontalAlignment="Left" Margin="147,110,0,0" VerticalAlignment="Top" Width="242" FontWeight="Bold"/>
<Label Content="Bitte Benutzer wählen und Passwort eingeben." HorizontalAlignment="Left" Margin="147,130,0,0" VerticalAlignment="Top" Width="247"/>
<Label Content="Anmeldename:" HorizontalAlignment="Left" Margin="147,169,0,0" VerticalAlignment="Top" Width="88"/>
<TextBox Name="TextBoxAnmeldename" HorizontalAlignment="Left" Height="22" Margin="235,169,0,0" VerticalAlignment="Top" Width="154" IsEnabled="False" />
<Label Content="DB-Benutzer:" HorizontalAlignment="Left" Margin="147,196,0,0" VerticalAlignment="Top" Width="103"/>
<Label Content="DB-Passwort:" HorizontalAlignment="Left" Margin="147,223,0,0" VerticalAlignment="Top" Width="88"/>
<ComboBox Name="ComboBoxBenutzername" HorizontalAlignment="Left" Margin="235,196,0,0" VerticalAlignment="Top" Width="154"/>
<PasswordBox x:Name="PasswordBoxUserPassword" HorizontalAlignment="Left" Height="22" Margin="235,223,0,0" VerticalAlignment="Top" Width="154" />
<Button Content="Anmelden" HorizontalAlignment="Left" Margin="235,272,0,0" VerticalAlignment="Top" Width="154" IsDefault="True" Click="AnmeldenButton_Click"/>
</Grid>
</dx:ThemedWindow>

View File

@@ -0,0 +1,63 @@
using DevExpress.Xpf.Core;
using System;
using System.Collections.Generic;
using System.Windows;
namespace AidA.View
{
/// <summary>
/// Interaction logic for LoginWindow.xaml
/// </summary>
public partial class LoginWindow : ThemedWindow
{
// "ingo-meurer", "ralf-puetz", "benjamin-schmitz" nathalie-freydin", "anne-vonfallois"
private List<String> UserList = new List<string> { "", "aida" };
public LoginWindow()
{
try
{
InitializeComponent();
TextBoxAnmeldename.Text = Environment.UserName;
foreach (var user in UserList)
{
ComboBoxBenutzername.Items.Add(user);
}
if (Environment.UserName.Equals("kojob"))
{
ComboBoxBenutzername.Items.Add("kojo");
}
}
catch (Exception ex)
{
MessageBox.Show("Fehler beim Initialisieren der Benutzeroberflächen");
}
}
private void AnmeldenButton_Click(object sender, RoutedEventArgs e)
{
var text = "Bitte einen der verfügbaren Datenbank-Benutzer auswählen und dessen Passwort eingeben.";
if (ComboBoxBenutzername.SelectedItem != null)
{
string user = (string)ComboBoxBenutzername.SelectedItem;
if (user.Length > 0)
{
MainController.Login(user, PasswordBoxUserPassword.Password, this);
}
else
{
MessageBox.Show(text, "Datenbank-Benutzer auswählen", MessageBoxButton.OK);
}
}
else
{
MessageBox.Show(text, "Datenbank-Benutzer auswählen", MessageBoxButton.OK);
}
}
}
}

107
AidA/View/MainController.cs Normal file
View File

@@ -0,0 +1,107 @@
using AidA.Data;
using AidA.Data.Entities;
using AidA.Service.Anonymization;
using DevExpress.Xpf.Editors;
using System;
using System.Windows;
namespace AidA.View
{
public static class MainController
{
private static string WindowsUserName { get; set; }
private static string DatabaseUserName { get; set; }
private static LoginWindow LoginWindow { get; set; }
private static MainWindow MainWindow { get; set; }
private static AnonymisierungslaufVorbereitenWindow AnonymisierungslaufVorbereitenWindow { get; set; }
private static AnonymisierungslaufDetailWindow AnonymisierungslaufDetailWindow { get; set; }
private static AnonymisierungsAusnahmenWindow AnonymisierungsAusnahmenWindow { get; set; }
private static AnonymizationManager AnonymizationManager { get; set; }
public static void Login(string databaseUserName, string password, LoginWindow loginWindow)
{
WindowsUserName = Environment.UserName;
DatabaseUserName = databaseUserName;
try
{
HibernateHelper.Connect(databaseUserName, password);
LoginWindow = loginWindow;
LoginWindow.Hide();
MainWindow = new MainWindow();
MainWindow.ShowDialog();
}
catch (Exception ex)
{
var text = "(Datenbank-) Login fehlgeschlagen.\n\n" +
ex.Message + "\n\n" +
"Bitte Zugangsdaten prüfen.";
MessageBox.Show(text, "Datenbank-Login fehlgeschlagen.", MessageBoxButton.OK);
}
}
public static void AnonymisierungslaufVorbereiten1()
{
AnonymisierungslaufVorbereitenWindow = new AnonymisierungslaufVorbereitenWindow();
AnonymisierungslaufVorbereitenWindow.ShowDialog();
}
public static void AnonymisierungslaufVorbereiten2(int aufbewahrungsfrist, ProgressBarEdit vorbereitungProgressbar)
{
AnonymizationManager = new AnonymizationManager(WindowsUserName);
Anonymisierungslauf anonymisierungslauf = AnonymizationManager.AnonymisierungslaufVorbereiten(aufbewahrungsfrist, vorbereitungProgressbar);
AnonymisierungslaufVorbereitenWindow.Hide();
vorbereitungProgressbar.Visibility = System.Windows.Visibility.Hidden;
AnonymisierungslaufDetailWindow = new AnonymisierungslaufDetailWindow(anonymisierungslauf);
AnonymisierungslaufDetailWindow.ShowDialog();
}
public static void AnonymisierungslaufDurchfuehren(Anonymisierungslauf anonymisierungslauf, ProgressBarEdit durchfuehrenProgressbar)
{
AnonymizationManager.AnonymisierungslaufDurchfuehren(anonymisierungslauf, durchfuehrenProgressbar);
}
public static void AnonymisierungslaufSpeichern(Anonymisierungslauf anonymisierungslauf)
{
AnonymizationManager.AnonymisierungslaufSpeichern(anonymisierungslauf);
}
public static void AnonymisierungsAusnahmenBearbeiten()
{
AnonymisierungsAusnahmenWindow = new AnonymisierungsAusnahmenWindow();
AnonymisierungsAusnahmenWindow.ShowDialog();
}
public static void AnonymisierungsAusnahmeHinzufuegen(long antragsNummer)
{
if (AnonymizationManager is null)
{
AnonymizationManager = new AnonymizationManager(WindowsUserName);
}
AnonymizationManager.AnonymisierungsAusnahmeHinzufuegen(antragsNummer);
}
public static void AnonymisierungsAusnahmeLoeschen(Anonymisierungsausnahme anonymisierungsausnahme)
{
if (AnonymizationManager is null)
{
AnonymizationManager = new AnonymizationManager(WindowsUserName);
}
AnonymizationManager.AnonymisierungsAusnahmeLoeschen(anonymisierungsausnahme);
}
public static void DatenbankSichern()
{
String dbBackupVerzeichnis = Properties.Settings.Default.DbBackupVerzeichnis;
var dateiname = dbBackupVerzeichnis + "AidA_DB_Backup_" + String.Format("{0:yyyyMMdd HHmm}", DateTime.Now) + ".bak";
Database.DbSichern(dateiname);
}
}
}

44
AidA/View/MainWindow.xaml Normal file
View File

@@ -0,0 +1,44 @@
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace: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"
mc:Ignorable="d"
Title="AidA Administration" Height="973" Width="1607" MinWidth="1603" MinHeight="973" ResizeMode="NoResize">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="383*"/>
<ColumnDefinition Width="415*"/>
</Grid.ColumnDefinitions>
<Image HorizontalAlignment="Left" Height="100" Margin="719.5,10,0,0" VerticalAlignment="Top" Width="100" Source="DAS-Logo.png" Grid.Column="1"/>
<dxg:GridControl x:Name="MainGridControl" AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Left" Height="712" Margin="5,115,0,0" VerticalAlignment="Top" Width="1578" Grid.ColumnSpan="2">
<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.RuntimeLocalizationStrings>
<dxg:GridRuntimeStringCollection>
<dxg:RuntimeStringIdInfo Id="GridGroupPanelText" Value="Ziehen Sie eine Spaltenüberschrift hierher, um nach dieser Spalte zu gruppieren." />
</dxg:GridRuntimeStringCollection>
</dxg:TableView.RuntimeLocalizationStrings>
</dxg:TableView>
</dxg:GridControl.View>
</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="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="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="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="AntragsStati" HorizontalAlignment="Left" Height="73" Margin="387,846,0,0" VerticalAlignment="Top" Width="86" Click="AntragsStati_Click" Glyph="{dx:DXImage SvgImages/Business Objects/BO_StateMachine.svg}" GlyphAlignment="Top"/>
<dx:SimpleButton Content="AntragsGegenstände" HorizontalAlignment="Left" Height="73" Margin="478,846,0,0" VerticalAlignment="Top" Width="132" Click="AntragsGegenstaende_Click" Glyph="{dx:DXImage SvgImages/Icon Builder/Business_EuroCircled.svg}" GlyphAlignment="Top"/>
<dx:SimpleButton Content="AntragsPersonenDaten" HorizontalAlignment="Left" Height="73" Margin="615,846,0,0" VerticalAlignment="Top" Width="146" Click="AntragsPersonenDaten_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Business Objects/BO_Lead.svg}"/>
<dx:SimpleButton Content="Ansprechpartner" HorizontalAlignment="Left" Height="73" Margin="0,846,0,0" VerticalAlignment="Top" Width="120" Click="Ansprechpartner_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Business Objects/BO_Department.svg}" Grid.Column="1"/>
<dx:SimpleButton Content="Beratungsstellen" HorizontalAlignment="Left" Height="73" Margin="125,846,0,0" VerticalAlignment="Top" Width="110" Click="Beratungsstellen_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Business Objects/BO_MyDetails.svg}" Grid.Column="1"/>
<dx:SimpleButton Content="KontaktInfos" HorizontalAlignment="Left" Height="73" Margin="240,846,0,0" VerticalAlignment="Top" Width="96" Click="KontaktInfos_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Business Objects/BO_Phone.svg}" Grid.Column="1"/>
<dx:SimpleButton Content="FinanzTransaktionen" HorizontalAlignment="Left" Height="73" Margin="341,846,0,0" VerticalAlignment="Top" Width="130" Click="FinanzTransaktionen_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Outlook Inspired/IndentIncrease.svg}" Grid.Column="1"/>
<dx:SimpleButton Content="ZahlungenSEPA" HorizontalAlignment="Left" Height="73" Margin="476,846,0,0" VerticalAlignment="Top" Width="110" Click="ZahlungenSEPA_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Spreadsheet/AccountingNumberFormat.svg}" Grid.Column="1"/>
<dx:SimpleButton Content="Kommunikationen" HorizontalAlignment="Left" Height="73" Margin="591,846,0,0" VerticalAlignment="Top" Width="118" Click="Kommunikationen_Click" GlyphAlignment="Top" Glyph="{dx:DXImage SvgImages/Business Objects/BO_List.svg}" Grid.Column="1"/>
<dx:SimpleButton Content="Mitarbeiter" HorizontalAlignment="Left" Height="73" Margin="714,846,0,0" VerticalAlignment="Top" Width="88" Click="Mitarbeiter_Click" GlyphAlignment="Top" Grid.Column="1" Glyph="{dx:DXImage SvgImages/Icon Builder/Business_Businesswoman.svg}"/>
</Grid>
</Window>

View File

@@ -0,0 +1,129 @@
using AidA.Data;
using AidA.Data.Entities;
using AidA.View;
using System.Windows;
namespace AidA
{
/// <summary>
/// Interaktionslogik für MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MainTableView_Loaded(object sender, RoutedEventArgs e)
{
this.MainTableView.BestFitColumns();
}
private void Anonymisierungslaeufe_Click(object sender, RoutedEventArgs e)
{
var anonymisierungslaeufe = Database.GetAll<Anonymisierungslauf>();
MainGridControl.ItemsSource = anonymisierungslaeufe;
this.MainTableView.BestFitColumns();
}
private void Anonymisierungen_Click(object sender, RoutedEventArgs e)
{
var anonymisierungen = Database.GetAll<Anonymisierung>();
MainGridControl.ItemsSource = anonymisierungen;
this.MainTableView.BestFitColumns();
}
private void Antraege_Click(object sender, RoutedEventArgs e)
{
var antraege = Database.GetAll<Antrag>();
MainGridControl.ItemsSource = antraege;
//this.MainTableView.BestFitColumns();
}
private void AntragsStati_Click(object sender, RoutedEventArgs e)
{
var antragsStati = Database.GetAll<AntragsStatus>();
MainGridControl.ItemsSource = antragsStati;
this.MainTableView.BestFitColumns();
}
private void AntragsGegenstaende_Click(object sender, RoutedEventArgs e)
{
var antragsGegenstaende = Database.GetAll<AntragsGegenstand>();
MainGridControl.ItemsSource = antragsGegenstaende;
//this.MainTableView.BestFitColumns();
}
private void AntragsPersonenDaten_Click(object sender, RoutedEventArgs e)
{
var antragsPersonenDaten = Database.GetAll<AntragsPersonenDaten>();
MainGridControl.ItemsSource = antragsPersonenDaten;
//this.MainTableView.BestFitColumns();
}
private void Ansprechpartner_Click(object sender, RoutedEventArgs e)
{
var ansprechpartner = Database.GetAll<Ansprechpartner>();
MainGridControl.ItemsSource = ansprechpartner;
this.MainTableView.BestFitColumns();
}
private void Beratungsstellen_Click(object sender, RoutedEventArgs e)
{
var beratungsstellen = Database.GetAll<Beratungsstelle>();
MainGridControl.ItemsSource = beratungsstellen;
this.MainTableView.BestFitColumns();
}
private void KontaktInfos_Click(object sender, RoutedEventArgs e)
{
var kontaktInfos = Database.GetAll<KontaktInfo>();
MainGridControl.ItemsSource = kontaktInfos;
this.MainTableView.BestFitColumns();
}
private void FinanzTransaktionen_Click(object sender, RoutedEventArgs e)
{
var finanzTransaktionen = Database.GetAll<FinanzTransaktion>();
MainGridControl.ItemsSource = finanzTransaktionen;
//this.MainTableView.BestFitColumns();
}
private void ZahlungenSEPA_Click(object sender, RoutedEventArgs e)
{
var zahlungenSEPA = Database.GetAll<ZahlungSEPA>();
MainGridControl.ItemsSource = zahlungenSEPA;
this.MainTableView.BestFitColumns();
}
private void Kommunikationen_Click(object sender, RoutedEventArgs e)
{
var kommunikationen = Database.GetAll<Kommunikation>();
MainGridControl.ItemsSource = kommunikationen;
this.MainTableView.BestFitColumns();
}
private void Mitarbeiter_Click(object sender, RoutedEventArgs e)
{
var mitarbeiter = Database.GetAll<Mitarbeiter>();
MainGridControl.ItemsSource = mitarbeiter;
this.MainTableView.BestFitColumns();
}
private void AnonymisierungslaufVorbereiten_Click(object sender, RoutedEventArgs e)
{
MainController.AnonymisierungslaufVorbereiten1();
}
private void Anonymisierungsausnahmen_Click(object sender, RoutedEventArgs e)
{
MainController.AnonymisierungsAusnahmenBearbeiten();
}
private void DbSichern_Click(object sender, RoutedEventArgs e)
{
MainController.DatenbankSichern();
}
}
}

20
AidA/hibernate.cfg.xml Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section
name="hibernate-configuration"
type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property>
<property name="connection.connection_string">
Server=localhost\SQLEXPRESS;initial catalog=aida-dev;Integrated Security=False;User ID=userId;Password=userPwd
</property>
<mapping assembly="AidA" />
</session-factory>
</hibernate-configuration>
</configuration>

8
AidA/packages.config Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr3.Runtime" version="3.5.1" targetFramework="net472" />
<package id="Iesi.Collections" version="4.0.4" targetFramework="net472" />
<package id="NHibernate" version="5.5.2" targetFramework="net472" />
<package id="Remotion.Linq" version="2.2.0" targetFramework="net472" />
<package id="Remotion.Linq.EagerFetching" version="2.2.0" targetFramework="net472" />
</packages>

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,552 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Iesi.Collections</name>
</assembly>
<members>
<member name="T:Iesi.Collections.Generic.LinkedHashSet`1">
<summary>
Implementation of ISet that also maintains a linked list over all elements.
Enumeration of this set is guaranteed to return the elements in the order
they were added.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
<param name="initialValues"></param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a proper (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CountOthers(System.Collections.Generic.IEnumerable{`0},System.Int32@)">
<summary>
Count the elements in the given collection and determine both the total
count and how many of the elements that are present in the current set.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.AsSet(System.Collections.Generic.IEnumerable{`0})">
<summary>
Cast the given collection to an ISet&lt;T&gt; if possible. If not,
return a new set containing the items.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Unlink(Iesi.Collections.Generic.LinkedHashSet{`0}.LinkedHashNode{`0})">
<summary>
Unlink a node from the linked list by updating the node pointers in
its preceeding and subsequent node. Also update the _first and _last
pointers if necessary.
</summary>
</member>
<member name="T:Iesi.Collections.Generic.ReadOnlySet`1">
<summary>
<p>Implements a read-only <c>Set</c> wrapper.</p>
<p>Although this is advertised as immutable, it really isn't. Anyone with access to the
wrapped set can still change the set.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs an immutable (read-only) <c>Set</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> that is wrapped.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
True.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="T:Iesi.Collections.Generic.SynchronizedSet`1">
<summary>
<p>Implements a thread-safe <c>Set</c> wrapper. The implementation is extremely conservative,
serializing critical sections to prevent possible deadlocks, and locking on everything.
The one exception is for enumeration, which is inherently not thread-safe. For this, you
have to <c>lock</c> the <c>SyncRoot</c> object for the duration of the enumeration.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs a thread-safe <c>ISet</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> object that this object will wrap.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
</members>
</doc>

Binary file not shown.

View File

@@ -0,0 +1,552 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Iesi.Collections</name>
</assembly>
<members>
<member name="T:Iesi.Collections.Generic.LinkedHashSet`1">
<summary>
Implementation of ISet that also maintains a linked list over all elements.
Enumeration of this set is guaranteed to return the elements in the order
they were added.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
<param name="initialValues"></param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a proper (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CountOthers(System.Collections.Generic.IEnumerable{`0},System.Int32@)">
<summary>
Count the elements in the given collection and determine both the total
count and how many of the elements that are present in the current set.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.AsSet(System.Collections.Generic.IEnumerable{`0})">
<summary>
Cast the given collection to an ISet&lt;T&gt; if possible. If not,
return a new set containing the items.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Unlink(Iesi.Collections.Generic.LinkedHashSet{`0}.LinkedHashNode{`0})">
<summary>
Unlink a node from the linked list by updating the node pointers in
its preceeding and subsequent node. Also update the _first and _last
pointers if necessary.
</summary>
</member>
<member name="T:Iesi.Collections.Generic.ReadOnlySet`1">
<summary>
<p>Implements a read-only <c>Set</c> wrapper.</p>
<p>Although this is advertised as immutable, it really isn't. Anyone with access to the
wrapped set can still change the set.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs an immutable (read-only) <c>Set</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> that is wrapped.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
True.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="T:Iesi.Collections.Generic.SynchronizedSet`1">
<summary>
<p>Implements a thread-safe <c>Set</c> wrapper. The implementation is extremely conservative,
serializing critical sections to prevent possible deadlocks, and locking on everything.
The one exception is for enumeration, which is inherently not thread-safe. For this, you
have to <c>lock</c> the <c>SyncRoot</c> object for the duration of the enumeration.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs a thread-safe <c>ISet</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> object that this object will wrap.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
</members>
</doc>

View File

@@ -0,0 +1,552 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Iesi.Collections</name>
</assembly>
<members>
<member name="T:Iesi.Collections.Generic.LinkedHashSet`1">
<summary>
Implementation of ISet that also maintains a linked list over all elements.
Enumeration of this set is guaranteed to return the elements in the order
they were added.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
<param name="initialValues"></param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a proper (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CountOthers(System.Collections.Generic.IEnumerable{`0},System.Int32@)">
<summary>
Count the elements in the given collection and determine both the total
count and how many of the elements that are present in the current set.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.AsSet(System.Collections.Generic.IEnumerable{`0})">
<summary>
Cast the given collection to an ISet&lt;T&gt; if possible. If not,
return a new set containing the items.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Unlink(Iesi.Collections.Generic.LinkedHashSet{`0}.LinkedHashNode{`0})">
<summary>
Unlink a node from the linked list by updating the node pointers in
its preceeding and subsequent node. Also update the _first and _last
pointers if necessary.
</summary>
</member>
<member name="T:Iesi.Collections.Generic.ReadOnlySet`1">
<summary>
<p>Implements a read-only <c>Set</c> wrapper.</p>
<p>Although this is advertised as immutable, it really isn't. Anyone with access to the
wrapped set can still change the set.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs an immutable (read-only) <c>Set</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> that is wrapped.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
True.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="T:Iesi.Collections.Generic.SynchronizedSet`1">
<summary>
<p>Implements a thread-safe <c>Set</c> wrapper. The implementation is extremely conservative,
serializing critical sections to prevent possible deadlocks, and locking on everything.
The one exception is for enumeration, which is inherently not thread-safe. For this, you
have to <c>lock</c> the <c>SyncRoot</c> object for the duration of the enumeration.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs a thread-safe <c>ISet</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> object that this object will wrap.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
</members>
</doc>

View File

@@ -0,0 +1,552 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Iesi.Collections</name>
</assembly>
<members>
<member name="T:Iesi.Collections.Generic.LinkedHashSet`1">
<summary>
Implementation of ISet that also maintains a linked list over all elements.
Enumeration of this set is guaranteed to return the elements in the order
they were added.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.LinkedHashSet`1"/> class.
</summary>
<param name="initialValues"></param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.LinkedHashSet`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a proper (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.CountOthers(System.Collections.Generic.IEnumerable{`0},System.Int32@)">
<summary>
Count the elements in the given collection and determine both the total
count and how many of the elements that are present in the current set.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.AsSet(System.Collections.Generic.IEnumerable{`0})">
<summary>
Cast the given collection to an ISet&lt;T&gt; if possible. If not,
return a new set containing the items.
</summary>
</member>
<member name="M:Iesi.Collections.Generic.LinkedHashSet`1.Unlink(Iesi.Collections.Generic.LinkedHashSet{`0}.LinkedHashNode{`0})">
<summary>
Unlink a node from the linked list by updating the node pointers in
its preceeding and subsequent node. Also update the _first and _last
pointers if necessary.
</summary>
</member>
<member name="T:Iesi.Collections.Generic.ReadOnlySet`1">
<summary>
<p>Implements a read-only <c>Set</c> wrapper.</p>
<p>Although this is advertised as immutable, it really isn't. Anyone with access to the
wrapped set can still change the set.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs an immutable (read-only) <c>Set</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> that is wrapped.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ICollection{T}#Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.ReadOnlySet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
True.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.System#Collections#Generic#ISet{T}#SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
<exception cref="T:System.NotSupportedException"> is always thrown</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.ReadOnlySet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="T:Iesi.Collections.Generic.SynchronizedSet`1">
<summary>
<p>Implements a thread-safe <c>Set</c> wrapper. The implementation is extremely conservative,
serializing critical sections to prevent possible deadlocks, and locking on everything.
The one exception is for enumeration, which is inherently not thread-safe. For this, you
have to <c>lock</c> the <c>SyncRoot</c> object for the duration of the enumeration.</p>
</summary>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Constructs a thread-safe <c>ISet</c> wrapper.
</summary>
<param name="basisSet">The <c>Set</c> object that this object will wrap.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<returns>
true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
</returns>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
<param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param><exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<returns>
The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</returns>
</member>
<member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
</returns>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains all elements that are present in either the current set or in the specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current set.
</summary>
<param name="other">The collection of items to remove from the set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a set is a subset of a specified collection.
</summary>
<returns>
true if the current set is a subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a superset of a specified collection.
</summary>
<returns>
true if the current set is a superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a correct superset of a specified collection.
</summary>
<returns>
true if the <see cref="T:System.Collections.Generic.ISet`1"/> object is a correct superset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set. </param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set is a property (strict) subset of a specified collection.
</summary>
<returns>
true if the current set is a correct subset of <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set overlaps with the specified collection.
</summary>
<returns>
true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current set and the specified collection contain the same elements.
</summary>
<returns>
true if the current set is equal to <paramref name="other"/>; otherwise, false.
</returns>
<param name="other">The collection to compare to the current set.</param><exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Add(`0)">
<summary>
Adds an element to the current set and returns a value to indicate if the element was successfully added.
</summary>
<returns>
true if the element is added to the set; false if the element is already in the set.
</returns>
<param name="item">The element to add to the set.</param>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through a collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
</returns>
<filterpriority>2</filterpriority>
</member>
<member name="M:Iesi.Collections.Generic.SynchronizedSet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection. Enumeration is inherently not
thread-safe. Use a <c>lock</c> on the <c>SyncRoot</c> to synchronize the entire enumeration process.
</summary>
<returns>
A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
</returns>
<filterpriority>1</filterpriority>
</member>
</members>
</doc>

BIN
packages/NHibernate.5.5.2/.signature.p7s vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
To work with FireBird you must add the assembly binding for FirebirdClient ADO.NET 2.0 DataProvider
to your App.config.
Example:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="FirebirdSql.Data.FirebirdClient" fullName="FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
</assemblyBinding>
</runtime>
-->
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.FirebirdClientDriver</property>
<property name="connection.connection_string">
DataSource=localhost;
Database=nhibernate;
User ID=SYSDBA;Password=masterkey;
MaxPoolSize=200;
charset=utf8;
</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.FirebirdDialect</property>
<property name="command_timeout">60</property>
<property name="query.substitutions">true 1, false 0, yes 1, no 0</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.HanaColumnStoreDriver</property>
<!-- Sap.Data.Hana does not support re-enlisting in the same transaction, wrecking many usages
with NHibernate when both NHibernate and the connection performs auto-enlistment. -->
<property name="connection.connection_string">
Server=localhost:39015;UserID=nhibernate;Password=;
Enlist=false;
</property>
<property name="dialect">NHibernate.Dialect.HanaColumnStoreDialect</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<!-- This is the System.Data.dll provider for SQL Server -->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.Sql2008ClientDriver</property>
<property name="connection.connection_string">
Server=(local);initial catalog=nhibernate;Integrated Security=SSPI
</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">
Database=nhibernate;Data Source=localhost;User Id=nhibernate;Password=;
Old Guids=True;
</property>
<property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<!-- This is the System.Data.OracleClient.dll provider for Oracle from MS -->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.OracleManagedDataClientDriver</property>
<property name="connection.connection_string">
User ID=nhibernate;Password=nhibernate;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))
</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<!-- If your database setup use an ASCII charset, switch following property to true. -->
<property name="oracle.use_n_prefixed_types_for_unicode">false</property>
<!-- Depending on your database setup, the default cast length of 4000 may be too big.
By example, if previous setting is true, NHibernate may try to use nvarchar2(4000),
which will be rejected if its underlying charset is UTF16 and the database
MAX_STRING_SIZE is not extended. In such case, reduce it to 2000. -->
<property name="query.default_cast_length"></property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<!-- This is the System.Data.OracleClient.dll provider for Oracle from MS -->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<property name="connection.connection_string">
User ID=nhibernate;Password=nhibernate;Data Source=localhost
</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.OracleDialect</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<!-- If your database setup use an ASCII charset, switch following property to true. -->
<property name="oracle.use_n_prefixed_types_for_unicode">false</property>
<!-- Depending on your database setup, the default cast length of 4000 may be too big.
By example, if previous setting is true, NHibernate may try to use nvarchar2(4000),
which will be rejected if its underlying charset is UTF16 and the database
MAX_STRING_SIZE is not extended. In such case, reduce it to 2000. -->
<property name="query.default_cast_length"></property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
<property name="connection.connection_string">
Server=localhost;Database=nhibernate;User ID=nhibernate;Password=nhibernate;Enlist=true;
</property>
<property name="dialect">NHibernate.Dialect.PostgreSQL83Dialect</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
<!-- DateTimeFormatString allows to prevent storing the fact that written date was having kind UTC,
which dodges the undesirable time conversion to local done on reads by System.Data.SQLite.
See https://system.data.sqlite.org/index.html/tktview/44a0955ea344a777ffdbcc077831e1adc8b77a36
and https://github.com/nhibernate/nhibernate-core/issues/1362 -->
<property name="connection.connection_string">
Data Source=nhibernate.db;
DateTimeFormatString=yyyy-MM-dd HH:mm:ss.FFFFFFF;
</property>
<property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it hibernate.cfg.xml. Change it
for your own use before compiling tests in Visual Studio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.SapSQLAnywhere17Driver</property>
<!-- Sap.Data.SQLAnywhere does not support re-enlisting in the same transaction, wrecking many usages
with NHibernate when both NHibernate and the connection performs auto-enlistment. Setting
"Enlist=false;" in the connection string solves this.
It also requires to have the MSDTC service running, even for transaction scopes using a
single connection. -->
<property name="connection.connection_string">
UID=DBA;PWD=sql;Server=localhost;DBN=nhibernate;DBF=c:\nhibernate.db;ASTOP=No;Enlist=false;
</property>
<property name="dialect">NHibernate.Dialect.SapSQLAnywhere17Dialect</property>
<property name="query.substitutions">true=1;false=0</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it
for your own use before compile tests in VisualStudio.
-->
<!-- This is the System.Data.dll provider for SQL Server -->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="command_timeout">0</property>
<property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property>
<property name="connection.connection_string">
Data Source=NHibernate.sdf
</property>
<property name="dialect">NHibernate.Dialect.MsSqlCe40Dialect</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it hibernate.cfg.xml. Change it
for your own use before compiling tests in Visual Studio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.SybaseAseClientDriver</property>
<property name="connection.connection_string">
Data Source=10.0.0.1;Port=5000;Database=nhibernate;User ID=nhibernate;Password=password
</property>
<property name="dialect">NHibernate.Dialect.SybaseASE15Dialect</property>
<property name="query.substitutions">true=1;false=0</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it hibernate.cfg.xml. Change it
for your own use before compiling tests in Visual Studio.
-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.SybaseSQLAnywhereDriver</property>
<property name="connection.connection_string">
UID=DBA;PWD=sql;Server=localhost;DBN=nhibernate;DBF=c:\nhibernate.db;ASTOP=No
</property>
<property name="dialect">NHibernate.Dialect.SybaseSQLAnywhere12Dialect</property>
<property name="query.substitutions">true=1;false=0</property>
</session-factory>
</hibernate-configuration>

Some files were not shown because too many files have changed in this diff Show More