This commit is contained in:
SchreiberM
2016-08-17 11:32:45 +02:00
parent b811570870
commit 32192cf542
70 changed files with 7103 additions and 9527 deletions

View File

@@ -0,0 +1,18 @@
<?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="RecordOrganizer_RightManager.My.MySettings" 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.5.1" />
</startup>
<userSettings>
<RecordOrganizer_RightManager.My.MySettings>
<setting name="MyConnectionString" serializeAs="String">
<value />
</setting>
</RecordOrganizer_RightManager.My.MySettings>
</userSettings>
</configuration>

View File

@@ -0,0 +1,34 @@
Namespace My
' Für MyApplication sind folgende Ereignisse verfügbar:
'
' Startup: Wird beim Starten der Anwendung noch vor dem Erstellen des Startformulars ausgelöst.
' Shutdown: Wird nach dem Schließen aller Anwendungsformulare ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn die Anwendung nicht normal beendet wird.
' UnhandledException: Wird ausgelöst, wenn in der Anwendung ein Ausnahmefehler auftritt.
' StartupNextInstance: Wird beim Starten einer Einzelinstanzanwendung ausgelöst, wenn diese bereits aktiv ist.
' NetworkAvailabilityChanged: Wird beim Herstellen oder Trennen der Netzwerkverbindung ausgelöst.
Partial Friend Class MyApplication
Private Sub MyApplication_Startup(sender As Object, e As ApplicationServices.StartupEventArgs) Handles Me.Startup
Try
Dim args() As String = Environment.GetCommandLineArgs()
If args.Length <> 2 Then
MsgBox("No application parameters!", MsgBoxStyle.Critical)
'' Exit Sub
End If
For Each Str As String In args
If Str.Contains("Server") Then
My.Settings.MyConnectionString = Str
My.Settings.Save()
End If
Next
Catch ex As Exception
MsgBox("Error in ParseArgs:" & vbNewLine & ex.Message)
Exit Sub
End Try
End Sub
End Class
End Namespace

View File

@@ -0,0 +1,9 @@
Module ModuleMySettings
Public USER_IS_ADMIN = False
Public USERS_LOGGED_IN = 0
Public USER_GUID = 0
Public USERID_FK_INT_ECM = 0
Public USER_LANGUAGE As String = "de-DE"
Public USER_DATE_FORMAT As String
Public USER_WAN As Boolean = False
End Module

View File

@@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34209
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
' or if you encounter build errors in this file, go to the Project Designer
' (go to Project Properties or double-click the My Project node in
' Solution Explorer), and make changes on the Application tab.
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.RecordOrganizer_RightManager.frmStart
End Sub
End Class
End Namespace

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-16"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>frmStart</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' Allgemeine Informationen über eine Assembly werden über die folgenden
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
' die mit einer Assembly verknüpft sind.
' Die Werte der Assemblyattribute überprüfen
<Assembly: AssemblyTitle("RecordOrganizer_RightManager")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("RecordOrganizer_RightManager")>
<Assembly: AssemblyCopyright("Copyright © 2016")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
<Assembly: Guid("82da1d4f-b7ab-4a41-9eb8-6d0d2c384cc9")>
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
'
' Hauptversion
' Nebenversion
' Buildnummer
' Revision
'
' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -0,0 +1,93 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.34209
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
'-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 /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
'''<summary>
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("RecordOrganizer_RightManager.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property cancel() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("cancel", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property cancel1() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("cancel1", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property folder_Closed_16xSM() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("folder_Closed_16xSM", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
End Module
End Namespace

View File

@@ -0,0 +1,130 @@
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
<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" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</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" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cancel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_Closed_16xSM" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_Closed_16xSM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -0,0 +1,86 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.34209
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "Funktion zum automatischen Speichern von My.Settings"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute(""), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property MyConnectionString() As String
Get
Return CType(Me("MyConnectionString"),String)
End Get
Set
Me("MyConnectionString") = value
End Set
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.RecordOrganizer_RightManager.My.MySettings
Get
Return Global.RecordOrganizer_RightManager.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="MyConnectionString" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" 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>{F1C8A9DF-2452-4E3B-9C32-0C792F6ED2E6}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>RecordOrganizer_RightManager.My.MyApplication</StartupObject>
<RootNamespace>RecordOrganizer_RightManager</RootNamespace>
<AssemblyName>RecordOrganizer_RightManager</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>RecordOrganizer_RightManager.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>RecordOrganizer_RightManager.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>navigate_right2.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="DD_Rights, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\DD_Libraries\DD_Libraries\bin\Debug\DD_Rights.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="ApplicationEvents.vb" />
<Compile Include="frmCheckRightsEntity.Designer.vb">
<DependentUpon>frmCheckRightsEntity.vb</DependentUpon>
</Compile>
<Compile Include="frmCheckRightsEntity.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmStart.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmStart.Designer.vb">
<DependentUpon>frmStart.vb</DependentUpon>
<SubType>Form</SubType>
</Compile>
<Compile Include="ModuleMySettings.vb" />
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmCheckRightsEntity.resx">
<DependentUpon>frmCheckRightsEntity.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmStart.resx">
<DependentUpon>frmStart.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\cancel.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\cancel1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\folder_Closed_16xSM.png" />
</ItemGroup>
<ItemGroup>
<Content Include="navigate_right2.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

View File

@@ -0,0 +1,125 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmCheckRightsEntity
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label()
Me.cmbentity = New System.Windows.Forms.ComboBox()
Me.btnCheckRights = New System.Windows.Forms.Button()
Me.BW_RightsEntity = New System.ComponentModel.BackgroundWorker()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.btncancel = New System.Windows.Forms.Button()
Me.chklogging = New System.Windows.Forms.CheckBox()
Me.SuspendLayout
'
'Label1
'
Me.Label1.AutoSize = true
Me.Label1.Location = New System.Drawing.Point(25, 9)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(147, 16)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Please choose an entity:"
'
'cmbentity
'
Me.cmbentity.FormattingEnabled = true
Me.cmbentity.Location = New System.Drawing.Point(28, 29)
Me.cmbentity.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.cmbentity.Name = "cmbentity"
Me.cmbentity.Size = New System.Drawing.Size(335, 24)
Me.cmbentity.TabIndex = 1
'
'btnCheckRights
'
Me.btnCheckRights.Location = New System.Drawing.Point(28, 60)
Me.btnCheckRights.Name = "btnCheckRights"
Me.btnCheckRights.Size = New System.Drawing.Size(335, 39)
Me.btnCheckRights.TabIndex = 2
Me.btnCheckRights.Text = "Check rights for all documents in this entity"
Me.btnCheckRights.UseVisualStyleBackColor = true
'
'BW_RightsEntity
'
'
'ProgressBar1
'
Me.ProgressBar1.Location = New System.Drawing.Point(28, 108)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(335, 31)
Me.ProgressBar1.TabIndex = 3
Me.ProgressBar1.Visible = false
'
'btncancel
'
Me.btncancel.Image = Global.RecordOrganizer_RightManager.My.Resources.Resources.cancel1
Me.btncancel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btncancel.Location = New System.Drawing.Point(369, 108)
Me.btncancel.Name = "btncancel"
Me.btncancel.Size = New System.Drawing.Size(75, 31)
Me.btncancel.TabIndex = 4
Me.btncancel.Text = "Cancel"
Me.btncancel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btncancel.UseVisualStyleBackColor = true
Me.btncancel.Visible = false
'
'chklogging
'
Me.chklogging.AutoSize = true
Me.chklogging.Checked = true
Me.chklogging.CheckState = System.Windows.Forms.CheckState.Checked
Me.chklogging.Location = New System.Drawing.Point(379, 31)
Me.chklogging.Name = "chklogging"
Me.chklogging.Size = New System.Drawing.Size(113, 20)
Me.chklogging.TabIndex = 5
Me.chklogging.Text = "Log errors only"
Me.chklogging.UseVisualStyleBackColor = true
'
'frmCheckRightsEntity
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7!, 16!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(755, 321)
Me.Controls.Add(Me.chklogging)
Me.Controls.Add(Me.btncancel)
Me.Controls.Add(Me.ProgressBar1)
Me.Controls.Add(Me.btnCheckRights)
Me.Controls.Add(Me.cmbentity)
Me.Controls.Add(Me.Label1)
Me.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.Name = "frmCheckRightsEntity"
Me.ShowInTaskbar = false
Me.Text = "Check Rights for Entity"
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents cmbentity As System.Windows.Forms.ComboBox
Friend WithEvents btnCheckRights As System.Windows.Forms.Button
Friend WithEvents BW_RightsEntity As System.ComponentModel.BackgroundWorker
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents btncancel As System.Windows.Forms.Button
Friend WithEvents chklogging As System.Windows.Forms.CheckBox
End Class

View File

@@ -0,0 +1,123 @@
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
<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" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</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" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="BW_RightsEntity.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,92 @@
Imports DD_Rights
Imports System.ComponentModel
Public Class frmCheckRightsEntity
Private DT_FILES As DataTable
Private _error As Boolean = False
Private Sub frmCheckRightsEntity_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
Dim sql = String.Format("SELECT T.FORM_ID, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), T.[FORM_VIEW_ID]), 1) AS FORM_TITLE FROM VWPMO_CONSTRUCTOR_FORMS T WHERE DOCUMENT_VIEW = 1", USER_LANGUAGE)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
cmbentity.DataSource = DT
cmbentity.ValueMember = DT.Columns(0).ColumnName
cmbentity.DisplayMember = DT.Columns(1).ColumnName
Catch ex As Exception
MsgBox("Unexpected error in load form: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub btnCheckRights_Click(sender As Object, e As EventArgs) Handles btnCheckRights.Click
If cmbentity.SelectedIndex <> -1 Then
Try
Me.ProgressBar1.Visible = True
'BackgroundWorker erstellen ...
BW_RightsEntity = New BackgroundWorker
BW_RightsEntity.WorkerReportsProgress = True
DT_FILES = ClassDatabase.Return_Datatable(String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH where ENTITY_ID = {0}", cmbentity.SelectedValue))
If DD_Rights.ClassRights.Init(cmbentity.SelectedValue, chklogging.Checked, DT_FILES.Rows.Count) = False Then
MsgBox("Could not init rights management. " & vbNewLine & "Check logfile", MsgBoxStyle.Critical)
Exit Sub
End If
ProgressBar1.Maximum = DT_FILES.Rows.Count
AddHandler BW_RightsEntity.DoWork, AddressOf bw_DoWork
'.. und starten
BW_RightsEntity.RunWorkerAsync()
Catch ex As Exception
MsgBox("Unexpected error in starting backgroundworker: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Me.ProgressBar1.Visible = False
End Try
End If
End Sub
Private Sub BW_RightsEntity_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BW_RightsEntity.ProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
_error = False
Dim i As Integer = 1
For Each row As DataRow In DT_FILES.Rows
If BW_RightsEntity.CancellationPending = True Then
e.Cancel = True
Exit For
Else
If DD_Rights.ClassRights.Collect_Users(row.Item("RECORD_ID")) = True Then
If DD_Rights.ClassRights.File_DeleteAndSetRight(row.Item("FULL_FILENAME"), True) Then
If DD_Rights.ClassRights.MSG_RESULT <> "" Then
MsgBox("Unexpected Errors in setting rights: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT, MsgBoxStyle.Exclamation)
_error = True
Else
End If
Else
_error = True
End If
Else
_error = True
End If
BW_RightsEntity.ReportProgress(i)
i += 1
End If
Next
End Sub
Private Sub btncancel_Click(sender As Object, e As EventArgs) Handles btncancel.Click
' Cancel the asynchronous operation.
Me.BW_RightsEntity.CancelAsync()
End Sub
Private Sub BW_RightsEntity_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BW_RightsEntity.RunWorkerCompleted
Try
btncancel.Visible = False
ProgressBar1.Visible = False
If _error = False Then
MsgBox("All rights of files belonging to entity were checked and refreshed successfully!", MsgBoxStyle.Information)
Else
MsgBox("Some errors occured while checking and setting the rights...please check the log!", MsgBoxStyle.Exclamation)
End If
Catch ex As Exception
End Try
End Sub
End Class

View File

@@ -0,0 +1,69 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmStart
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmStart))
Me.Button1 = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Button1.Location = New System.Drawing.Point(12, 12)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(194, 45)
Me.Button1.TabIndex = 0
Me.Button1.Text = "Check Rights for Entity"
Me.Button1.UseVisualStyleBackColor = True
'
'Button2
'
Me.Button2.Image = Global.RecordOrganizer_RightManager.My.Resources.Resources.folder_Closed_16xSM
Me.Button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.Button2.Location = New System.Drawing.Point(706, 23)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(111, 23)
Me.Button2.TabIndex = 1
Me.Button2.Text = "Open Log Path"
Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Button2.UseVisualStyleBackColor = True
'
'frmStart
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(829, 402)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmStart"
Me.Text = "Rights Manager"
Me.ResumeLayout(False)
End Sub
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
End Class

View File

@@ -0,0 +1,570 @@
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
<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" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</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" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAgAEBAAAAEACABoBQAAhgAAABAQAAABACAAaAQAAO4FAAAYGAAAAQAIAMgGAABWCgAAGBgAAAEA
IACICQAAHhEAACAgAAABAAgAqAgAAKYaAAAgIAAAAQAgAKgQAABOIwAAMDAAAAEACACoDgAA9jMAADAw
AAABACAAqCUAAJ5CAAAoAAAAEAAAACAAAAABAAgAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
/wDxigAA9sN/AJxcPgC1lHYA96o7AMRjDQDSgjcAm0IRALaAUwDmqVwA0557ANCPXgDWeRUAs3A9APq7
XwDumCkAnU4pALFTDQDHcCYA13AAAK+AZwCqYTAA9ZcWANCISwDjfgAAwIpjAPGrTwClTBoA03wlAKhG
CADLbhUAsX1EAMGHTAC4XBYA3Io6AMhjAQC2dEsAuI9rALaFXwDRcgwAxG8xAOekUgDDZRgAnlY1AMJo
IgDQdRwAnUkfAM9qAQDsiAgAuoVoAMNuGwDddwAAqlspAOqEAADIkGIAvF0OAMCDVAC9lHIA8pIQAMuF
UQDNfTsAp0kTANh1BgC0cEUAvoVeALmOcwC3dToA0XETALl6TQC8l3gAzHIgALdVDQDTfisAxnMtAO+b
LgCtUBAAwmoWAM1wGwDPeigA0H8zAPKuUwDHaBcAsXRGANNtAAC7jGkAu31QAKpKCQD3qDcA1ncRANCK
TwDGaxwA+bpjAOaAAACdRBMAnkoiAOuHBQC5hF4AtnQ9ANhzAADRj1sAvZV2ANlzBAC3eU8A+MN9AOyG
AACxgGUAznMcANF8IwDUeyMAnEohANGITwDlfwAA24s6ANKeewDjfQAA1nAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAFZjAAAAACFXAAAAAAAAADskK2gAACILcjMAAAAAAABOA11uFgAvaRBTAAAA
AAAAAEhSBjkABVAcWUkAAAAAAABmT0wYWAAobRE8PwAAAAAAAEJFMgJfAFQOYTdgAAAAAAAAQTE3am8A
FxVqGi0AAAAAACYldF4wADZVcWQEAAAAABsHQDUJAA8gZ3USAAAAAAAsSlofAAoUHikdAAAAAABcWwgT
ACdLGVFNAAAAAAA0DA0uawBsc2UjAAAAAAAARz49RgAAOHAqQwAAAAAAAABWRAAAAAA6YgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD//wAAzz8AAIYfAACCHwAAwg8AAMEHAADggwAA8EEAAPBBAADggwAA4QcAAMIP
AACCHwAAhh8AAM8/AAD//wAAKAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANBaAGW7VQCmhAAAAgAAAAAAAAAA/wAAAbVfAJvHVACKAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANpjAFneizn856RS/8BOAIsAAAAAAAAAANFqAJDmqVz/3Y07/sxKAGcAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADHYwTi9sN///m6Y//WfCT+sj8AaOtoABnUdRj1+MN9//q7X//JaRb7wUQASAAA
AAAAAAAAAAAAAAAAAAAAAAAA22QANs9xHPXyrlP/96o7/75dDfuWLwBIx14AUtF7KP3xq0//96g3/7lR
BfG7PQAuAAAAAAAAAAAAAAAAAAAAAAAAAADcYQBTz3Eb/e+bLv/1lxb/rEYA8YkhAC/AVQB0030k/u6Y
Kf/ykhD/qD4A4rk3ABoAAAAAAAAAAAAAAAAAAAAAAAAAANFVAHbTchT+7IgI//GKAP+dOADijSMAG7RO
AJnWeRX/64cF/+qEAP+bMgDNoSoADAAAAAAAAAAAAAAAAAAAAAAAAAAAuUgAms9qAf/qhAD/7IYA/5o0
AM6WNgANqkQAuddwAP/shgD/434A/5kxALEAAAAAAAAAAAAAAAAAAAAAAAAAAL1KAJHIYwH/430A/+aA
AP+bNADRpDkAEatDAMLTbQD/5X8A/9hzAP+UMACkAAAAAAAAAAAAAAAAAAAAANdaAG/GZA7+2HUG/913
AP+bNwDlkCoAHrZPAKbLbhX/2XME/9ZwAP+aMgDCniQABwAAAAAAAAAAAAAAAN9lAE/FZRf8034r/9Z3
Ef+pQgDzjicAMsBYAIXHcCb/03wl/9FyDP+lPADZrSsAEwAAAAAAAAAAAAAAANVhADXJaRf00IpP/9KC
N/+zUwz7ly0ATMlfAGPIdC7+0IhL/9B/M/+vSQPqt0EAJAAAAAAAAAAAAAAAAAAAAADJZQTb0557/9CP
Xv/EaSP+tkIAa+R1ABLRcxn40p57/9GPW/+6WhH2yEkAOwAAAAAAAAAAAAAAAAAAAAAAAAAA22YAUNB+
O/vLhVH/xFIAjgAAAAAAAAAA6moAcNOKUP7GcDH90FIAVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADSWwBlvVoAqoUAAAIAAAAAAAAAAAAAAADSXACEx1QAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD//wAAzz8AAIYfAACCHwAAwg8AAMEHAADggwAA8EEAAPBBAADggwAA4QcAAMIPAACCHwAAhh8AAM8/
AAD//wAAKAAAABgAAAAwAAAAAQAIAAAAAACgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A8owAALmV
eACZSCMA/MR0AM1+OwD1qEAAw18CAKNlRgCoQgAAzY1bAL5nJQDhhyAA661kANp0AADflUQAs4JiAPOd
KACnWy4A0ZlyAM9zGACzUQsArnJVAOWiVgD3tlkA0HopAPKTEQCzWx0AvntEAKZIEwDffg0A4pA0AMBw
MgDCaRYA5oAAAOeKEgDNg0gAvI9sAJxTLwDplCgA130cAPCrVgDTcQsAvF0NANiLPwCgWzkA2ocvAPO7
cgCxSgEA65oyALKJbQDtpUgA6o8cALlUAgDgm08AwXU7AO2gPwCwXioArGhKAJ9JGwDDZA0Ay2wOAMlu
HgCpWSUAz4lPAPGyXwDMfTIArU0RAMJtKgC9YhUA1G4DAKhgNAC4WhMArksIAMBpHgC9WwYA5qZcAKNj
PwC4j3IAu4pnAM6DQAC5VgkA4XsAAOiDBgDSdRIAn1gzALldGQDbjDkAvGMgAKQ9AACkYTkAz4tVAM91
HgC0TwMA0XojAOOZRgDvrlsArF4vAMt4LwCiWC4AvJNxAJ9fPgDCYAkArVohAO6IAADqhAAArm5RAJtH
HgC9VwAAsl4lANR5HgDYhCsAp0MFAJpLJwCjSRcAwmwlAKtGAACmWSkA1XUOAMBiEQD1vXYAz49fANB/
MADOdicAtVQOAL2WdgDQgjwAsVwhAMx/QADeeAAAwl0GALdRAADniRYAqlopAK5aJQDBbS4A9rNXANCX
bwCvTQIAvlgEAN2SRQDQbwwA0Zt1APerQADXcgAApmVEAOqVKwDNgkMAsk0BAKJZMwDCaSQAupFwALdR
AwCxUA0A1G4AAKJfPgDOiVMA2Ys7ANF6JgDNejAAzXktAKZAAADwigAA6IIAAOR+AADtmjAA3HYAANJu
BQDOjl0A0IxXANlxAQC8WggAuVsRANVyDADNdB0Az3srAPrDdAC7lXcA0Jl0AKlEAACvSQEAuoppALBL
BwD1nigA7aFBAPOTDwCzgWAAtFEJAOyPGwDEXwQAwmIIANJ0EAC7ZSAAzoE8AM90GgCrRAAA76VIALRP
AQC5VAQAwl8GAL1ZAwDOilYAz4I/AKlDAQCqRQAAsEoCAPGLAADviQAAtlAAAOmDAAC4VAMA6YMFAOWA
AQDlfgEA430AAOJ8AAChXDkAtFQNAN13AADZcwAAvVwNANR0DgDNezEA0HonAPGyXgCkPgAApkEAAKhE
AADxjAAAz4xXAOiBAADOilMAzYNHAMNjDQDOgkMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAAAlwAAAAAAAAAA
AAAAAACse4AAAAAAAADdLZoAAAAAAAAAAAAAAMgOBbCHAAAAAGdNsRBEAAAAAAAAAAAAPTcw4Rk/hgAA
fJ55QokvHgAAAAAAAAAAAIMYKsWQeBMAAEaNYTQHb3MAAAAAAAAAAACMYDmmuFKWAACtWLkyEj48AAAA
AAAAAACy0yAovbqV2QAA2nCTNRsIbAAAAAAAAAAAmJkNJNSjdWYAABYphVTlbQQAAAAAAAAAALaLH9ak
0OOSAABKd9XnAtFyAAAAAAAAAAAR5NvYpGkKawAAcZulI8+EJwAAAAAAAAC75NyCpdLiFwAzzJuC12q0
CQAAAAAAAFAxK5Gn2Fo7AE/OjqsPUwqcAAAAAAAAJsZdwEfcopIAA16vVagPxC4AAAAAAABlNt/gFa7N
TgAAx2Maw961VgAAAAAAAH7JlMKhX7dbAABMgVGgn7xkAAAAAAAAAL7K6Ot/fUgAAL+d5unLSXYAAAAA
AAAAIkGKC1xXYgAAQwazqapZQAAAAAAAAAAAAOp6FAw6AAAAAEslj4hoAAAAAAAAAAAAAAAsRW4AAAAA
AADBdBwAAAAAAAAAAAAAAAAAOAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////APf7/wDj8f8AweD/AIDAfwDAYD8A4DAfAOAY
DwDwDAcA+AYDAPwDAQD8AgEA+AQDAPAIBwDgGA8AwDAfAMBgPwCAwH8AweD/AOPx/wD3+/8A////AP//
/wAoAAAAGAAAADAAAAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA2GQAOMpZALXITgAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2mIALclYAMrVWAAyAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiZgBBv1cA8tB/MP+zSQDPw1AAEgAA
AAAAAAAAAAAAAAAAAADjaAA1v1YA7NiLP/+zSgDrxlYALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANVpAEzEXQD2661k//zEdP/Peyv/r0QAybtUAA4AAAAAAAAAAOdxAD/FXQDx5qZc//rD
dP/flUT/rkMA5slMACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMdfAOvgm0//87ty//Gy
Xv/3tln/yW4e/6pBAMO6MQALAAAAANhnAMbZizv/9b12//GyX//2s1f/2ocv/6c9AOLFRgAhAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAANhmAEDFWwD15aJW//CrVv/vpUj/96tA/8BiEf+mPgC7p0IACNBr
AB/BWADg3ZJF/++uW//tpUj/9ahA/9R5Hv+jOwDduz0AHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADgagBIwFcA+OOZRv/toD//7Zow//WeKP+5Vgn/nzcAtHAhAAbJYgAlu1MA5tuMOf/toUH/65oy//Od
KP/LbA7/njcA17NAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2WEAUbpTAPrikDT/6ZQo/+yP
G//zkw//sk0B/5s1AKxyAAAExmUAK7dOAOvYhCv/6pUr/+qPHP/ykxH/w18C/5kzANKoLAATAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAANFdAFu4UQL84Ycg/+eKEv/pgwX/8IoA/6tGAP+YNACkdAAAAsRb
ADO1TADv130c/+eJFv/ogwb/8YwA/71XAP+VLwDMsTsADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADOVQBlsU0C/d9+Df/lfgH/6IIA/++JAP+mQQD/ojcAmwAAAAHOVAA6sEcA8tV1Dv/lgAH/6IEA//KM
AP+2UAD/li8AxaAsAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAukoAcKpFAf7ddwD/4nwA/+iC
AP/uiAD/qEIA/644AIkAAAAAu08AQqhBAPfUbgD/5H4A/+aAAP/xiwD/t1EA/5cyALoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAvEwAcqpFAP7ZcwD/3ngA/+R+AP/pgwD/pj8A/rA6AIIAAAAAukwAYKpD
AP3UbgD/3ngA/+N9AP/qhAD/qUQA/501AJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOVgBps0oB/dNx
C//XcgD/3HYA/+J8AP+kPQD/rDYAkgAAAADNVQBYskoB+9BvDP/ZcQH/2nQA/+F7AP+oQgD/nTUApFIA
AAMAAAAAAAAAAAAAAAAAAAAAAAAAANRdAGG2TwH9z3Ue/9J0EP/UbgP/2XMA/6ZAAP+iNwCbAAAAAdNe
AFC2TgD6zXQd/9J1Ev/SbgX/2nQA/6tEAP+aMwCsjwAABAAAAAAAAAAAAAAAAAAAAAAAAAAA2GEAWrtU
AfvNezH/0Hon/89zGP/Vcgz/qkUA/545AKNzAAAC1GMASbtTAPjLeC//0Hop/890Gv/UdA7/r0kB/5s1
ALSOMAAGAAAAAAAAAAAAAAAAAAAAAAAAAADeZwBSv1kA+s2CQ//OgTz/zXkt/9F6I/+wSwf/oTwAq3AA
AATMZwBDv1kA9sx/QP/Og0D/zXow/9F6Jv+0UQn/oDoAu7ggAAgAAAAAAAAAAAAAAAAAAAAAAAAAANpm
AEvHXgD4zopW/86KU//OgkP/0II8/7VUDv+mQACznzMABdNtADzFXwDzzolT/8+MV//Ng0f/z4I//7ha
E/+lQADCuzMACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMdgAN7PiU//0Jdv/82NW//Pi1X/uV0Z/61C
ALq3SAAIAAAAANpqALbNfjv/0Jl0/86OXf/QjFf/vGMg/6pDAMi7PAAOAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANdoADLGXgDsz49f/9GZcv++ZyX/skYAwbpPAAsAAAAAAAAAAOZrABbGXADSzYNI/9Gb
df/BbS7/r0gAzr1EABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcZwAwv1gA68Jt
Kv+1SgDIulMADgAAAAAAAAAAAAAAAAAAAADdZgAUv1YA0MJsJf+2SwDUw1IAFQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3WUAL8tZAKnSVwARAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA4FgAFMpbAJvWUgAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////AP///wD3+/8A4/H/AMHg/wCAwH8AwGA/AOAwHwDgGA8A8AwHAPgGAwD8AwEA/AIBAPgE
AwDwCAcA4BgPAMAwHwDAYD8AgMB/AMHg/wDj8f8A9/v/AP///wD///8AKAAAACAAAABAAAAAAQAIAAAA
AACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A840AAP/LfQCXMwcAs3xhAOyhRQC+Zh8A0p9/AJtS
MgDOgUAAtU4AANZwAQD5oCAArW5BAPCzaQDPj2AA13wdALiQdADkjysArE4ZAPu1UgDCXwcA5okVAL94
NACsXSgAo0IAAJhGIQCbZEUA+aczAN6RPgDkfgAAzG0TAO6qVwDBhksA+JgQALl3UQC1ajIA0HwuAPu9
ZADbeQ0A+a5CAOqaNwC9iWMA9sB4ANCXbgC7XBUAz4lMAMx1JADulyUAsIdyAOahVAC3dj8A2oUrAKVS
IwC9gVkAomtNANFlAgDHeT0AuVUIAOuIBwDGkmYAsHFVAO+REwCgXj0A5ZlDANF1FwDFcS4AnzgDAOOL
HwCtRgIA0nAJAM2KVgCvTg8Aw28jAMdlDwDynzMA3XcAAMmCTwDwsF8A0Zp2ALGBagC2c0gAxWgXAO6o
TwCeTCUA65guALZvOQDzkAsA8qdDAL6NawDpjxwArmo5APS5bQDMfDgA0XklAPaZHADMg0cA1IQxAKRM
GwC9WAIAyGQEAOWDCgC2XhoAwWETALBjNADsnz4AvYREAPrFegD0wX4A8q9TAJoyAADJdzAAtnpaAOiR
JQDllDgA64QAAKFWLwC+XA4A2XUFAOKEEQD1t2QAz5JmAOSeTADyunUAtVIQAL6UdACfWjgA+aMtALBk
LwDEXgIAw4BIAM15KgC0TwYAnVAsALlUAQDTcw8Ao1UpAOikVwDKjlsA0HcdAM+QVwDJh1IA1ncUALl4
SgDTbwUAt4BjAL17UwCmPgEAw2kgAMFkDwDbjTsA13ULAM57MgDuiQEAtVYMAL9aCADJlGUAxWMKAL6G
WwC0ckMAr0oAAPCuWQCiTCAA76ZJAOJ9AwDtnjkA0XITAMx1GQC8eD8Ay4BCANp0AADEdjoAz4A6ALRP
CwDlgQYA6IkQALl+WwDolCgAs3M+AMiASgDQhUMAlzYLAPaQAACpTh0AqEwXAM2SawCsTBIAu1gLAM5o
AADTeh4AoWI/AOmHCwDwmCEAsm47AMiFSACaNAUA87doANKdewDnixkAtIRrAOylTAC8jGYA0ItUANKD
PADvsWIA+q0+ALxUBADuqVIAzZBiAOyXKgDMhUsAmjUIAKtFAQCwSwMAvlcGAOeCAQDnoE4Avl4QAOqZ
NADpjx8AzYhQAMtuFgCgOwQAuFEBAK9OEwDBWwIAwWAKAMViDgDmhhAAymoQALFmMgDgkjsA038sANB6
KQD/yXoAqEABANGZcwC3UwgA4XsAAO+fNQDNjFoA6ZYuALFqNwDPdiEA0H4yAMpiAgDPdBoAzX88APGo
RgDHYwgAz49dAO6QFgDBXQ4A0XENAM2CRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAACUAAAAAAAAAAAAAAJ8lAAAAAAAAAAAAAAAAAAAAAAAul30AAAAAAAAAAACO3mLnAAAAAAAA
AAAAAAAAAAAA2jMD2eEAAAAAAAAAIiBs6zBcAAAAAAAAAAAAAAAAAOSKLMUn6BQAAAAAAGuoLF15J1MO
AAAAAAAAAAAAAABKHm0PT6IVNbgAAAAA9nx8zaJuFdpSAAAAAAAAAAAAAADkMw8hVPkpvjYAAACdZQ9P
0KRZzjskAAAAAAAAAAAAAACceyEGavAdIIkAAACL+qJUBqZMgNZxAAAAAAAAAAAAAADXQQYqVjENnnUA
AACO+slq29LBYNUFAAAAAAAAAAAAAADPc9uy3PwjZH8AAACDnmrycls/WJRRAAAAAAAAAAAAAH7gE3LH
sDy3C0AAAAA04/LcF8CamkQyAAAAAAAAAAAAAFoLRRdm2HS3oRwAAADz41vlr9iamsQAAAAAAAAAAAAA
ACsLeK8fH3S3GjgAAACBFuWlH9iadMQAAAAAAAAAAAAAADcLpe8fH3QClD4AAAAZgh/vH9iaH9QAAAAA
AAAAAAAAAGng7+8fH5q3bwAAAADfDO/vH9i3vRsAAAAAAAAAAAASRgxNTe8fmqG/AAAAGeJNTU3vdE22
AAAAAAAAAAAAANaIdwyrTdihfwAAAIGcKAwMq++rBAAAAAAAAAAAAACF949HDAzvCwkAAAAldhGIkQyr
qwQAAAAAAAAAAAAA7jBfQv6Rq+CGAAAAV3bpjKdHDAxEAAAAAAAAAAAAALxw9V/3p5iHVQAAAKnazCb0
94hHRDIAAAAAAAAAAAB2XrWZhPS+nKMAAADDli/4mYT0QuzIAAAAAAAAAAAAaKrL//iZJmhjAAAA3Uv7
0wpemerVkgAAAAAAAAAAAFPTekjTqgqVuQAAAI3mLfvdYQqt1rEAAAAAAAAAAAAYcAh68d3dQ7sAAAAA
ObrtEEjdL4WTAAAAAAAAAAAAAABLtFDREDpJAAAAAACdgrot0fubkAAAAAAAAAAAAAAAAAD9tMZOrgAA
AAAAAAA94rpQLqAAAAAAAAAAAAAAAAAAAAB2rO4AAAAAAAAAAAA9ZAfCAAAAAAAAAAAAAAAAAAAAAABn
AAAAAAAAAAAAAADKswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////+/+f//H/D//g/gf/wHwD/4A8
Af/AHAD/4A4Af/AHAD/4A4Af+AHAD/wA4A/+AHAH/wA4A/+APAH/ADgD/wBwB/4A4A/8AcAf+AOAH/AH
AD/gDgB/wBwA/4A8Af/AfAP/4P4H//H/D//7/5////////////8oAAAAIAAAAEAAAAABACAAAAAAAIAQ
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANBe
AB65TwC3ylwALgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRXAB6uFAAtMVU
AAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADlZAAkvlIA39uNO/+3SgDn0VwAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4WMAh81v
F/7UhDH/tEoAtsoqAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA6WsAKsJVAOXmolT//8t9/+egTv+xQwDi0VMAIAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAdFp
AJHObhX++sV6///Jev/MdCL/sEoAq+tLAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANptADHIXADp6KRX//XAdv/zt2j/+rxk/+CSO/+tPwDaxVAAGgAAAAAAAAAAAAAAAMlo
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/4wAArhSAIXDVwBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJWgBZulMAycdXACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANRi
AEu+VgD2t1AA/7lRANHGVAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0VIADbpW
ALe+WACYgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADJWABGulUAr8VWABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA////////
AAD+f//P//8AAPw//4f//wAA+B//A///AADwD/4B//8AAOAH/AD//wAAwAP4AH//AACAAfAAP/8AAMAA
+AAf/wAA4AB8AA//AADwAH4AB/8AAPgAPwAD/wAA/AAfgAH/AAD+AA/AAP8AAP8AB+AAfwAA/4AD8AA/
AAD/gAH4AB8AAP/AAPwADwAA/+AAfgAHAAD/8AA/AAMAAP/4AB+AAQAA//wAH4ABAAD/+AAfAAMAAP/w
AD4ABwAA/+AAfAAPAAD/wAD4AB8AAP+AAfAAPwAA/wAD4AB/AAD+AAfAAP8AAPwAD4AB/wAA+AAfAAP/
AADwAD4AB/8AAOAAfAAP/wAAwAD4AB//AACAAfgAP/8AAMAD+AB//wAA4Af8AP//AADwD/4B//8AAPgf
/wP//wAA/D//x///AAD+f//v//8AAP///////wAA////////AAD///////8AAP///////wAA
</value>
</data>
</root>

View File

@@ -0,0 +1,82 @@
Imports DD_Rights
Public Class frmStart
Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
Try
DD_Rights.ClassLogger.Init(Application.UserAppDataPath() & "\Log", Environment.UserName)
If DD_Rights.ClassDatabase.Init(My.Settings.MyConnectionString) = False Then
MsgBox("Error in Initializing Database. Please check log.", MsgBoxStyle.Critical)
Me.Close()
End If
Dim sql = String.Format("SELECT * FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('{0}'))", Environment.UserName)
ClassLogger.Add(">> Login at: " & Now.ToString, False)
ClassLogger.Add(">> Username: " & Environment.UserName, False)
Dim USER_DT As DataTable = ClassDatabase.Return_Datatable(sql)
If USER_DT.Rows.Count = 0 Then
ClassLogger.Add(" - User '" & Environment.UserName & "' not listed in Useradminsitration!", False)
'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
'Me.Close()
Dim msg = String.Format("You are not listed in the Useradministration." & vbNewLine & "Please contact the admin.")
MsgBox(msg, MsgBoxStyle.Exclamation)
Me.Close()
Else
USER_GUID = USER_DT.Rows(0).Item("GUID")
USERID_FK_INT_ECM = USER_DT.Rows(0).Item("USERID_FK_INT_ECM")
USER_WAN = USER_DT.Rows(0).Item("WAN_ENVIRONMENT") 'ClassDatabase.Execute_Scalar("SELECT WAN_ENVIRONMENT FROM TBDD_USER WHERE GUID = " & USER_GUID, False)
USER_LANGUAGE = USER_DT.Rows(0).Item("LANGUAGE")
USER_DATE_FORMAT = USER_DT.Rows(0).Item("DATE_FORMAT")
'USER_LANGUAGE = ClassDatabase.Execute_Scalar("SELECT LANGUAGE FROM TBDD_USER WHERE GUID = " & USER_GUID, False)
Dim DT_CLIENT_USER As DataTable = ClassDatabase.Return_Datatable("SELECT CLIENT_ID FROM TBDD_CLIENT_USER WHERE USER_ID = " & USER_GUID)
'Dim i As Integer = 0
'For Each row As DataRow In DT_CLIENT_USER.Rows
' If i = 0 Then
' USER_CLIENTS_COMMA_SEPERATED = row.Item(0).ToString
' Else
' USER_CLIENTS_COMMA_SEPERATED = USER_CLIENTS_COMMA_SEPERATED & "," & row.Item(0).ToString
' End If
' i += 1
'Next
Dim Right_RO As Boolean = USER_DT.Rows(0).Item("MODULE_RECORD_ORG")
If Right_RO = False Then
ClassLogger.Add(" - User: " & Environment.UserName & " nicht für Modul freigegben!", False)
'MsgBox("Achtung: Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
Dim msg = String.Format("Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("You are not authorized for using this module." & vbNewLine & "Please contact the admin.")
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
Me.Close()
Else
sql = String.Format("SELECT RECORD_ADMIN FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('{0}'))", Environment.UserName)
USER_IS_ADMIN = ClassDatabase.Execute_Scalar(sql)
If USER_IS_ADMIN = False Then
Dim msg = String.Format("Sorry You are not an ADDI-Admin!")
MsgBox(msg, MsgBoxStyle.Exclamation)
Me.Close()
End If
End If
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InitUserLogin: " & ex.Message, True)
MsgBox("Unexpected Error in InitUserLogin: " & ex.Message, MsgBoxStyle.Critical)
End Try
Catch ex As Exception
End Try
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Visible = False
frmCheckRightsEntity.ShowDialog()
Me.Visible = True
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Process.Start(ClassLogger.DateiSpeicherort)
End Sub
End Class

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB