2024 reopening

This commit is contained in:
MaddoScientisto 2024-10-14 18:54:30 +02:00
commit 99b67870a5
73 changed files with 27484 additions and 417 deletions

1
.upgrade-assistant Normal file
View file

@ -0,0 +1 @@
{"Build":"0.2.212405\u002B8e7b4314944e5328780f06f20721a4d6ef9783bb","CurrentProject":"","EntryPoint":"","IsComplete":true}

View file

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CatalogLib</RootNamespace>
<AssemblyName>CatalogLib</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>

View file

@ -1,35 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View file

@ -10,7 +10,7 @@
<package id="SixLabors.Fonts" version="0.1.0-alpha0014" targetFramework="net46" />
<package id="SixLabors.Shapes" version="0.1.0-alpha0018" targetFramework="net46" />
<package id="SixLabors.Shapes.Text" version="0.1.0-alpha0018" targetFramework="net46" />
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
<package id="System.AppContext" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Buffers" version="4.3.0" targetFramework="net46" />
<package id="System.Collections" version="4.3.0" targetFramework="net46" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net46" />
@ -19,45 +19,45 @@
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Globalization" version="4.3.0" targetFramework="net46" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net46" />
<package id="System.IO" version="4.3.0" targetFramework="net46" />
<package id="System.IO" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net46" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net46" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net46" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Linq" version="4.3.0" targetFramework="net46" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" />
<package id="System.Memory" version="4.4.0-preview1-25305-02" targetFramework="net46" />
<package id="System.Linq" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Memory" version="4.4.0-preview1-25305-02" targetFramework="net46" requireReinstallation="true" />
<package id="System.Net.Http" version="4.3.0" targetFramework="net46" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net46" />
<package id="System.Numerics.Vectors" version="4.3.0" targetFramework="net46" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.4.0-preview1-25305-02" targetFramework="net46" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.4.0-preview1-25305-02" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net46" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net46" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Threading" version="4.3.0" targetFramework="net46" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net46" />
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net46" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net46" />
<package id="System.ValueTuple" version="4.4.0-preview1-25305-02" targetFramework="net46" />
<package id="System.ValueTuple" version="4.4.0-preview1-25305-02" targetFramework="net46" requireReinstallation="true" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net46" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net46" />
</packages>

View file

@ -10,11 +10,12 @@
<AssemblyName>CatalogVbLib</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Windows</MyType>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -112,6 +113,7 @@
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>

View file

@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34011
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.

View file

@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34011
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@ -11,6 +11,7 @@
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
@ -21,20 +22,20 @@ Namespace My.Resources
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</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()> _
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
<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
@ -44,17 +45,17 @@ Namespace My.Resources
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set(ByVal value As Global.System.Globalization.CultureInfo)
Set
resourceCulture = value
End Set
End Property

View file

@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34011
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@ -13,42 +13,42 @@ Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.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)
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
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
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, 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
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

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>
</configuration>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<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>
@ -9,12 +9,13 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ImageCatalogCS</RootNamespace>
<AssemblyName>ImageCatalogCS</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -105,6 +106,7 @@
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>

View file

@ -1,17 +1,17 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18010
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ImageCatalogCS.Properties
{
namespace ImageCatalogCS.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
@ -19,51 +19,43 @@ namespace ImageCatalogCS.Properties
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
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()
{
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ImageCatalogCS.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set
{
set {
resourceCulture = value;
}
}

View file

@ -1,28 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18010
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ImageCatalogCS.Properties
{
namespace ImageCatalogCS.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.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
{
public static Settings Default {
get {
return defaultInstance;
}
}

View file

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MaddoShared
{
public class FileData
{
/// <summary>
/// Il file originale
/// </summary>
public FileInfo File { get; set; }
/// <summary>
/// La cartella di destinazione
/// </summary>
public DirectoryInfo Directory { get; set; }
public FileData(FileInfo newFile, DirectoryInfo newDirectory)
{
this.File = newFile;
this.Directory = newDirectory;
}
}
}

View file

@ -0,0 +1,116 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MaddoShared
{
public class FileHelperOptions
{
public bool SeparateFiles { get; set; }
public NumerazioneType NumerationType { get; set; }
public int CounterSize { get; set; }
public string Suffix { get; set; }
public int FilesPerFolder { get; set; }
}
public enum NumerazioneType
{
Progressiva,
Files
}
public class FileHelperSharp
{
public List<FileData> GetFilesRecursive(DirectoryInfo root, DirectoryInfo destRoot, string filter, FileHelperOptions options)
{
ConcurrentDictionary<FileInfo, DirectoryInfo> dirSourceDest = new ConcurrentDictionary<FileInfo, DirectoryInfo>();
List<FileInfo> result = new List<FileInfo>();
// Dim stack As New Stack(Of DirectoryInfo)
Stack<KeyValuePair<DirectoryInfo, DirectoryInfo>> stack = new Stack<KeyValuePair<DirectoryInfo, DirectoryInfo>>();
KeyValuePair<DirectoryInfo, DirectoryInfo> pair = new KeyValuePair<DirectoryInfo, DirectoryInfo>();
// stack.Push(root)
stack.Push(new KeyValuePair<DirectoryInfo, DirectoryInfo>(root, destRoot));
while ((stack.Count > 0))
{
KeyValuePair<DirectoryInfo, DirectoryInfo> curDirKV = stack.Pop();
// curDirKP = stack.Pop()
DirectoryInfo dir = curDirKV.Key;
DirectoryInfo dDir = curDirKV.Value;
try
{
// result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
// dividere file qui
if (options.FilesPerFolder > 0 & options.SeparateFiles)
AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir, options, filter));
else
AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir, options, filter));
foreach (DirectoryInfo subDirectory in dir.GetDirectories())
stack.Push(new KeyValuePair<DirectoryInfo, DirectoryInfo>(subDirectory, new DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))));
}
catch (Exception ex)
{
// TODO ERROR
}
}
List<FileData> resultData = new List<FileData>();
resultData.AddRange(from p in dirSourceDest
select new FileData(p.Key, p.Value));
return resultData;
}
public ConcurrentDictionary<FileInfo, DirectoryInfo> AppendDictionaryConcurrent(ConcurrentDictionary<FileInfo, DirectoryInfo> dictA, ConcurrentDictionary<FileInfo, DirectoryInfo> dictB)
{
foreach (KeyValuePair<FileInfo, DirectoryInfo> pair in dictB)
dictA.TryAdd(pair.Key, pair.Value);
return dictA;
}
private ConcurrentDictionary<FileInfo, DirectoryInfo> DividiFilesInDirConcurrent(DirectoryInfo dir, DirectoryInfo dirDest, FileHelperOptions options, string filter)
{
//int filesCount = dir.GetFiles(Filter).Length;
int contaFilePerDir = 0;
int contaDirPerDir = 0;
string tempText;// = string.Empty;
ConcurrentDictionary<FileInfo, DirectoryInfo> foldersDict = new ConcurrentDictionary<FileInfo, DirectoryInfo>();
DirectoryInfo destDir;
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName));
foreach (FileInfo file in dir.GetFiles(filter))
{
contaFilePerDir += 1;
if (contaFilePerDir == (contaDirPerDir * options.FilesPerFolder) + 1)
{
contaDirPerDir += 1;
tempText = options.NumerationType == NumerazioneType.Progressiva ? contaDirPerDir.ToString() : (contaDirPerDir * options.FilesPerFolder).ToString();
int i;
for (i = 1; i <= (options.CounterSize - tempText.Length); i++)
tempText = "0" + tempText;
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName, options.Suffix + tempText));
}
if (!destDir.Exists)
destDir.Create();
foldersDict.TryAdd(file, destDir);
}
return foldersDict;
}
}
}

View file

@ -0,0 +1,194 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using CatalogVbLib;
using Dasync.Collections;
namespace MaddoShared
{
public class ImageCreationStuff
{
public class Options
{
public bool AggiornaSottodirectory { get; set; }
public bool CreaSottocartelle { get; set; }
public int FilePerCartella { get; set; }
public string SuffissoCartelle { get; set; }
public int CifreContatore { get; set; }
public NumerazioneType NumerazioneType { get; set; }
public string SourcePath { get; set; }
public string DestinationPath { get; set; }
public int MaxThreads { get; set; }
public int ChunksSize { get; set; }
public bool LinearExecution { get; set; }
}
public async Task<string> CreaCatalogoParallel(Options options, ConcurrentBag<string> results, EventHandler<Tuple<string,int>> updateEvent, CancellationToken cancellationToken = default(CancellationToken))
{
var stopwatch = new Stopwatch();
stopwatch.Start();
// todo immagini counter
//todo set label
await CreaImmaginiParallel(options, results, updateEvent, cancellationToken);
// todo set finito label
stopwatch.Stop();
return $"{stopwatch.Elapsed.Hours}h {stopwatch.Elapsed.Minutes}m ${stopwatch.Elapsed.Seconds}s ({stopwatch.Elapsed.TotalSeconds}s)";
}
public async Task CreaImmaginiParallel(Options options, ConcurrentBag<string> results, EventHandler<Tuple<string, int>> updateEvent, CancellationToken cancellationToken = default(CancellationToken))
{
var dataToProcess = new List<FileData>();
if (options.AggiornaSottodirectory && options.CreaSottocartelle)
{
var helper = new FileHelperSharp();
dataToProcess = helper.GetFilesRecursive(new DirectoryInfo(options.SourcePath), new DirectoryInfo(options.DestinationPath),
"*.jpg", new FileHelperOptions()
{
FilesPerFolder = options.FilePerCartella,
Suffix = options.SuffissoCartelle,
CounterSize = options.CifreContatore,
NumerationType = options.NumerazioneType
});
}
else if (!options.CreaSottocartelle)
{
var files = Directory.EnumerateFiles(options.SourcePath, "*.jpg",
options.AggiornaSottodirectory
? SearchOption.AllDirectories
: SearchOption.TopDirectoryOnly);
dataToProcess = files.Select(x =>
{
var fInfo = new FileInfo(x);
var filePath = fInfo.DirectoryName;
var trimmedSourcePath = options.SourcePath.TrimEnd('\\');
var newFilePath = fInfo.FullName.Replace(trimmedSourcePath, "").TrimStart('\\');
newFilePath = Path.Combine(options.DestinationPath, newFilePath);
var destFolderPath = new FileInfo(newFilePath).DirectoryName;
var destFolderInfo = new DirectoryInfo(destFolderPath);
destFolderInfo.EnsureDirectoryExists();
return new FileData(fInfo, new DirectoryInfo(new FileInfo(newFilePath).DirectoryName));
}).ToList();
//// TODO
//dataToProcess =
// (from f in Directory.EnumerateFiles(options.SourcePath, "*.jpg",
// options.AggiornaSottodirectory
// ? SearchOption.AllDirectories
// : SearchOption.TopDirectoryOnly)
// select new FileData(new FileInfo(f),
// new DirectoryInfo(options.DestinationPath.PathCombine(
// new FileInfo(f).DirectoryName.Replace(options.SourcePath.TrimEnd(new char[] {'\\'}), "")
// )
// )
// )
// )
// .ToList();
}
var threads = options.MaxThreads == 0 ? Environment.ProcessorCount * 2 : options.MaxThreads;
var scheduler = new ConcurrentExclusiveSchedulerPair(TaskScheduler.Default, threads)
.ConcurrentScheduler;
//var allTasks = new List<Task>();
var test = from d in dataToProcess
select Task.Factory.StartNew(async () =>
{
await new ImageCreatorSharp(d.File, d.Directory).CreaImmagineThread(d.File.Name);
//var imgC = new ImageCreatorSharp(d.File, d.Directory);
//imgC.CreaImmagineThread(d.File.Name);
//imgC = null;
}, CancellationToken.None, TaskCreationOptions.None, scheduler);
//int count = 0;
if (options.LinearExecution)
{
foreach (var task in test)
{
await task;
}
}
else
{
if (options.ChunksSize == 0)
{
//var opts = new ParallelOptions() { MaxDegreeOfParallelism = threads, CancellationToken = cancellationToken, TaskScheduler = scheduler};
await dataToProcess.ParallelForEachAsync(async fileData =>
{
await new ImageCreatorSharp(fileData.File, fileData.Directory).CreaImmagineThread(fileData.File.Name);
results.Add(fileData.File.Name);
//count = Interlocked.Increment(ref count);
try
{
updateEvent?.Invoke(this, new Tuple<string, int>(fileData.File.Name, dataToProcess.Count) );
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}, maxDegreeOfParallelism: threads, false, cancellationToken);
}
else
{
var asdf = SplitList(dataToProcess.ToList(), options.ChunksSize).ToList();
foreach (var sdaf in asdf)
{
await sdaf.ParallelForEachAsync(async fileData =>
{
await new ImageCreatorSharp(fileData.File, fileData.Directory).CreaImmagineThread(fileData.File.Name);
results.Add(fileData.File.Name);
//count = Interlocked.Increment(ref count);
try
{
updateEvent?.Invoke(this, new Tuple<string, int>(fileData.File.Name, dataToProcess.Count));
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}, maxDegreeOfParallelism: threads, false, cancellationToken);
}
}
}
}
public static IEnumerable<List<T>> SplitList<T>(List<T> bigList, int nSize = 3)
{
for (int i = 0; i < bigList.Count; i += nSize)
{
yield return bigList.GetRange(i, Math.Min(nSize, bigList.Count - i));
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,101 @@
<?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>{AEBFE9E3-277C-4A7B-8448-145D1B11998B}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MaddoShared</RootNamespace>
<AssemblyName>MaddoShared</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<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' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="AsyncEnumerable, Version=4.0.2.0, Culture=neutral, PublicKeyToken=0426b068161bd1d1, processorArchitecture=MSIL">
<HintPath>..\packages\AsyncEnumerator.4.0.2\lib\net461\AsyncEnumerable.dll</HintPath>
</Reference>
<Reference Include="Ben.Demystifier, Version=0.3.0.0, Culture=neutral, PublicKeyToken=a6d206e05440431a, processorArchitecture=MSIL">
<HintPath>..\packages\Ben.Demystifier.0.3.0\lib\net45\Ben.Demystifier.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="SixLabors.ImageSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13, processorArchitecture=MSIL">
<HintPath>..\packages\SixLabors.ImageSharp.1.0.3\lib\net472\SixLabors.ImageSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="Z.ExtensionMethods, Version=2.1.1.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL">
<HintPath>..\packages\Z.ExtensionMethods.2.1.1\lib\net45\Z.ExtensionMethods.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ImageCreationStuff.cs" />
<Compile Include="ImageCreatorSharp.cs" />
<Compile Include="ThreadingHelper.cs" />
<Compile Include="FileData.cs" />
<Compile Include="FileHelperSharp.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj">
<Project>{44465926-240d-473f-90b8-786ba4384406}</Project>
<Name>CatalogVbLib</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("MaddoShared")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MaddoShared")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("aebfe9e3-277c-4a7b-8448-145d1b11998b")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace MaddoShared
{
public static class ThreadingHelper
{
/// <summary>
/// Starts the given tasks and waits for them to complete. This will run, at most, the specified number of tasks in parallel.
/// <para>NOTE: If one of the given tasks has already been started, an exception will be thrown.</para>
/// </summary>
/// <param name="tasksToRun">The tasks to run.</param>
/// <param name="maxTasksToRunInParallel">The maximum number of tasks to run in parallel.</param>
/// <param name="cancellationToken">The cancellation token.</param>
public static void StartAndWaitAllThrottled(IEnumerable<Task> tasksToRun, int maxTasksToRunInParallel, CancellationToken cancellationToken = new CancellationToken())
{
StartAndWaitAllThrottled(tasksToRun, maxTasksToRunInParallel, -1, cancellationToken);
}
/// <summary>
/// Starts the given tasks and waits for them to complete. This will run, at most, the specified number of tasks in parallel.
/// <para>NOTE: If one of the given tasks has already been started, an exception will be thrown.</para>
/// </summary>
/// <param name="tasksToRun">The tasks to run.</param>
/// <param name="maxTasksToRunInParallel">The maximum number of tasks to run in parallel.</param>
/// <param name="timeoutInMilliseconds">The maximum milliseconds we should allow the max tasks to run in parallel before allowing another task to start. Specify -1 to wait indefinitely.</param>
/// <param name="cancellationToken">The cancellation token.</param>
public static void StartAndWaitAllThrottled(IEnumerable<Task> tasksToRun, int maxTasksToRunInParallel, int timeoutInMilliseconds, CancellationToken cancellationToken = new CancellationToken())
{
// Convert to a list of tasks so that we don&#39;t enumerate over it multiple times needlessly.
var tasks = tasksToRun.ToList();
using (var throttler = new SemaphoreSlim(maxTasksToRunInParallel))
{
var postTaskTasks = new List<Task>();
// Have each task notify the throttler when it completes so that it decrements the number of tasks currently running.
tasks.ForEach(t => postTaskTasks.Add(t.ContinueWith(tsk => throttler.Release())));
// Start running each task.
foreach (var task in tasks)
{
// Increment the number of tasks currently running and wait if too many are running.
throttler.Wait(timeoutInMilliseconds, cancellationToken);
cancellationToken.ThrowIfCancellationRequested();
task.Start();
}
// Wait for all of the provided tasks to complete.
// We wait on the list of "post" tasks instead of the original tasks, otherwise there is a potential race condition where the throttler&#39;s using block is exited before some Tasks have had their "post" action completed, which references the throttler, resulting in an exception due to accessing a disposed object.
Task.WaitAll(postTaskTasks.ToArray(), cancellationToken);
}
}
}
}

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View file

@ -0,0 +1 @@
Backup created at 1615021651 (06/03/2021 09:07:31 +00:00)

View file

@ -1,101 +1,29 @@
<?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')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{AEBFE9E3-277C-4A7B-8448-145D1B11998B}</ProjectGuid>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MaddoShared</RootNamespace>
<AssemblyName>MaddoShared</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<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' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup>
<ItemGroup>
<Reference Include="AsyncEnumerable, Version=4.0.2.0, Culture=neutral, PublicKeyToken=0426b068161bd1d1, processorArchitecture=MSIL">
<HintPath>..\packages\AsyncEnumerator.4.0.2\lib\net461\AsyncEnumerable.dll</HintPath>
</Reference>
<Reference Include="Ben.Demystifier, Version=0.3.0.0, Culture=neutral, PublicKeyToken=a6d206e05440431a, processorArchitecture=MSIL">
<HintPath>..\packages\Ben.Demystifier.0.3.0\lib\net45\Ben.Demystifier.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="SixLabors.ImageSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13, processorArchitecture=MSIL">
<HintPath>..\packages\SixLabors.ImageSharp.1.0.3\lib\net472\SixLabors.ImageSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="Z.ExtensionMethods, Version=2.1.1.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL">
<HintPath>..\packages\Z.ExtensionMethods.2.1.1\lib\net45\Z.ExtensionMethods.dll</HintPath>
</Reference>
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="ImageCreationStuff.cs" />
<Compile Include="ImageCreatorSharp.cs" />
<Compile Include="ThreadingHelper.cs" />
<Compile Include="FileData.cs" />
<Compile Include="FileHelperSharp.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<PackageReference Include="AsyncEnumerator" Version="4.0.2" />
<PackageReference Include="Ben.Demystifier" Version="0.3.0" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="5.0.0" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.3" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Collections.Immutable" Version="5.0.0" />
<PackageReference Include="System.Memory" Version="4.5.4" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="5.0.0" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
<PackageReference Include="Z.ExtensionMethods" Version="2.1.1" />
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.2.212405">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="5.0.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj">
<Project>{44465926-240d-473f-90b8-786ba4384406}</Project>
<Name>CatalogVbLib</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -0,0 +1,32 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
// Review the values of the assembly attributes
[assembly: AssemblyTitle("Image Catalog")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("FornaSoft")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("(C) 2002-08")]
[assembly: AssemblyTrademark("")]
[assembly: CLSCompliant(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("948AA2AA-5BED-4DD5-9C67-3126EE9109C6")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.74.*")]

View file

@ -0,0 +1,31 @@
Imports System.Reflection
Imports System.Runtime.InteropServices
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("Image Catalog")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("FornaSoft")>
<Assembly: AssemblyProduct("")>
<Assembly: AssemblyCopyright("(C) 2002-08")>
<Assembly: AssemblyTrademark("")>
<Assembly: CLSCompliant(True)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("948AA2AA-5BED-4DD5-9C67-3126EE9109C6")>
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
<Assembly: AssemblyVersion("1.74.*")>

View file

@ -0,0 +1 @@

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,943 @@
Imports System.IO
'Imports System.Drawing.Drawing2D
'Imports System.Drawing.Imaging
'Imports System.Threading
Public Class CreaImmagineSeparateMultiCore
Private _DirectorySorgente As String
Private _DirectoryDestinazione As String
Private _SourceDir As DirectoryInfo
Private _DestDirStart As DirectoryInfo
Private _DimStandard As Integer
Private _DimStandardMiniatura As Integer
Private _UsaOrarioMiniatura As Boolean
Private _UsaOrarioTestoApplicare As Boolean
Private _UsaTempoGaraTestoApplicare As Boolean
Private _TestoFirmaStart As String
Private _TestoFirmaStartV As String
Private _DataPartenza As DateTime
Private _TestoOrario As String
Private _UsaRotazioneAutomatica As Boolean
Private _UsaForzaJpg As Boolean
Private _LarghezzaSmall As Integer
Private _AltezzaSmall As Integer
Private _CreaMiniature As Boolean
Private _AggiungiScritteMiniature As Boolean
Private _NomeFileChild As String
Private _Suffisso As String
Private _Codice As String
Private _Trasparenza As Integer
Private _IlFont As String
Private _Grassetto As Boolean
Private _Posizione As String
Private _Allineamento As String
Private _Margine As Integer
Private _LogoAltezza As Integer
Private _LogoLarghezza As Integer
Private _FontColoreR As Integer
Private _FontColoreG As Integer
Private _FontColoreB As Integer
Private _LogoAggiungi As Boolean
Private _LogoNomeFile As String
Private _LogoTrasparenza As String
Private _LogoMargine As String
Private _LogoPosizioneH As String
Private _LogoPosizioneV As String
Private _FotoGrandeDimOrigina As Boolean
Private _AltezzaBig As Integer
Private _LarghezzaBig As Integer
Private _DestDir As DirectoryInfo
Public Sub CreaImmagine(ByVal InfoImg As PicInfo)
Dim TestoFirma As String = ""
_DestDir = InfoImg.DirDest
_SourceDir = InfoImg.DirSource
_DestDirStart = InfoImg.DirDestStart
_NomeFileChild = InfoImg.NomeImmagine
Dim AlphaScelta As Integer = CType((255 * (100 - _Trasparenza) / 100), Integer)
Dim DimensioneStandard As Integer
Dim DimensioneStandardMiniatura As Integer
Dim DataFoto As DateTime
Dim DataPartenzaI As DateTime = _DataPartenza
If _TestoOrario.Length > 0 Then
_TestoOrario &= " "
End If
Dim TestoFirmaPiccola As String = ""
Dim FileConta As Integer = 0
Dim ContaFileXDir As Integer = 0
Dim ContaDirXDir As Integer = 0
Dim TestoTemp As String = ""
Dim ContaTemp As Integer = 0
DimensioneStandard = _DimStandard
DimensioneStandardMiniatura = _DimStandardMiniatura
Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_SourceDir.FullName, _NomeFileChild))
If _UsaOrarioTestoApplicare = True Or _UsaTempoGaraTestoApplicare = True Or _UsaOrarioMiniatura = True Then
If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
Dim DatiExif As New ExifReader(CType(g, Bitmap))
DataFoto = DatiExif.DateTimeOriginal
TestoFirma = _TestoFirmaStart
If DataFoto.Year <> 1 Then
TestoFirmaPiccola = DataFoto.ToShortTimeString
If _UsaOrarioTestoApplicare = True Then
TestoFirma &= " - " & DataFoto.ToShortDateString & " " & DataFoto.ToLongTimeString
End If
If _UsaTempoGaraTestoApplicare = True Then
Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, DataPartenzaI, DataFoto) * 10000000)
TestoFirma &= " - " & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
End If
End If
End If
Else
TestoFirma = _TestoFirmaStart
End If
Dim FotoRuotaADestra As Boolean = False
Dim FotoRuotaASinistra As Boolean = False
If _UsaRotazioneAutomatica = True Then
If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
Dim DatiExif As New ExifReader(CType(g, Bitmap))
Select Case DatiExif.Orientation
Case ExifReader.Orientations.BottomLeft
Case ExifReader.Orientations.BottomRight
Case ExifReader.Orientations.LeftTop
Case ExifReader.Orientations.LftBottom
FotoRuotaASinistra = True
Case ExifReader.Orientations.RightBottom
Case ExifReader.Orientations.RightTop
Case ExifReader.Orientations.TopLeft
Case ExifReader.Orientations.TopRight
End Select
End If
End If
'rotazione
If FotoRuotaASinistra = True Then
g.RotateFlip(RotateFlipType.Rotate270FlipNone)
End If
If FotoRuotaADestra = True Then
g.RotateFlip(RotateFlipType.Rotate90FlipNone)
End If
Dim thisFormat As System.Drawing.Imaging.ImageFormat = g.RawFormat
If _UsaForzaJpg = True Then
thisFormat = System.Drawing.Imaging.ImageFormat.Jpeg
End If
Dim thumbSizeSmall As New Size
Dim thumbSizeBig As New Size
Dim NomeFileSmall As String = ""
Dim NomeFileBig As String = ""
Dim NomeFileBig2 As String = ""
If g.Width > g.Height Then
thumbSizeSmall = NewthumbSize(g.Width, g.Height, LarghezzaSmall, "Larghezza")
Dim SizeOrig As New Size(g.Width, g.Height)
thumbSizeBig = SizeOrig
Else
thumbSizeSmall = NewthumbSize(g.Width, g.Height, AltezzaSmall, "Altezza")
Dim SizeOrig As New Size(g.Width, g.Height)
thumbSizeBig = SizeOrig
End If
NomeFileSmall = Suffisso & _NomeFileChild
NomeFileBig = _NomeFileChild
Dim imgOutputBig As New Bitmap(g, thumbSizeBig.Width, thumbSizeBig.Height)
imgOutputBig.SetResolution(g.HorizontalResolution, g.VerticalResolution)
If _CreaMiniature = True Then
If _AggiungiScritteMiniature = False Then
If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) & Codice & NomeFileSmall.Substring(NomeFileSmall.Length - 4)
End If
If _UsaOrarioMiniatura = True Then
If TestoFirmaPiccola.Length > 0 Then
Dim imgOutputSmall As Bitmap
imgOutputSmall = CType(imgOutputBig.Clone, Bitmap)
Dim grPhoto1 As Graphics
grPhoto1 = Graphics.FromImage(imgOutputSmall)
grPhoto1.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
Dim crFont1 As Font = Nothing
Dim crSize1 As SizeF = New SizeF
Dim LarghezzaStandard1 As Integer
If _Grassetto = True Then
crFont1 = New Font(IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
Else
crFont1 = New Font(_IlFont, DimensioneStandardMiniatura)
End If
crSize1 = grPhoto1.MeasureString(TestoFirmaPiccola, crFont1)
LarghezzaStandard1 = CType(crSize1.Width, Integer)
If crSize1.Width > CType(g.Width, Single) Then
Dim Conta As Integer = DimensioneStandardMiniatura
Do
If Conta > 20 Then
Conta -= 5
Else
Conta -= 1
End If
If _Grassetto = True Then
crFont1 = New Font(_IlFont, Conta, FontStyle.Bold)
Else
crFont1 = New Font(_IlFont, Conta)
End If
crSize1 = grPhoto1.MeasureString(TestoFirmaPiccola, crFont1)
If crSize1.Width < CType(g.Width, Single) Then
LarghezzaStandard1 = CType(crSize1.Width, Integer)
Exit Do
End If
If Conta <= 5 Then Exit Do
Loop
DimensioneStandardMiniatura = Conta
End If
Dim yPosFromBottom1 As Single
Select Case _Posizione.ToUpper
Case "ALTO"
yPosFromBottom1 = (_Margine)
Case "BASSO"
'yPosFromBottom = (g.Height - _Margine - DimensioneStandard)
'yPosFromBottom1 = CType((g.Height - crFont1.Height - (g.Height * _Margine / 100) - (crFont1.Height * 0.3)), Single)
yPosFromBottom1 = CType((g.Height - crSize1.Height - (g.Height * _Margine / 100)), Single)
End Select
Dim xCenterOfImg1 As Single
Dim StrFormat1 As StringFormat = New StringFormat
Select Case _Allineamento.ToUpper
Case "SINISTRA"
xCenterOfImg1 = CType((_Margine + (LarghezzaStandard1 / 2)), Single)
If (LarghezzaStandard1 / 2) > (g.Width / 2) - _Margine Then
xCenterOfImg1 = CType((g.Width / 2), Single)
End If
Case "CENTRO"
xCenterOfImg1 = CType((g.Width / 2), Single)
Case "DESTRA"
xCenterOfImg1 = CType((g.Width - _Margine - (LarghezzaStandard1 / 2)), Single)
If (LarghezzaStandard1 / 2) > (g.Width / 2) - _Margine Then
xCenterOfImg1 = CType((g.Width / 2), Single)
End If
End Select
StrFormat1.Alignment = StringAlignment.Center
Dim semiTransBrush21 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, 0, 0, 0))
Dim semiTransBrush1 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
If _Grassetto = True Then
crFont1 = New Font(_IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
Else
crFont1 = New Font(_IlFont, DimensioneStandardMiniatura)
End If
grPhoto1.DrawString(TestoFirmaPiccola, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
grPhoto1.DrawString(TestoFirmaPiccola, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
imgOutputSmall.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall), thisFormat)
Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall))
Dim imgOutputSmall2 As New Bitmap(g2, thumbSizeSmall.Width, thumbSizeSmall.Height)
imgOutputSmall2.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
imgOutputSmall2.Dispose()
imgOutputSmall.Dispose()
g2.Dispose()
Kill(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall))
Else
Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
imgOutputSmall.Dispose()
End If
Else
Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
imgOutputSmall.Dispose()
End If
End If
End If
Dim grPhoto As Graphics
grPhoto = Graphics.FromImage(imgOutputBig)
grPhoto.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
Dim crFont As Font = Nothing
Dim crSize As SizeF = New SizeF
Dim LarghezzaStandard As Integer
If _Grassetto = True Then
crFont = New Font(_IlFont, DimensioneStandard, FontStyle.Bold)
Else
crFont = New Font(_IlFont, DimensioneStandard)
End If
crSize = grPhoto.MeasureString(TestoFirma, crFont)
LarghezzaStandard = CType(crSize.Width, Integer)
If crSize.Width > CType(g.Width, Single) Then
Dim Conta As Integer = DimensioneStandard
Do
If Conta > 20 Then
Conta -= 5
Else
Conta -= 1
End If
If _Grassetto = True Then
crFont = New Font(_IlFont, Conta, FontStyle.Bold)
Else
crFont = New Font(_IlFont, Conta)
End If
crSize = grPhoto.MeasureString(TestoFirma, crFont)
If crSize.Width < CType(g.Width, Single) Then
LarghezzaStandard = CType(crSize.Width, Integer)
Exit Do
End If
If Conta <= 5 Then Exit Do
Loop
DimensioneStandard = Conta
End If
Dim yPosFromBottom As Single
Select Case _Posizione.ToUpper
Case "ALTO"
yPosFromBottom = (_Margine)
Case "BASSO"
'yPosFromBottom = (g.Height - _Margine - DimensioneStandard)
'yPosFromBottom = CType((g.Height - DimensioneStandard - (g.Height * _Margine / 100) - (DimensioneStandard * 0.3)), Single)
yPosFromBottom = CType((g.Height - crSize.Height - (g.Height * _Margine / 100)), Single)
End Select
Dim xCenterOfImg As Single
Dim StrFormat As StringFormat = New StringFormat
Select Case _Allineamento.ToUpper
Case "SINISTRA"
xCenterOfImg = CType((_Margine + (LarghezzaStandard / 2)), Single)
If (LarghezzaStandard / 2) > (g.Width / 2) - _Margine Then
xCenterOfImg = CType((g.Width / 2), Single)
End If
Case "CENTRO"
xCenterOfImg = CType((g.Width / 2), Single)
Case "DESTRA"
xCenterOfImg = CType((g.Width - _Margine - (LarghezzaStandard / 2)), Single)
If (LarghezzaStandard / 2) > (g.Width / 2) - _Margine Then
xCenterOfImg = CType((g.Width / 2), Single)
End If
End Select
StrFormat.Alignment = StringAlignment.Center
Dim semiTransBrush2 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, 0, 0, 0))
Dim semiTransBrush As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
If _Grassetto = True Then
crFont = New Font(_IlFont, DimensioneStandard, FontStyle.Bold)
Else
crFont = New Font(_IlFont, DimensioneStandard)
End If
grPhoto.DrawString(TestoFirma, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
grPhoto.DrawString(TestoFirma, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
NomeFileBig2 = NomeFileBig
NomeFileBig = NomeFileBig.Substring(0, NomeFileBig.Length - 4) & Codice & NomeFileBig.Substring(NomeFileBig.Length - 4)
End If
'imgOutputBig
If _LogoAggiungi = True And File.Exists(_LogoNomeFile) Then
Dim ImmagineLogo As Image = Image.FromFile(_LogoNomeFile)
Dim LogoColoreTrasparente As Color = Color.White
'Dim bmWatermark As Bitmap
'* Create a Bitmap based on the previously modified photograph Bitmap
'bmWatermark = New Bitmap(imgOutputBig)
'bmWatermark.SetResolution(imgOutputBig.HorizontalResolution, imgOutputBig.VerticalResolution)
'* Load this Bitmap into a new Graphic Object
Dim grWatermark As Graphics = Graphics.FromImage(imgOutputBig)
'* To achieve a transulcent watermark we will apply (2) color manipulations
Dim imageAttributes As Imaging.ImageAttributes = New Imaging.ImageAttributes
'* The first step replace the background color with one that is trasparent (Alpha=0, R=0, G=0, B=0)
Dim colorMap As Imaging.ColorMap = New Imaging.ColorMap
'* background this will be the color we search for and replace with transparency
colorMap.OldColor = LogoColoreTrasparente
colorMap.NewColor = Color.FromArgb(0, 0, 0, 0)
Dim remapTable As Imaging.ColorMap() = {colorMap}
imageAttributes.SetRemapTable(remapTable, Imaging.ColorAdjustType.Bitmap)
'* The second color manipulation is used to change the opacity by setting the 3rd row and 3rd column to 0.3f
Dim colorMatrixElements As Single()() = {New Single() {1.0F, 0.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 1.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 1.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, CType(_LogoTrasparenza, Single) / 100, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, 0.0F, 1.0F}}
Dim wmColorMatrix As Imaging.ColorMatrix = New Imaging.ColorMatrix(colorMatrixElements)
imageAttributes.SetColorMatrix(wmColorMatrix, Imaging.ColorMatrixFlag.Default, Imaging.ColorAdjustType.Bitmap)
Dim FotoLogoH As Integer = _LogoAltezza
Dim FotoLogoW As Integer = _LogoLarghezza
Dim FattoreAlt As Double = ImmagineLogo.Height / FotoLogoH
Dim FattoreLarg As Double = ImmagineLogo.Width / FotoLogoW
Dim NuovaSize As Size
If FattoreLarg > FattoreAlt Then
NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoW, "Larghezza")
Else
NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoH, "Altezza")
End If
Dim MargineUsato As Integer
Dim MargineL As Integer
Dim InPercentualeL As Boolean
If _LogoMargine.EndsWith("%") = True Then
InPercentualeL = True
Else
InPercentualeL = False
End If
MargineL = CType(Val(_LogoMargine), Integer)
If InPercentualeL = True Then
MargineUsato = CType(imgOutputBig.Height * MargineL / 100, Integer)
Else
MargineUsato = MargineL
End If
Dim xPosOfWm As Integer
Dim yPosOfWm As Integer
Select Case _LogoPosizioneH.ToUpper
Case "SINISTRA", "NESSUNA"
xPosOfWm = MargineUsato
Case "CENTRO"
xPosOfWm = CType((imgOutputBig.Width - NuovaSize.Width) / 2, Integer)
Case "DESTRA"
xPosOfWm = ((imgOutputBig.Width - NuovaSize.Width) - MargineUsato)
End Select
Select Case _LogoPosizioneV.ToUpper
Case "ALTO", "NESSUNA"
yPosOfWm = MargineUsato
Case "CENTRO"
yPosOfWm = CType((imgOutputBig.Height - NuovaSize.Height) / 2, Integer)
Case "BASSO"
yPosOfWm = ((imgOutputBig.Height - NuovaSize.Height) - MargineUsato)
End Select
grWatermark.DrawImage(ImmagineLogo, New Rectangle(xPosOfWm, yPosOfWm, NuovaSize.Width, NuovaSize.Height), 0, 0, ImmagineLogo.Width, ImmagineLogo.Height, GraphicsUnit.Pixel, imageAttributes)
grWatermark.Dispose()
End If
If _FotoGrandeDimOrigina = False Then
imgOutputBig.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig), thisFormat)
Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
If g2.Width > g2.Height Then
thumbSizeBig = NewthumbSize(g2.Width, g2.Height, _LarghezzaBig, "Larghezza")
Else
thumbSizeBig = NewthumbSize(g2.Width, g2.Height, _AltezzaBig, "Altezza")
End If
Dim imgOutputBig2 As New Bitmap(g2, thumbSizeBig.Width, thumbSizeBig.Height)
imgOutputBig2.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
imgOutputBig2.Dispose()
imgOutputBig.Dispose()
g2.Dispose()
Else
imgOutputBig.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
imgOutputBig.Dispose()
End If
If _CreaMiniature = True Then
If _AggiungiScritteMiniature = True Then
Dim g1 As System.Drawing.Image
If _FotoGrandeDimOrigina = False Then
g1 = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
Else
g1 = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, NomeFileBig))
End If
Dim imgOutputSmall As New Bitmap(g1, thumbSizeSmall.Width, thumbSizeSmall.Height)
If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) & Codice & NomeFileSmall.Substring(NomeFileSmall.Length - 4)
End If
imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
imgOutputSmall.Dispose()
g1.Dispose()
End If
End If
If File.Exists(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig)) = True Then
Kill(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
End If
g.Dispose()
grPhoto.Dispose()
If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
Kill(Path.Combine(_SourceDir.FullName, NomeFileBig2))
End If
End Sub
Function NewthumbSize(ByVal currentwidth As Integer, ByVal currentheight As Integer, ByVal MaxPixel As Integer, ByVal TipoSize As String) As Size
' Calculate the Size of the New image
'*** Larghezza, Altezza, Auto
Dim tempMultiplier As Double
If TipoSize.ToUpper = "Larghezza".ToUpper Then
tempMultiplier = MaxPixel / currentwidth
ElseIf TipoSize.ToUpper = "Altezza".ToUpper Then
tempMultiplier = MaxPixel / currentheight
Else
If currentheight > currentwidth Then ' portrait
tempMultiplier = MaxPixel / currentheight
Else
tempMultiplier = MaxPixel / currentwidth
End If
End If
Dim NewSize As New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
Return NewSize
End Function
Public Property DirectorySorgente() As String
Get
Return _DirectorySorgente
End Get
Set(ByVal value As String)
_DirectorySorgente = value
End Set
End Property
Public Property DirectoryDestinazione() As String
Get
Return _DirectoryDestinazione
End Get
Set(ByVal value As String)
_DirectoryDestinazione = value
End Set
End Property
Public Property SourceDir() As DirectoryInfo
Get
Return _SourceDir
End Get
Set(ByVal value As DirectoryInfo)
_SourceDir = value
End Set
End Property
Public Property DestDirStart() As DirectoryInfo
Get
Return _DestDirStart
End Get
Set(ByVal value As DirectoryInfo)
_DestDirStart = value
End Set
End Property
Public Property TestoFirmaStart() As String
Get
Return _TestoFirmaStart
End Get
Set(ByVal value As String)
_TestoFirmaStart = value
End Set
End Property
Public Property TestoFirmaStartV() As String
Get
Return _TestoFirmaStartV
End Get
Set(ByVal value As String)
_TestoFirmaStartV = value
End Set
End Property
Public Property DataPartenza() As DateTime
Get
Return _DataPartenza
End Get
Set(ByVal value As DateTime)
_DataPartenza = value
End Set
End Property
Public Property TestoOrario() As String
Get
Return _TestoOrario
End Get
Set(ByVal value As String)
_TestoOrario = value
End Set
End Property
Public Property DimStandard() As Integer
Get
Return _DimStandard
End Get
Set(ByVal value As Integer)
_DimStandard = value
End Set
End Property
Public Property DimStandardMiniatura() As Integer
Get
Return _DimStandardMiniatura
End Get
Set(ByVal value As Integer)
_DimStandardMiniatura = value
End Set
End Property
Public Property UsaOrarioMiniatura() As Boolean
Get
Return _UsaOrarioMiniatura
End Get
Set(ByVal value As Boolean)
_UsaOrarioMiniatura = value
End Set
End Property
Public Property UsaOrarioTestoApplicare() As Boolean
Get
Return _UsaOrarioTestoApplicare
End Get
Set(ByVal value As Boolean)
_UsaOrarioTestoApplicare = value
End Set
End Property
Public Property UsaTempoGaraTestoApplicare() As Boolean
Get
Return _UsaTempoGaraTestoApplicare
End Get
Set(ByVal value As Boolean)
_UsaTempoGaraTestoApplicare = value
End Set
End Property
Public Property UsaRotazioneAutomatica() As Boolean
Get
Return _UsaRotazioneAutomatica
End Get
Set(ByVal value As Boolean)
_UsaRotazioneAutomatica = value
End Set
End Property
Public Property UsaForzaJpg() As Boolean
Get
Return _UsaForzaJpg
End Get
Set(ByVal value As Boolean)
_UsaForzaJpg = value
End Set
End Property
Public Property LarghezzaSmall() As Integer
Get
Return _LarghezzaSmall
End Get
Set(ByVal value As Integer)
_LarghezzaSmall = value
End Set
End Property
Public Property AltezzaSmall() As Integer
Get
Return _AltezzaSmall
End Get
Set(ByVal value As Integer)
_AltezzaSmall = value
End Set
End Property
Public Property CreaMiniature() As Boolean
Get
Return _CreaMiniature
End Get
Set(ByVal value As Boolean)
_CreaMiniature = value
End Set
End Property
Public Property AggiungiScritteMiniature() As Boolean
Get
Return _AggiungiScritteMiniature
End Get
Set(ByVal value As Boolean)
_AggiungiScritteMiniature = value
End Set
End Property
Public Property NomeFileChild() As String
Get
Return _NomeFileChild
End Get
Set(ByVal value As String)
_NomeFileChild = value
End Set
End Property
Public Property Suffisso() As String
Get
Return _Suffisso
End Get
Set(ByVal value As String)
_Suffisso = value
End Set
End Property
Public Property Codice() As String
Get
Return _Codice
End Get
Set(ByVal value As String)
_Codice = value
End Set
End Property
Public Property Trasparenza() As Integer
Get
Return _Trasparenza
End Get
Set(ByVal value As Integer)
_Trasparenza = value
End Set
End Property
Public Property IlFont() As String
Get
Return _IlFont
End Get
Set(ByVal value As String)
_IlFont = value
End Set
End Property
Public Property Grassetto() As Boolean
Get
Return _Grassetto
End Get
Set(ByVal value As Boolean)
_Grassetto = value
End Set
End Property
Public Property Posizione() As String
Get
Return _Posizione
End Get
Set(ByVal value As String)
_Posizione = value
End Set
End Property
Public Property Allineamento() As String
Get
Return _Allineamento
End Get
Set(ByVal value As String)
_Allineamento = value
End Set
End Property
Public Property Margine() As Integer
Get
Return _Margine
End Get
Set(ByVal value As Integer)
_Margine = value
End Set
End Property
Public Property LogoAltezza() As Integer
Get
Return _LogoAltezza
End Get
Set(ByVal value As Integer)
_LogoAltezza = value
End Set
End Property
Public Property LogoLarghezza() As Integer
Get
Return _LogoLarghezza
End Get
Set(ByVal value As Integer)
_LogoLarghezza = value
End Set
End Property
Public Property FontColoreR() As Integer
Get
Return _FontColoreR
End Get
Set(ByVal value As Integer)
_FontColoreR = value
End Set
End Property
Public Property FontColoreG() As Integer
Get
Return _FontColoreG
End Get
Set(ByVal value As Integer)
_FontColoreG = value
End Set
End Property
Public Property FontColoreB() As Integer
Get
Return _FontColoreB
End Get
Set(ByVal value As Integer)
_FontColoreB = value
End Set
End Property
Public Property LogoAggiungi() As Boolean
Get
Return _LogoAggiungi
End Get
Set(ByVal value As Boolean)
_LogoAggiungi = value
End Set
End Property
Public Property LogoNomeFile() As String
Get
Return _LogoNomeFile
End Get
Set(ByVal value As String)
_LogoNomeFile = value
End Set
End Property
Public Property LogoTrasparenza() As String
Get
Return _LogoTrasparenza
End Get
Set(ByVal value As String)
_LogoTrasparenza = value
End Set
End Property
Public Property LogoMargine() As String
Get
Return _LogoMargine
End Get
Set(ByVal value As String)
_LogoMargine = value
End Set
End Property
Public Property LogoPosizioneH() As String
Get
Return _LogoPosizioneH
End Get
Set(ByVal value As String)
_LogoPosizioneH = value
End Set
End Property
Public Property LogoPosizioneV() As String
Get
Return _LogoPosizioneV
End Get
Set(ByVal value As String)
_LogoPosizioneV = value
End Set
End Property
Public Property FotoGrandeDimOrigina() As Boolean
Get
Return _FotoGrandeDimOrigina
End Get
Set(ByVal value As Boolean)
_FotoGrandeDimOrigina = value
End Set
End Property
Public Property AltezzaBig() As Integer
Get
Return _AltezzaBig
End Get
Set(ByVal value As Integer)
_AltezzaBig = value
End Set
End Property
Public Property LarghezzaBig() As Integer
Get
Return _LarghezzaBig
End Get
Set(ByVal value As Integer)
_LarghezzaBig = value
End Set
End Property
Public Property DestDir() As DirectoryInfo
Get
Return _DestDir
End Get
Set(ByVal value As DirectoryInfo)
_DestDir = value
End Set
End Property
End Class

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,261 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
namespace ImageCatalog
{
public class FileHelper
{
// Private dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo)
private int filesPerFolder;
private string suffix;
private int counterSize;
private int numerationType;
private string filter;
private bool separateFiles;
private string extensions = "*.jpg,*.png,*.gif";
public enum numerazione
{
Progressiva,
Files
}
/// <summary>
/// Preparazione per la separazione
/// </summary>
/// <param name="filesPerFolder"></param>
/// <param name="suffix"></param>
/// <param name="counterSize"></param>
/// <param name="numerationType"></param>
/// <remarks></remarks>
public FileHelper(int filesPerFolder, string suffix, int counterSize, int numerationType)
{
this.filesPerFolder = filesPerFolder;
this.suffix = suffix;
this.counterSize = counterSize;
this.numerationType = numerationType;
separateFiles = true;
}
/// <summary>
/// nessuna separazione
/// </summary>
/// <remarks></remarks>
public FileHelper()
{
separateFiles = false;
}
public Dictionary<FileInfo, DirectoryInfo> GetFilesRecursive(DirectoryInfo root, DirectoryInfo destRoot, string filter)
{
var dirSourceDest = new Dictionary<FileInfo, DirectoryInfo>();
var result = new List<FileInfo>();
// Dim stack As New Stack(Of DirectoryInfo)
var stack = new Stack<KeyValuePair<DirectoryInfo, DirectoryInfo>>();
this.filter = filter;
var pair = new KeyValuePair<DirectoryInfo, DirectoryInfo>();
// stack.Push(root)
stack.Push(new KeyValuePair<DirectoryInfo, DirectoryInfo>(root, destRoot));
while (stack.Count > 0)
{
var curDirKV = stack.Pop();
// curDirKP = stack.Pop()
var dir = curDirKV.Key;
var dDir = curDirKV.Value;
try
{
// result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
// dividere file qui
if (filesPerFolder > 0 & separateFiles)
{
appendDictionary(dirSourceDest, dividiFilesInDir(dir, dDir));
}
else
{
appendDictionary(dirSourceDest, getAllFilesInDir(dir, dDir));
}
foreach (DirectoryInfo subDirectory in dir.GetDirectories())
stack.Push(new KeyValuePair<DirectoryInfo, DirectoryInfo>(subDirectory, new DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))));
}
catch (Exception ex)
{
var e = ex.Demystify();
Console.WriteLine(e);
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
return dirSourceDest;
}
// Public Class FileData
// Public File As FileInfo
// Public Directory As DirectoryInfo
// Public Sub New(newFile As FileInfo, newDirectory As DirectoryInfo)
// File = newFile
// Directory = newDirectory
// End Sub
// End Class
// Public Function GetFilesRecursiveParallel(ByVal root As DirectoryInfo, ByVal destRoot As DirectoryInfo, ByVal filter As String) As List(Of FileData)
// Dim dirSourceDest As New ConcurrentDictionary(Of FileInfo, DirectoryInfo)
// Dim result As New List(Of FileInfo)
// 'Dim stack As New Stack(Of DirectoryInfo)
// Dim stack As New Stack(Of KeyValuePair(Of DirectoryInfo, DirectoryInfo))
// Me.filter = filter
// Dim pair As New KeyValuePair(Of DirectoryInfo, DirectoryInfo)
// 'stack.Push(root)
// stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(root, destRoot))
// Do While (stack.Count > 0)
// Dim curDirKV As KeyValuePair(Of DirectoryInfo, DirectoryInfo) = stack.Pop
// 'curDirKP = stack.Pop()
// Dim dir As DirectoryInfo = curDirKV.Key
// Dim dDir As DirectoryInfo = curDirKV.Value
// Try
// 'result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
// ' dividere file qui
// If filesPerFolder > 0 And separateFiles Then
// AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir))
// Else
// AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir))
// End If
// For Each subDirectory As DirectoryInfo In dir.GetDirectories
// stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(subDirectory, New DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))))
// Next
// Catch ex As Exception
// ' TODO: FARE QUALCOSA
// End Try
// Loop
// Dim resultData As New List(Of FileData)
// resultData.AddRange(From p In dirSourceDest Select New FileData(p.Key, p.Value))
// Return resultData
// 'Return dirSourceDest
// End Function
public Dictionary<FileInfo, DirectoryInfo> appendDictionary(Dictionary<FileInfo, DirectoryInfo> dictA, Dictionary<FileInfo, DirectoryInfo> dictB)
{
foreach (KeyValuePair<FileInfo, DirectoryInfo> pair in dictB)
dictA.Add(pair.Key, pair.Value);
return dictA;
}
// Public Function AppendDictionaryConcurrent(ByVal dictA As ConcurrentDictionary(Of FileInfo, DirectoryInfo), ByVal dictB As ConcurrentDictionary(Of FileInfo, DirectoryInfo)) As ConcurrentDictionary(Of FileInfo, DirectoryInfo)
// For Each pair As KeyValuePair(Of FileInfo, DirectoryInfo) In dictB
// dictA.TryAdd(pair.Key, pair.Value)
// 'dictA.Add(pair.Key, pair.Value)
// Next
// Return dictA
// End Function
public Dictionary<FileInfo, DirectoryInfo> getAllFilesInDir(DirectoryInfo dir, DirectoryInfo dirDest)
{
var dict = new Dictionary<FileInfo, DirectoryInfo>();
foreach (FileInfo File in dir.GetFiles(filter))
dict.Add(File, new DirectoryInfo(Path.Combine(dirDest.FullName, File.Name)));
return dict;
}
private Dictionary<FileInfo, DirectoryInfo> dividiFilesInDir(DirectoryInfo dir, DirectoryInfo dirDest)
{
int filesCount = dir.GetFiles(filter).Count();
int contaFilePerDir = 0;
int contaDirPerDir = 0;
string tempText = string.Empty;
var foldersDict = new Dictionary<FileInfo, DirectoryInfo>();
DirectoryInfo destDir;
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName));
foreach (FileInfo file in dir.GetFiles(filter))
{
contaFilePerDir += 1;
if (contaFilePerDir == contaDirPerDir * filesPerFolder + 1)
{
contaDirPerDir += 1;
if (numerationType == (int)numerazione.Progressiva)
{
tempText = contaDirPerDir.ToString();
}
else
{
tempText = (contaDirPerDir * filesPerFolder).ToString();
}
int i;
var loopTo = counterSize - tempText.Length;
for (i = 1; i <= loopTo; i++)
tempText = "0" + tempText;
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText));
}
if (!destDir.Exists)
{
destDir.Create();
}
foldersDict.Add(file, destDir);
}
return foldersDict;
}
private ConcurrentDictionary<FileInfo, DirectoryInfo> DividiFilesInDirConcurrent(DirectoryInfo dir, DirectoryInfo dirDest)
{
int filesCount = dir.GetFiles(filter).Count();
int contaFilePerDir = 0;
int contaDirPerDir = 0;
string tempText = string.Empty;
var foldersDict = new ConcurrentDictionary<FileInfo, DirectoryInfo>();
DirectoryInfo destDir;
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName));
foreach (FileInfo file in dir.GetFiles(filter))
{
contaFilePerDir += 1;
if (contaFilePerDir == contaDirPerDir * filesPerFolder + 1)
{
contaDirPerDir += 1;
if (numerationType == (int)numerazione.Progressiva)
{
tempText = contaDirPerDir.ToString();
}
else
{
tempText = (contaDirPerDir * filesPerFolder).ToString();
}
int i;
var loopTo = counterSize - tempText.Length;
for (i = 1; i <= loopTo; i++)
tempText = "0" + tempText;
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText));
}
if (!destDir.Exists)
{
destDir.Create();
}
foldersDict.TryAdd(file, destDir);
}
return foldersDict;
}
}
}

View file

@ -0,0 +1,252 @@
Imports System.Collections.Concurrent
Imports System.IO
Imports System.Collections.Generic
Imports MaddoShared
Public Class FileHelper
'Private dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo)
Private filesPerFolder As Integer
Private suffix As String
Private counterSize As Integer
Private numerationType As Integer
Private filter As String
Private separateFiles As Boolean
Private extensions As String = "*.jpg,*.png,*.gif"
Public Enum numerazione
Progressiva
Files
End Enum
''' <summary>
''' Preparazione per la separazione
''' </summary>
''' <param name="filesPerFolder"></param>
''' <param name="suffix"></param>
''' <param name="counterSize"></param>
''' <param name="numerationType"></param>
''' <remarks></remarks>
Public Sub New(ByVal filesPerFolder As Integer, ByVal suffix As String, ByVal counterSize As Integer, ByVal numerationType As Integer)
Me.filesPerFolder = filesPerFolder
Me.suffix = suffix
Me.counterSize = counterSize
Me.numerationType = numerationType
Me.separateFiles = True
End Sub
''' <summary>
''' nessuna separazione
''' </summary>
''' <remarks></remarks>
Public Sub New()
Me.separateFiles = False
End Sub
Public Function GetFilesRecursive(ByVal root As DirectoryInfo, ByVal destRoot As DirectoryInfo, ByVal filter As String) As Dictionary(Of FileInfo, DirectoryInfo)
Dim dirSourceDest As New Dictionary(Of FileInfo, DirectoryInfo)
Dim result As New List(Of FileInfo)
'Dim stack As New Stack(Of DirectoryInfo)
Dim stack As New Stack(Of KeyValuePair(Of DirectoryInfo, DirectoryInfo))
Me.filter = filter
Dim pair As New KeyValuePair(Of DirectoryInfo, DirectoryInfo)
'stack.Push(root)
stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(root, destRoot))
Do While (stack.Count > 0)
Dim curDirKV As KeyValuePair(Of DirectoryInfo, DirectoryInfo) = stack.Pop
'curDirKP = stack.Pop()
Dim dir As DirectoryInfo = curDirKV.Key
Dim dDir As DirectoryInfo = curDirKV.Value
Try
'result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
' dividere file qui
If filesPerFolder > 0 And separateFiles Then
appendDictionary(dirSourceDest, dividiFilesInDir(dir, dDir))
Else
appendDictionary(dirSourceDest, getAllFilesInDir(dir, dDir))
End If
For Each subDirectory As DirectoryInfo In dir.GetDirectories
stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(subDirectory, New DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))))
Next
Catch ex As Exception
Dim e As Exception = ex.Demystify()
Console.WriteLine(e)
Console.WriteLine(e.Message)
Console.WriteLine(e.StackTrace)
End Try
Loop
Return dirSourceDest
End Function
'Public Class FileData
' Public File As FileInfo
' Public Directory As DirectoryInfo
' Public Sub New(newFile As FileInfo, newDirectory As DirectoryInfo)
' File = newFile
' Directory = newDirectory
' End Sub
'End Class
'Public Function GetFilesRecursiveParallel(ByVal root As DirectoryInfo, ByVal destRoot As DirectoryInfo, ByVal filter As String) As List(Of FileData)
' Dim dirSourceDest As New ConcurrentDictionary(Of FileInfo, DirectoryInfo)
' Dim result As New List(Of FileInfo)
' 'Dim stack As New Stack(Of DirectoryInfo)
' Dim stack As New Stack(Of KeyValuePair(Of DirectoryInfo, DirectoryInfo))
' Me.filter = filter
' Dim pair As New KeyValuePair(Of DirectoryInfo, DirectoryInfo)
' 'stack.Push(root)
' stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(root, destRoot))
' Do While (stack.Count > 0)
' Dim curDirKV As KeyValuePair(Of DirectoryInfo, DirectoryInfo) = stack.Pop
' 'curDirKP = stack.Pop()
' Dim dir As DirectoryInfo = curDirKV.Key
' Dim dDir As DirectoryInfo = curDirKV.Value
' Try
' 'result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
' ' dividere file qui
' If filesPerFolder > 0 And separateFiles Then
' AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir))
' Else
' AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir))
' End If
' For Each subDirectory As DirectoryInfo In dir.GetDirectories
' stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(subDirectory, New DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))))
' Next
' Catch ex As Exception
' ' TODO: FARE QUALCOSA
' End Try
' Loop
' Dim resultData As New List(Of FileData)
' resultData.AddRange(From p In dirSourceDest Select New FileData(p.Key, p.Value))
' Return resultData
' 'Return dirSourceDest
'End Function
Public Function appendDictionary(ByVal dictA As Dictionary(Of FileInfo, DirectoryInfo), ByVal dictB As Dictionary(Of FileInfo, DirectoryInfo)) As Dictionary(Of FileInfo, DirectoryInfo)
For Each pair As KeyValuePair(Of FileInfo, DirectoryInfo) In dictB
dictA.Add(pair.Key, pair.Value)
Next
Return dictA
End Function
'Public Function AppendDictionaryConcurrent(ByVal dictA As ConcurrentDictionary(Of FileInfo, DirectoryInfo), ByVal dictB As ConcurrentDictionary(Of FileInfo, DirectoryInfo)) As ConcurrentDictionary(Of FileInfo, DirectoryInfo)
' For Each pair As KeyValuePair(Of FileInfo, DirectoryInfo) In dictB
' dictA.TryAdd(pair.Key, pair.Value)
' 'dictA.Add(pair.Key, pair.Value)
' Next
' Return dictA
'End Function
Public Function getAllFilesInDir(dir As DirectoryInfo, dirDest As DirectoryInfo) As Dictionary(Of FileInfo, DirectoryInfo)
Dim dict As New Dictionary(Of FileInfo, DirectoryInfo)
For Each File As FileInfo In dir.GetFiles(filter)
dict.Add(File, New DirectoryInfo(Path.Combine(dirDest.FullName, File.Name)))
Next
Return dict
End Function
Private Function dividiFilesInDir(dir As DirectoryInfo, dirDest As DirectoryInfo) As Dictionary(Of FileInfo, DirectoryInfo)
Dim filesCount As Integer = dir.GetFiles(filter).Count
Dim contaFilePerDir As Integer = 0
Dim contaDirPerDir As Integer = 0
Dim tempText As String = String.Empty
Dim foldersDict As New Dictionary(Of FileInfo, DirectoryInfo)
Dim destDir As DirectoryInfo
destDir = New DirectoryInfo(Path.Combine(dirDest.FullName))
For Each file As FileInfo In dir.GetFiles(filter)
contaFilePerDir += 1
If contaFilePerDir = (contaDirPerDir * filesPerFolder) + 1 Then
contaDirPerDir += 1
If numerationType = numerazione.Progressiva Then
tempText = contaDirPerDir.ToString
Else
tempText = (contaDirPerDir * filesPerFolder).ToString
End If
Dim i As Integer
For i = 1 To (counterSize - tempText.Length)
tempText = "0" & tempText
Next
destDir = New DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText))
End If
If Not destDir.Exists Then
destDir.Create()
End If
foldersDict.Add(file, destDir)
Next
Return foldersDict
End Function
Private Function DividiFilesInDirConcurrent(dir As DirectoryInfo, dirDest As DirectoryInfo) As ConcurrentDictionary(Of FileInfo, DirectoryInfo)
Dim filesCount As Integer = dir.GetFiles(filter).Count
Dim contaFilePerDir As Integer = 0
Dim contaDirPerDir As Integer = 0
Dim tempText As String = String.Empty
Dim foldersDict As New ConcurrentDictionary(Of FileInfo, DirectoryInfo)
Dim destDir As DirectoryInfo
destDir = New DirectoryInfo(Path.Combine(dirDest.FullName))
For Each file As FileInfo In dir.GetFiles(filter)
contaFilePerDir += 1
If contaFilePerDir = (contaDirPerDir * filesPerFolder) + 1 Then
contaDirPerDir += 1
If numerationType = numerazione.Progressiva Then
tempText = contaDirPerDir.ToString
Else
tempText = (contaDirPerDir * filesPerFolder).ToString
End If
Dim i As Integer
For i = 1 To (counterSize - tempText.Length)
tempText = "0" & tempText
Next
destDir = New DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText))
End If
If Not destDir.Exists Then
destDir.Create()
End If
foldersDict.TryAdd(file, destDir)
Next
Return foldersDict
End Function
End Class

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Costura />
</Weavers>

View file

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="Costura" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="CreateTemporaryAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeDebugSymbols" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCompression" type="xs:boolean">
<xs:annotation>
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCleanup" type="xs:boolean">
<xs:annotation>
<xs:documentation>As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LoadAtModuleInit" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreSatelliteAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

3281
imagecatalog.backup/Form1.cs Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,120 @@
<?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>
</root>

2946
imagecatalog.backup/Form1.vb Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,371 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{3F1E23DB-435E-0590-1EF5-735E898DBA3C}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>ImageCatalog</AssemblyName>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<AssemblyOriginatorKeyMode>None</AssemblyOriginatorKeyMode>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>WinExe</OutputType>
<OptionCompare>Binary</OptionCompare>
<OptionExplicit>On</OptionExplicit>
<OptionStrict>On</OptionStrict>
<RootNamespace>ImageCatalog</RootNamespace>
<StartupObject>ImageCatalog.My.MyApplication</StartupObject>
<FileUpgradeFlags>
</FileUpgradeFlags>
<MyType>WindowsForms</MyType>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
<LangVersion>latest</LangVersion>
<PublishUrl>\\casa-storage\Foto\catolg\parallel2.0\</PublishUrl>
<Install>true</Install>
<InstallFrom>Unc</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage>
<ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>1.8.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\</OutputPath>
<DocumentationFile>bin\ImageCatalog.xml</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\</OutputPath>
<DocumentationFile>bin\ImageCatalog.xml</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>none</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Debug\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>bin\x64\Debug\ImageCatalog.xml</DocumentationFile>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>bin\x64\Release\ImageCatalog.xml</DocumentationFile>
<Optimize>true</Optimize>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Debug\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>bin\x86\Debug\ImageCatalog.xml</DocumentationFile>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>bin\x86\Release\ImageCatalog.xml</DocumentationFile>
<Optimize>true</Optimize>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>6BFA075A69837045D051A6F7B6CAD4961D53335E</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>ImageCatalog 2_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Ben.Demystifier, Version=0.3.0.0, Culture=neutral, PublicKeyToken=a6d206e05440431a, processorArchitecture=MSIL">
<HintPath>..\packages\Ben.Demystifier.0.3.0\lib\net45\Ben.Demystifier.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0" />
<Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack.ShellExtensions, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll</HintPath>
</Reference>
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Private>True</Private>
</Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
<Private>True</Private>
</Reference>
<Reference Include="System.Drawing">
<Name>System.Drawing</Name>
<Private>True</Private>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms">
<Name>System.Windows.Forms</Name>
</Reference>
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Drawing" />
<Import Include="System.Linq" />
<Import Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="My Project\MyNamespace.Dynamic.Designer.cs" />
<Compile Include="My Project\MyNamespace.Static.1.Designer.cs" />
<Compile Include="AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="FileHelper.cs" />
<Compile Include="CreaImmagineSeparateMultiCore.cs" />
<Compile Include="CreaImmagineSeparateThread.cs" />
<Compile Include="ExifReader.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoadBuffer.cs" />
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module2.cs" />
<Compile Include="My Project\Application.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="PicSettings.cs" />
<Compile Include="XYThreadPool.cs" />
<Compile Include="Module1.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ParametriSetup.cs">
<SubType>Code</SubType>
</Compile>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<None Include="ImageCatalog 2_TemporaryKey.pfx" />
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.cs</LastGenOutput>
</None>
<None Include="app.config" />
<None Include="ClassDiagram1.cd" />
<None Include="My Project\app.manifest" />
<None Include="My Project\Settings.settings">
<CustomToolNamespace>ImageCatalog.My</CustomToolNamespace>
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</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>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Folder Include="Sorgenti\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj">
<Project>{44465926-240d-473f-90b8-786ba4384406}</Project>
<Name>CatalogVbLib</Name>
</ProjectReference>
<ProjectReference Include="..\MaddoShared\MaddoShared.csproj">
<Project>{aebfe9e3-277c-4a7b-8448-145d1b11998b}</Project>
<Name>MaddoShared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

View file

@ -0,0 +1,341 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{8D3AA2B0-8F06-4A61-9CAD-B920EB1A8E9C}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>ImageCatalog</AssemblyName>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<AssemblyOriginatorKeyMode>None</AssemblyOriginatorKeyMode>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>WinExe</OutputType>
<OptionCompare>Binary</OptionCompare>
<OptionExplicit>On</OptionExplicit>
<OptionStrict>On</OptionStrict>
<RootNamespace>ImageCatalog</RootNamespace>
<StartupObject>ImageCatalog.My.MyApplication</StartupObject>
<FileUpgradeFlags>
</FileUpgradeFlags>
<MyType>WindowsForms</MyType>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<IsWebBootstrapper>true</IsWebBootstrapper>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<PublishUrl>http://localhost/ImageCatalog/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.8.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\</OutputPath>
<DocumentationFile>ImageCatalog.xml</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\</OutputPath>
<DocumentationFile>ImageCatalog.xml</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>none</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Debug\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>ImageCatalog.xml</DocumentationFile>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>ImageCatalog.xml</DocumentationFile>
<Optimize>true</Optimize>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Debug\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>ImageCatalog.xml</DocumentationFile>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.vb</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>ImageCatalog.xml</DocumentationFile>
<Optimize>true</Optimize>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.vb</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Ben.Demystifier, Version=0.3.0.0, Culture=neutral, PublicKeyToken=a6d206e05440431a, processorArchitecture=MSIL">
<HintPath>..\packages\Ben.Demystifier.0.3.0\lib\net45\Ben.Demystifier.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0" />
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Private>True</Private>
</Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
<Private>True</Private>
</Reference>
<Reference Include="System.Drawing">
<Name>System.Drawing</Name>
<Private>True</Private>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms">
<Name>System.Windows.Forms</Name>
</Reference>
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Drawing" />
<Import Include="System.Linq" />
<Import Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.vb">
<SubType>Code</SubType>
</Compile>
<Compile Include="FileHelper.vb" />
<Compile Include="CreaImmagineSeparateMultiCore.vb" />
<Compile Include="CreaImmagineSeparateThread.vb" />
<Compile Include="ExifReader.vb">
<SubType>Code</SubType>
</Compile>
<Compile Include="Form1.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoadBuffer.vb" />
<Compile Include="MainForm.Designer.vb">
<DependentUpon>MainForm.vb</DependentUpon>
</Compile>
<Compile Include="MainForm.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module2.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="PicSettings.vb" />
<Compile Include="XYThreadPool.vb" />
<Compile Include="Module1.vb">
<SubType>Code</SubType>
</Compile>
<Compile Include="ParametriSetup.vb">
<SubType>Code</SubType>
</Compile>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.vb</DependentUpon>
</EmbeddedResource>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="app.config" />
<None Include="ClassDiagram1.cd" />
<None Include="My Project\app.manifest" />
<None Include="My Project\Settings.settings">
<CustomToolNamespace>My</CustomToolNamespace>
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</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>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Folder Include="Sorgenti\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj">
<Project>{44465926-240d-473f-90b8-786ba4384406}</Project>
<Name>CatalogVbLib</Name>
</ProjectReference>
<ProjectReference Include="..\MaddoShared\MaddoShared.csproj">
<Project>{aebfe9e3-277c-4a7b-8448-145d1b11998b}</Project>
<Name>MaddoShared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

View file

@ -0,0 +1,13 @@
using System.Collections.Generic;
using System.Drawing;
using System.IO;
namespace ImageCatalog
{
public class LoadBuffer
{
public List<Image> imageList = new List<Image>();
public List<FileInfo> picSourceList = new List<FileInfo>();
public List<List<FileInfo>> dirSourceList = new List<List<FileInfo>>();
}
}

View file

@ -0,0 +1,9 @@
Imports System.Collections.Generic
Imports System.IO
Public Class LoadBuffer
Public imageList As New List(Of System.Drawing.Image)
Public picSourceList As New List(Of FileInfo)
Public dirSourceList As New List(Of List(Of FileInfo))
End Class

2159
imagecatalog.backup/MainForm.Designer.cs generated Normal file

File diff suppressed because it is too large Load diff

1798
imagecatalog.backup/MainForm.Designer.vb generated Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

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="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,158 @@

namespace ImageCatalog
{
static class Module1
{
// Sub CaricaIni()
// Dim Parola As String
// Dim i As Integer
// Dim p As Integer
// If Dir$(NomeIni) <> "" Then
// Open NomeIni For Input As #1
// Input #1, NumeroMacchine
// For i = 1 To NumeroMacchine
// Input #1, NomeMacchina(i)
// Input #1, CodiceMacchina(i)
// Input #1, TempoMacchinaFerma(i)
// Input #1, LunghezzaImpulso(i)
// Input #1, TempoRegistrazioneDati(i)
// Input #1, RangoVelocita(i)
// Input #1, MaxVelocita(i)
// Input #1, NumeroRulli(i)
// Input #1, NumeroFili(i)
// Input #1, IndirizzoMacchina(i)
// Input #1, StampaAutoMacchina(i)
// Next i
// Input #1, SettimanaInizio
// Input #1, SettimanaFine
// Input #1, Chiusura
// Input #1, OrarioStampa
// Input #1, OrarioStampaSecondi
// Input #1, OrarioAccendiProg
// Input #1, OrarioSpengiProg
// Input #1, NomeDitta
// Input #1, StampaAutoGiorno
// Input #1, StampaAutoWeek
// Input #1, StampaGiornoRiepilogo
// Input #1, StampaGiornoGrafTMFA
// Input #1, StampaGiornoGrafVel
// Input #1, StampaWeekRiepilogo
// Input #1, StampaWeekGrafTMFA
// Input #1, StampaWeekGrafVel
// Input #1, StampanteManuale
// Input #1, StampanteAutomatica
// Input #1, StampanteNomeAghi
// Input #1, StampanteNomeLaser
// Input #1, NomePortaComm
// Input #1, TurniTotali
// For p = 1 To TurniTotali
// Input #1, TurnoNumero(p)
// Input #1, TurnoInizioMinuti(p)
// Input #1, TurnoFineMinuti(p)
// Input #1, TurnoInizioSecondi(p)
// Input #1, TurnoFineSecondi(p)
// Next p
// Input #1, Parola
// Close #1
// PassWordAmm = Trim$(Cripta(Parola, ChiaveCriDecri))
// End If
// End Sub
// Sub SalvaIni()
// Dim Conto As Single
// Dim Nomefile As String
// Dim NomeDir As String
// Dim Testo As String
// Dim TestoA As String
// Dim i As Integer
// Dim k As Integer
// Dim p As Integer
// Dim Lungo As Integer
// Dim Resto As Integer
// Dim Primo(3) As String
// For i = 1 To NumeroMacchine
// If Right$(DirectoryProgramma, 1) = "\" Then
// NomeDir = DirectoryProgramma + NomeMacchina(i)
// Else
// NomeDir = DirectoryProgramma + "\" + NomeMacchina(i)
// End If
// Nomefile = NomeDir + "\" + NomeMacchina(i) + ".SYS"
// If Dir$(Nomefile) = "" Then MkDir(NomeDir)
// Next i
// Open NomeIni For Output As #3
// Print #3, NumeroMacchine
// For i = 1 To NumeroMacchine
// If Right$(DirectoryProgramma, 1) = "\" Then
// Nomefile = DirectoryProgramma + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
// Else
// Nomefile = DirectoryProgramma + "\" + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
// End If
// Open Nomefile For Output As #4
// Write #4, NomeMacchina(i)
// Write #4, CodiceMacchina(i)
// Print #4, TempoMacchinaFerma(i)
// Print #4, LunghezzaImpulso(i)
// Print #4, TempoRegistrazioneDati(i)
// Print #4, RangoVelocita(i)
// Print #4, MaxVelocita(i)
// Print #4, NumeroRulli(i)
// Print #4, NumeroFili(i)
// Print #4, IndirizzoMacchina(i)
// Write #4, StampaAutoMacchina(i)
// Close #4
// Write #3, NomeMacchina(i)
// Write #3, CodiceMacchina(i)
// Print #3, TempoMacchinaFerma(i)
// Print #3, LunghezzaImpulso(i)
// Print #3, TempoRegistrazioneDati(i)
// Print #3, RangoVelocita(i)
// Print #3, MaxVelocita(i)
// Print #3, NumeroRulli(i)
// Print #3, NumeroFili(i)
// Print #3, IndirizzoMacchina(i)
// Write #3, StampaAutoMacchina(i)
// Next i
// Print #3, SettimanaInizio
// Print #3, SettimanaFine
// Write #3, Chiusura
// Write #3, OrarioStampa
// Print #3, OrarioStampaSecondi
// Write #3, OrarioAccendiProg
// Write #3, OrarioSpengiProg
// Write #3, NomeDitta
// Write #3, StampaAutoGiorno
// Write #3, StampaAutoWeek
// Write #3, StampaGiornoRiepilogo
// Write #3, StampaGiornoGrafTMFA
// Write #3, StampaGiornoGrafVel
// Write #3, StampaWeekRiepilogo
// Write #3, StampaWeekGrafTMFA
// Write #3, StampaWeekGrafVel
// Write #3, StampanteManuale
// Write #3, StampanteAutomatica
// Write #3, StampanteNomeAghi
// Write #3, StampanteNomeLaser
// Write #3, NomePortaComm
// Print #3, TurniTotali
// For p = 1 To TurniTotali
// Print #3, TurnoNumero(p)
// Print #3, TurnoInizioMinuti(p)
// Print #3, TurnoFineMinuti(p)
// Print #3, TurnoInizioSecondi(p)
// Print #3, TurnoFineSecondi(p)
// Next p
// Testo = Cripta(PassWordAmm, ChiaveCriDecri)
// Write #3, Testo
// Close #3
// End Sub
public static ParametriSetup SetupIni = new ParametriSetup();
}
}

View file

@ -0,0 +1,155 @@
Module Module1
'Sub CaricaIni()
' Dim Parola As String
' Dim i As Integer
' Dim p As Integer
' If Dir$(NomeIni) <> "" Then
' Open NomeIni For Input As #1
' Input #1, NumeroMacchine
' For i = 1 To NumeroMacchine
' Input #1, NomeMacchina(i)
' Input #1, CodiceMacchina(i)
' Input #1, TempoMacchinaFerma(i)
' Input #1, LunghezzaImpulso(i)
' Input #1, TempoRegistrazioneDati(i)
' Input #1, RangoVelocita(i)
' Input #1, MaxVelocita(i)
' Input #1, NumeroRulli(i)
' Input #1, NumeroFili(i)
' Input #1, IndirizzoMacchina(i)
' Input #1, StampaAutoMacchina(i)
' Next i
' Input #1, SettimanaInizio
' Input #1, SettimanaFine
' Input #1, Chiusura
' Input #1, OrarioStampa
' Input #1, OrarioStampaSecondi
' Input #1, OrarioAccendiProg
' Input #1, OrarioSpengiProg
' Input #1, NomeDitta
' Input #1, StampaAutoGiorno
' Input #1, StampaAutoWeek
' Input #1, StampaGiornoRiepilogo
' Input #1, StampaGiornoGrafTMFA
' Input #1, StampaGiornoGrafVel
' Input #1, StampaWeekRiepilogo
' Input #1, StampaWeekGrafTMFA
' Input #1, StampaWeekGrafVel
' Input #1, StampanteManuale
' Input #1, StampanteAutomatica
' Input #1, StampanteNomeAghi
' Input #1, StampanteNomeLaser
' Input #1, NomePortaComm
' Input #1, TurniTotali
' For p = 1 To TurniTotali
' Input #1, TurnoNumero(p)
' Input #1, TurnoInizioMinuti(p)
' Input #1, TurnoFineMinuti(p)
' Input #1, TurnoInizioSecondi(p)
' Input #1, TurnoFineSecondi(p)
' Next p
' Input #1, Parola
' Close #1
' PassWordAmm = Trim$(Cripta(Parola, ChiaveCriDecri))
' End If
'End Sub
'Sub SalvaIni()
' Dim Conto As Single
' Dim Nomefile As String
' Dim NomeDir As String
' Dim Testo As String
' Dim TestoA As String
' Dim i As Integer
' Dim k As Integer
' Dim p As Integer
' Dim Lungo As Integer
' Dim Resto As Integer
' Dim Primo(3) As String
' For i = 1 To NumeroMacchine
' If Right$(DirectoryProgramma, 1) = "\" Then
' NomeDir = DirectoryProgramma + NomeMacchina(i)
' Else
' NomeDir = DirectoryProgramma + "\" + NomeMacchina(i)
' End If
' Nomefile = NomeDir + "\" + NomeMacchina(i) + ".SYS"
' If Dir$(Nomefile) = "" Then MkDir(NomeDir)
' Next i
'Open NomeIni For Output As #3
' Print #3, NumeroMacchine
' For i = 1 To NumeroMacchine
' If Right$(DirectoryProgramma, 1) = "\" Then
' Nomefile = DirectoryProgramma + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
' Else
' Nomefile = DirectoryProgramma + "\" + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
' End If
' Open Nomefile For Output As #4
' Write #4, NomeMacchina(i)
' Write #4, CodiceMacchina(i)
' Print #4, TempoMacchinaFerma(i)
' Print #4, LunghezzaImpulso(i)
' Print #4, TempoRegistrazioneDati(i)
' Print #4, RangoVelocita(i)
' Print #4, MaxVelocita(i)
' Print #4, NumeroRulli(i)
' Print #4, NumeroFili(i)
' Print #4, IndirizzoMacchina(i)
' Write #4, StampaAutoMacchina(i)
' Close #4
' Write #3, NomeMacchina(i)
' Write #3, CodiceMacchina(i)
' Print #3, TempoMacchinaFerma(i)
' Print #3, LunghezzaImpulso(i)
' Print #3, TempoRegistrazioneDati(i)
' Print #3, RangoVelocita(i)
' Print #3, MaxVelocita(i)
' Print #3, NumeroRulli(i)
' Print #3, NumeroFili(i)
' Print #3, IndirizzoMacchina(i)
' Write #3, StampaAutoMacchina(i)
' Next i
' Print #3, SettimanaInizio
' Print #3, SettimanaFine
' Write #3, Chiusura
' Write #3, OrarioStampa
' Print #3, OrarioStampaSecondi
' Write #3, OrarioAccendiProg
' Write #3, OrarioSpengiProg
' Write #3, NomeDitta
' Write #3, StampaAutoGiorno
' Write #3, StampaAutoWeek
' Write #3, StampaGiornoRiepilogo
' Write #3, StampaGiornoGrafTMFA
' Write #3, StampaGiornoGrafVel
' Write #3, StampaWeekRiepilogo
' Write #3, StampaWeekGrafTMFA
' Write #3, StampaWeekGrafVel
' Write #3, StampanteManuale
' Write #3, StampanteAutomatica
' Write #3, StampanteNomeAghi
' Write #3, StampanteNomeLaser
' Write #3, NomePortaComm
' Print #3, TurniTotali
' For p = 1 To TurniTotali
' Print #3, TurnoNumero(p)
' Print #3, TurnoInizioMinuti(p)
' Print #3, TurnoFineMinuti(p)
' Print #3, TurnoInizioSecondi(p)
' Print #3, TurnoFineSecondi(p)
' Next p
' Testo = Cripta(PassWordAmm, ChiaveCriDecri)
' Write #3, Testo
'Close #3
'End Sub
Public SetupIni As New ParametriSetup
End Module

View file

@ -0,0 +1,7 @@

namespace ImageCatalog
{
static class Module2
{
}
}

View file

@ -0,0 +1,3 @@
Module Module2
End Module

View file

@ -0,0 +1,38 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
using System.Diagnostics;
namespace ImageCatalog.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.
//
internal partial class MyApplication
{
[DebuggerStepThrough()]
public MyApplication() : base(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
{
IsSingleInstance = false;
EnableVisualStyles = true;
SaveMySettingsOnExit = true;
ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses;
}
[DebuggerStepThrough()]
protected override void OnCreateMainForm()
{
MainForm = MyProject.Forms.MainForm;
}
}
}

View file

@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict Off
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.ImageCatalog.MainForm
End Sub
End Class
End Namespace

View file

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

View file

@ -0,0 +1,58 @@
using System;
using System.ComponentModel;
using System.Diagnostics;
namespace ImageCatalog.My
{
internal static partial class MyProject
{
internal partial class MyForms
{
[EditorBrowsable(EditorBrowsableState.Never)]
public Form1 m_Form1;
public Form1 Form1
{
[DebuggerHidden]
get
{
m_Form1 = Create__Instance__(m_Form1);
return m_Form1;
}
[DebuggerHidden]
set
{
if (ReferenceEquals(value, m_Form1))
return;
if (value is object)
throw new ArgumentException("Property can only be set to Nothing");
Dispose__Instance__(ref m_Form1);
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public MainForm m_MainForm;
public MainForm MainForm
{
[DebuggerHidden]
get
{
m_MainForm = Create__Instance__(m_MainForm);
return m_MainForm;
}
[DebuggerHidden]
set
{
if (ReferenceEquals(value, m_MainForm))
return;
if (value is object)
throw new ArgumentException("Property can only be set to Nothing");
Dispose__Instance__(ref m_MainForm);
}
}
}
}
}

View file

@ -0,0 +1,305 @@
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections;
using System.Diagnostics;
using System.Windows.Forms;
using Microsoft.VisualBasic;
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia */
/* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia */
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia */
namespace ImageCatalog.My
{
/* TODO ERROR: Skipped IfDirectiveTrivia */
[System.CodeDom.Compiler.GeneratedCode("MyTemplate", "11.0.0.0")]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
/* TODO ERROR: Skipped IfDirectiveTrivia */
internal partial class MyApplication : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
{
/* TODO ERROR: Skipped IfDirectiveTrivia */
[STAThread()]
[DebuggerHidden()]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)]
internal static void Main(string[] Args)
{
try
{
Application.SetCompatibleTextRenderingDefault(UseCompatibleTextRendering);
}
finally
{
}
MyProject.Application.Run(Args);
}
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
}
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia */
[System.CodeDom.Compiler.GeneratedCode("MyTemplate", "11.0.0.0")]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
/* TODO ERROR: Skipped IfDirectiveTrivia */
internal partial class MyComputer : Microsoft.VisualBasic.Devices.Computer
{
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
[DebuggerHidden()]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public MyComputer() : base()
{
}
}
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
[HideModuleName()]
[System.CodeDom.Compiler.GeneratedCode("MyTemplate", "11.0.0.0")]
internal static partial class MyProject
{
/* TODO ERROR: Skipped IfDirectiveTrivia */
[System.ComponentModel.Design.HelpKeyword("My.Computer")]
internal static MyComputer Computer
{
[DebuggerHidden()]
get
{
return m_ComputerObjectProvider.GetInstance;
}
}
private readonly static ThreadSafeObjectProvider<MyComputer> m_ComputerObjectProvider = new ThreadSafeObjectProvider<MyComputer>();
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia */
[System.ComponentModel.Design.HelpKeyword("My.Application")]
internal static MyApplication Application
{
[DebuggerHidden()]
get
{
return m_AppObjectProvider.GetInstance;
}
}
private readonly static ThreadSafeObjectProvider<MyApplication> m_AppObjectProvider = new ThreadSafeObjectProvider<MyApplication>();
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia */
[System.ComponentModel.Design.HelpKeyword("My.User")]
internal static Microsoft.VisualBasic.ApplicationServices.User User
{
[DebuggerHidden()]
get
{
return m_UserObjectProvider.GetInstance;
}
}
private readonly static ThreadSafeObjectProvider<Microsoft.VisualBasic.ApplicationServices.User> m_UserObjectProvider = new ThreadSafeObjectProvider<Microsoft.VisualBasic.ApplicationServices.User>();
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia */
/* TODO ERROR: Skipped DefineDirectiveTrivia */
[System.ComponentModel.Design.HelpKeyword("My.Forms")]
internal static MyForms Forms
{
[DebuggerHidden()]
get
{
return m_MyFormsObjectProvider.GetInstance;
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[MyGroupCollection("System.Windows.Forms.Form", "Create__Instance__", "Dispose__Instance__", "My.MyProject.Forms")]
internal sealed partial class MyForms
{
[DebuggerHidden()]
private static T Create__Instance__<T>(T Instance) where T : Form, new()
{
if (Instance is null || Instance.IsDisposed)
{
if (m_FormBeingCreated is object)
{
if (m_FormBeingCreated.ContainsKey(typeof(T)) == true)
{
throw new InvalidOperationException(Microsoft.VisualBasic.CompilerServices.Utils.GetResourceString("WinForms_RecursiveFormCreate"));
}
}
else
{
m_FormBeingCreated = new Hashtable();
}
m_FormBeingCreated.Add(typeof(T), null);
try
{
return new T();
}
catch (System.Reflection.TargetInvocationException ex) when (ex.InnerException is object)
{
string BetterMessage = Microsoft.VisualBasic.CompilerServices.Utils.GetResourceString("WinForms_SeeInnerException", ex.InnerException.Message);
throw new InvalidOperationException(BetterMessage, ex.InnerException);
}
finally
{
m_FormBeingCreated.Remove(typeof(T));
}
}
else
{
return Instance;
}
}
[DebuggerHidden()]
private void Dispose__Instance__<T>(ref T instance) where T : Form
{
instance.Dispose();
instance = null;
}
[DebuggerHidden()]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public MyForms() : base()
{
}
[ThreadStatic()]
private static Hashtable m_FormBeingCreated;
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public override bool Equals(object o)
{
return base.Equals(o);
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public override int GetHashCode()
{
return base.GetHashCode();
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
internal new Type GetType()
{
return typeof(MyForms);
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public override string ToString()
{
return base.ToString();
}
}
private static ThreadSafeObjectProvider<MyForms> m_MyFormsObjectProvider = new ThreadSafeObjectProvider<MyForms>();
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia */
[System.ComponentModel.Design.HelpKeyword("My.WebServices")]
internal static MyWebServices WebServices
{
[DebuggerHidden()]
get
{
return m_MyWebServicesObjectProvider.GetInstance;
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[MyGroupCollection("System.Web.Services.Protocols.SoapHttpClientProtocol", "Create__Instance__", "Dispose__Instance__", "")]
internal sealed class MyWebServices
{
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[DebuggerHidden()]
public override bool Equals(object o)
{
return base.Equals(o);
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[DebuggerHidden()]
public override int GetHashCode()
{
return base.GetHashCode();
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[DebuggerHidden()]
internal new Type GetType()
{
return typeof(MyWebServices);
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[DebuggerHidden()]
public override string ToString()
{
return base.ToString();
}
[DebuggerHidden()]
private static T Create__Instance__<T>(T instance) where T : new()
{
if (instance is null)
{
return new T();
}
else
{
return instance;
}
}
[DebuggerHidden()]
private void Dispose__Instance__<T>(ref T instance)
{
instance = default;
}
[DebuggerHidden()]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public MyWebServices() : base()
{
}
}
private readonly static ThreadSafeObjectProvider<MyWebServices> m_MyWebServicesObjectProvider = new ThreadSafeObjectProvider<MyWebServices>();
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Runtime.InteropServices.ComVisible(false)]
internal sealed class ThreadSafeObjectProvider<T> where T : new()
{
internal T GetInstance
{
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElseDirectiveTrivia */
[DebuggerHidden()]
get
{
if (m_ThreadStaticValue is null)
m_ThreadStaticValue = new T();
return m_ThreadStaticValue;
}
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
}
[DebuggerHidden()]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public ThreadSafeObjectProvider() : base()
{
}
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElseDirectiveTrivia */
[System.Runtime.CompilerServices.CompilerGenerated()]
[ThreadStatic()]
private static T m_ThreadStaticValue;
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
}
}
}
/* TODO ERROR: Skipped EndIfDirectiveTrivia */

View file

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ImageCatalog.My {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.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;
}
}
}
}

View file

@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict Off
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.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 "My.Settings Auto-Save Functionality"
#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(sender As Global.System.Object, 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
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.ImageCatalog.My.MySettings
Get
Return Global.ImageCatalog.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View file

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
</SettingsFile>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>

View file

@ -0,0 +1,179 @@
using System;
using System.Data;
using Microsoft.VisualBasic;
namespace ImageCatalog
{
public class ParametriSetup
{
private DataSet _ElencoParametri;
private string _NomeFileSetup;
public ParametriSetup(string FileSetup)
{
_ElencoParametri = new DataSet();
_NomeFileSetup = FileSetup;
if (!string.IsNullOrEmpty(FileSetup))
{
CaricaParametriSetup();
}
}
public ParametriSetup()
{
_ElencoParametri = new DataSet();
_NomeFileSetup = "";
}
public void CaricaParametriSetup()
{
_ElencoParametri = LeggiXmlDataSet("Setup", _NomeFileSetup, "Nome");
}
public void SalvaParametriSetup()
{
if (System.IO.File.Exists(_NomeFileSetup) == true)
{
FileSystem.Kill(_NomeFileSetup);
}
_ElencoParametri.WriteXml(_NomeFileSetup);
}
public string LeggiParametroString(string NomeParametro)
{
string Risposta = "";
try
{
var LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
foreach (var LaRiga in LElenco)
Risposta = LaRiga["Valore"].ToString();
}
catch
{
Risposta = "";
}
return Risposta;
}
public bool LeggiParametroBoolean(string NomeParametro)
{
string Risposta = "";
try
{
var LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
foreach (var LaRiga in LElenco)
Risposta = LaRiga["Valore"].ToString();
}
catch
{
Risposta = "";
}
switch (Risposta.ToUpper() ?? "")
{
case "TRUE":
case "OK":
case "SI":
case "1":
case "YES":
case "VERO":
{
return true;
}
default:
{
return false;
}
}
}
public void AggiornaParametro(string NomeParametro, object ValoreParametro)
{
try
{
if (_ElencoParametri.Tables["Setup"] is null)
{
var TabellaTmp = new DataTable("Setup");
DataRow RigaTmp;
DataColumn LaColonna;
LaColonna = TabellaTmp.Columns.Add("Nome", Type.GetType("System.String"));
LaColonna = TabellaTmp.Columns.Add("Valore", Type.GetType("System.String"));
// * Aggiunge alla tabella tutte le righe
RigaTmp = TabellaTmp.NewRow();
RigaTmp["Nome"] = NomeParametro;
RigaTmp["Valore"] = ValoreParametro;
TabellaTmp.Rows.Add(RigaTmp);
_ElencoParametri.Tables.Add(TabellaTmp);
}
else
{
var LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
if (LElenco.Length == 0)
{
DataRow LaRiga;
LaRiga = _ElencoParametri.Tables["Setup"].NewRow();
LaRiga["Nome"] = NomeParametro;
LaRiga["Valore"] = ValoreParametro;
_ElencoParametri.Tables["Setup"].Rows.Add(LaRiga);
}
else
{
LElenco[0]["Valore"] = ValoreParametro;
}
}
}
catch
{
}
}
private DataTable LeggiXmlDataTable(string NomeTabella, string NomeFileXml, string NomeColonnaChiave = "")
{
// * Crea e Legge il dataset dal file xml
var DataSetXml = new DataSet();
DataSetXml.ReadXml(NomeFileXml);
// * Aggiunge il campo chiave
if (!string.IsNullOrEmpty(NomeColonnaChiave))
{
DataSetXml.Tables[NomeTabella].Constraints.Add(NomeColonnaChiave, DataSetXml.Tables[NomeTabella].Columns[NomeColonnaChiave], true);
}
// * Restituisce la risposta
return DataSetXml.Tables[NomeTabella];
}
private static DataSet LeggiXmlDataSet(string NomeTabella, string NomeFileXml, string NomeColonnaChiave = "")
{
// * Crea e Legge il dataset dal file xml
var DataSetXml = new DataSet();
DataSetXml.ReadXml(NomeFileXml);
// * Aggiunge il campo chiave
if (!string.IsNullOrEmpty(NomeColonnaChiave))
{
DataSetXml.Tables[NomeTabella].Constraints.Add(NomeColonnaChiave, DataSetXml.Tables[NomeTabella].Columns[NomeColonnaChiave], true);
}
// * Restituisce la risposta
return DataSetXml;
}
public string NomeFileSetup
{
get
{
return _NomeFileSetup;
}
set
{
_NomeFileSetup = value;
}
}
}
}

View file

@ -0,0 +1,148 @@
Public Class ParametriSetup
Private _ElencoParametri As DataSet
Private _NomeFileSetup As String
Public Sub New(ByVal FileSetup As String)
_ElencoParametri = New DataSet
_NomeFileSetup = FileSetup
If FileSetup <> "" Then
CaricaParametriSetup()
End If
End Sub
Public Sub New()
_ElencoParametri = New DataSet
_NomeFileSetup = ""
End Sub
Public Sub CaricaParametriSetup()
_ElencoParametri = LeggiXmlDataSet("Setup", _NomeFileSetup, "Nome")
End Sub
Public Sub SalvaParametriSetup()
If System.IO.File.Exists(_NomeFileSetup) = True Then
Kill(_NomeFileSetup)
End If
_ElencoParametri.WriteXml(_NomeFileSetup)
End Sub
Public Function LeggiParametroString(ByVal NomeParametro As String) As String
Dim Risposta As String = ""
Try
Dim LElenco As DataRow() = _ElencoParametri.Tables("Setup").Select("Nome='" & NomeParametro & "'")
Dim LaRiga As DataRow
For Each LaRiga In LElenco
Risposta = LaRiga("Valore").ToString
Next
Catch
Risposta = ""
End Try
Return Risposta
End Function
Public Function LeggiParametroBoolean(ByVal NomeParametro As String) As Boolean
Dim Risposta As String = ""
Try
Dim LElenco As DataRow() = _ElencoParametri.Tables("Setup").Select("Nome='" & NomeParametro & "'")
Dim LaRiga As DataRow
For Each LaRiga In LElenco
Risposta = LaRiga("Valore").ToString
Next
Catch
Risposta = ""
End Try
Select Case Risposta.ToUpper
Case "TRUE", "OK", "SI", "1", "YES", "VERO"
Return True
Case Else
Return False
End Select
End Function
Public Sub AggiornaParametro(ByVal NomeParametro As String, ByVal ValoreParametro As Object)
Try
If _ElencoParametri.Tables("Setup") Is Nothing Then
Dim TabellaTmp As New DataTable("Setup")
Dim RigaTmp As DataRow
Dim LaColonna As DataColumn
LaColonna = TabellaTmp.Columns.Add("Nome", System.Type.GetType("System.String"))
LaColonna = TabellaTmp.Columns.Add("Valore", System.Type.GetType("System.String"))
'* Aggiunge alla tabella tutte le righe
RigaTmp = TabellaTmp.NewRow
RigaTmp("Nome") = NomeParametro
RigaTmp("Valore") = ValoreParametro
TabellaTmp.Rows.Add(RigaTmp)
_ElencoParametri.Tables.Add(TabellaTmp)
Else
Dim LElenco As DataRow() = _ElencoParametri.Tables("Setup").Select("Nome='" & NomeParametro & "'")
If LElenco.Length = 0 Then
Dim LaRiga As DataRow
LaRiga = _ElencoParametri.Tables("Setup").NewRow
LaRiga("Nome") = NomeParametro
LaRiga("Valore") = ValoreParametro
_ElencoParametri.Tables("Setup").Rows.Add(LaRiga)
Else
LElenco(0).Item("Valore") = ValoreParametro
End If
End If
Catch
End Try
End Sub
Private Function LeggiXmlDataTable(ByVal NomeTabella As String, ByVal NomeFileXml As String, Optional ByVal NomeColonnaChiave As String = "") As DataTable
'* Crea e Legge il dataset dal file xml
Dim DataSetXml As New System.Data.DataSet
DataSetXml.ReadXml(NomeFileXml)
'* Aggiunge il campo chiave
If NomeColonnaChiave <> "" Then
DataSetXml.Tables(NomeTabella).Constraints.Add(NomeColonnaChiave, DataSetXml.Tables(NomeTabella).Columns(NomeColonnaChiave), True)
End If
'* Restituisce la risposta
Return DataSetXml.Tables(NomeTabella)
End Function
Private Shared Function LeggiXmlDataSet(ByVal NomeTabella As String, ByVal NomeFileXml As String, Optional ByVal NomeColonnaChiave As String = "") As DataSet
'* Crea e Legge il dataset dal file xml
Dim DataSetXml As New System.Data.DataSet
DataSetXml.ReadXml(NomeFileXml)
'* Aggiunge il campo chiave
If NomeColonnaChiave <> "" Then
DataSetXml.Tables(NomeTabella).Constraints.Add(NomeColonnaChiave, DataSetXml.Tables(NomeTabella).Columns(NomeColonnaChiave), True)
End If
'* Restituisce la risposta
Return DataSetXml
End Function
Public Property NomeFileSetup() As String
Get
Return _NomeFileSetup
End Get
Set(ByVal Value As String)
_NomeFileSetup = Value
End Set
End Property
End Class

View file

@ -0,0 +1,602 @@

// Module PicSettings
// Private _DirectorySorgente As String
// Private _DirectoryDestinazione As String
// Private _DimVert As Integer
// Private _MargVert As Integer
// Private _DimStandard As Integer
// Private _DimStandardMiniatura As Integer
// Private _NomeData As Boolean
// Private _TestoNome As Boolean
// Private _UsaOrarioMiniatura As Boolean
// Private _UsaOrarioTestoApplicare As Boolean
// Private _UsaTempoGaraTestoApplicare As Boolean
// Private _TestoFirmaStart As String
// Private _TestoFirmaStartV As String
// Private _DataPartenza As DateTime
// Private _TestoOrario As String
// Private _UsaRotazioneAutomatica As Boolean
// Private _UsaForzaJpg As Boolean
// Private _LarghezzaSmall As Integer
// Private _AltezzaSmall As Integer
// Private _CreaMiniature As Boolean
// Private _AggiungiScritteMiniature As Boolean
// Private _AggTempoGaraMin As Boolean
// Private _AggNumTempMin As Boolean
// Private _Suffisso As String
// Private _Codice As String
// Private _Trasparenza As Integer
// Private _IlFont As String
// Private _Grassetto As Boolean
// Private _Posizione As String
// Private _Allineamento As String
// Private _Margine As Integer
// Private _LogoAltezza As Integer
// Private _LogoLarghezza As Integer
// Private _fontColoreRGB As Color
// Private _LogoAggiungi As Boolean
// Private _LogoNomeFile As String
// Private _LogoTrasparenza As String
// Private _LogoMargine As String
// Private _LogoPosizioneH As String
// Private _LogoPosizioneV As String
// Private _FotoGrandeDimOrigina As Boolean
// Private _AltezzaBig As Integer
// Private _LarghezzaBig As Integer
// Private _DestDir As DirectoryInfo
// Private _DimMin As Integer
// Private _TestoMin As Boolean
// Private _SecretDefault As Boolean
// Private _SecretBig As Boolean
// Private _SecretSmall As Boolean
// Private _SecretPathSmall As String
// Private _SecretPathBig As String
// Private _jpegQuality As Long
// Private _jpegQualityMin As Long
// Private FotoRuotaADestra As Boolean = False
// Private FotoRuotaASinistra As Boolean = False
// Private TempMinText As String = ""
// Private _mainForm As MainForm
// 'Private progressBar As System.Windows.Forms.ProgressBar
// Public Property mainForm() As MainForm
// Get
// Return _mainForm
// End Get
// Set(ByVal value As MainForm)
// _mainForm = value
// End Set
// End Property
// Public Property DirectorySorgente() As String
// Get
// Return _DirectorySorgente
// End Get
// Set(ByVal value As String)
// _DirectorySorgente = value
// End Set
// End Property
// Public Property DirectoryDestinazione() As String
// Get
// Return _DirectoryDestinazione
// End Get
// Set(ByVal value As String)
// _DirectoryDestinazione = value
// End Set
// End Property
// Public Property TestoFirmaStart() As String
// Get
// Return _TestoFirmaStart
// End Get
// Set(ByVal value As String)
// _TestoFirmaStart = value
// End Set
// End Property
// Public Property TestoFirmaStartV() As String
// Get
// Return _TestoFirmaStartV
// End Get
// Set(ByVal value As String)
// _TestoFirmaStartV = value
// End Set
// End Property
// Public Property DataPartenza() As DateTime
// Get
// Return _DataPartenza
// End Get
// Set(ByVal value As DateTime)
// _DataPartenza = value
// End Set
// End Property
// Public Property TestoOrario() As String
// Get
// Return _TestoOrario
// End Get
// Set(ByVal value As String)
// _TestoOrario = value
// End Set
// End Property
// Public Property DimStandard() As Integer
// Get
// Return _DimStandard
// End Get
// Set(ByVal value As Integer)
// _DimStandard = value
// End Set
// End Property
// Public Property DimStandardMiniatura() As Integer
// Get
// Return _DimStandardMiniatura
// End Get
// Set(ByVal value As Integer)
// _DimStandardMiniatura = value
// End Set
// End Property
// Public Property NomeData() As Boolean
// Get
// Return _NomeData
// End Get
// Set(ByVal value As Boolean)
// _NomeData = value
// End Set
// End Property
// Public Property TestoNome() As Boolean
// Get
// Return _TestoNome
// End Get
// Set(ByVal value As Boolean)
// _TestoNome = value
// End Set
// End Property
// Public Property UsaOrarioMiniatura() As Boolean
// Get
// Return _UsaOrarioMiniatura
// End Get
// Set(ByVal value As Boolean)
// _UsaOrarioMiniatura = value
// End Set
// End Property
// Public Property UsaOrarioTestoApplicare() As Boolean
// Get
// Return _UsaOrarioTestoApplicare
// End Get
// Set(ByVal value As Boolean)
// _UsaOrarioTestoApplicare = value
// End Set
// End Property
// Public Property UsaTempoGaraTestoApplicare() As Boolean
// Get
// Return _UsaTempoGaraTestoApplicare
// End Get
// Set(ByVal value As Boolean)
// _UsaTempoGaraTestoApplicare = value
// End Set
// End Property
// Public Property UsaRotazioneAutomatica() As Boolean
// Get
// Return _UsaRotazioneAutomatica
// End Get
// Set(ByVal value As Boolean)
// _UsaRotazioneAutomatica = value
// End Set
// End Property
// Public Property UsaForzaJpg() As Boolean
// Get
// Return _UsaForzaJpg
// End Get
// Set(ByVal value As Boolean)
// _UsaForzaJpg = value
// End Set
// End Property
// Public Property LarghezzaSmall() As Integer
// Get
// Return _LarghezzaSmall
// End Get
// Set(ByVal value As Integer)
// _LarghezzaSmall = value
// End Set
// End Property
// Public Property AltezzaSmall() As Integer
// Get
// Return _AltezzaSmall
// End Get
// Set(ByVal value As Integer)
// _AltezzaSmall = value
// End Set
// End Property
// Public Property CreaMiniature() As Boolean
// Get
// Return _CreaMiniature
// End Get
// Set(ByVal value As Boolean)
// _CreaMiniature = value
// End Set
// End Property
// Public Property AggiungiScritteMiniature() As Boolean
// Get
// Return _AggiungiScritteMiniature
// End Get
// Set(ByVal value As Boolean)
// _AggiungiScritteMiniature = value
// End Set
// End Property
// Public Property Suffisso() As String
// Get
// Return _Suffisso
// End Get
// Set(ByVal value As String)
// _Suffisso = value
// End Set
// End Property
// Public Property Codice() As String
// Get
// Return _Codice
// End Get
// Set(ByVal value As String)
// _Codice = value
// End Set
// End Property
// Public Property Trasparenza() As Integer
// Get
// Return _Trasparenza
// End Get
// Set(ByVal value As Integer)
// _Trasparenza = value
// End Set
// End Property
// Public Property IlFont() As String
// Get
// Return _IlFont
// End Get
// Set(ByVal value As String)
// _IlFont = value
// End Set
// End Property
// Public Property Grassetto() As Boolean
// Get
// Return _Grassetto
// End Get
// Set(ByVal value As Boolean)
// _Grassetto = value
// End Set
// End Property
// Public Property Posizione() As String
// Get
// Return _Posizione
// End Get
// Set(ByVal value As String)
// _Posizione = value
// End Set
// End Property
// Public Property Allineamento() As String
// Get
// Return _Allineamento
// End Get
// Set(ByVal value As String)
// _Allineamento = value
// End Set
// End Property
// Public Property Margine() As Integer
// Get
// Return _Margine
// End Get
// Set(ByVal value As Integer)
// _Margine = value
// End Set
// End Property
// Public Property LogoAltezza() As Integer
// Get
// Return _LogoAltezza
// End Get
// Set(ByVal value As Integer)
// _LogoAltezza = value
// End Set
// End Property
// Public Property LogoLarghezza() As Integer
// Get
// Return _LogoLarghezza
// End Get
// Set(ByVal value As Integer)
// _LogoLarghezza = value
// End Set
// End Property
// Public Property fontColoreRGB() As Color
// Get
// Return _fontColoreRGB
// End Get
// Set(ByVal value As Color)
// _fontColoreRGB = value
// End Set
// End Property
// Public Property LogoAggiungi() As Boolean
// Get
// Return _LogoAggiungi
// End Get
// Set(ByVal value As Boolean)
// _LogoAggiungi = value
// End Set
// End Property
// Public Property LogoNomeFile() As String
// Get
// Return _LogoNomeFile
// End Get
// Set(ByVal value As String)
// _LogoNomeFile = value
// End Set
// End Property
// Public Property LogoTrasparenza() As String
// Get
// Return _LogoTrasparenza
// End Get
// Set(ByVal value As String)
// _LogoTrasparenza = value
// End Set
// End Property
// Public Property LogoMargine() As String
// Get
// Return _LogoMargine
// End Get
// Set(ByVal value As String)
// _LogoMargine = value
// End Set
// End Property
// Public Property LogoPosizioneH() As String
// Get
// Return _LogoPosizioneH
// End Get
// Set(ByVal value As String)
// _LogoPosizioneH = value
// End Set
// End Property
// Public Property LogoPosizioneV() As String
// Get
// Return _LogoPosizioneV
// End Get
// Set(ByVal value As String)
// _LogoPosizioneV = value
// End Set
// End Property
// Public Property FotoGrandeDimOrigina() As Boolean
// Get
// Return _FotoGrandeDimOrigina
// End Get
// Set(ByVal value As Boolean)
// _FotoGrandeDimOrigina = value
// End Set
// End Property
// Public Property AltezzaBig() As Integer
// Get
// Return _AltezzaBig
// End Get
// Set(ByVal value As Integer)
// _AltezzaBig = value
// End Set
// End Property
// Public Property LarghezzaBig() As Integer
// Get
// Return _LarghezzaBig
// End Get
// Set(ByVal value As Integer)
// _LarghezzaBig = value
// End Set
// End Property
// Public Property DestDir() As DirectoryInfo
// Get
// Return _DestDir
// End Get
// Set(ByVal value As DirectoryInfo)
// _DestDir = value
// End Set
// End Property
// Public Property DimVert() As Integer
// Get
// Return _DimVert
// End Get
// Set(ByVal value As Integer)
// _DimVert = value
// End Set
// End Property
// Public Property MargVert() As Integer
// Get
// Return _MargVert
// End Get
// Set(ByVal value As Integer)
// _MargVert = value
// End Set
// End Property
// Public Property TestoMin() As Boolean
// Get
// Return _TestoMin
// End Get
// Set(ByVal value As Boolean)
// _TestoMin = value
// End Set
// End Property
// Public Property DimMin() As Integer
// Get
// Return _DimMin
// End Get
// Set(ByVal value As Integer)
// _DimMin = value
// End Set
// End Property
// Public Property SecretDefault() As Boolean
// Get
// Return _SecretDefault
// End Get
// Set(ByVal value As Boolean)
// _SecretDefault = value
// End Set
// End Property
// Public Property SecretBig() As Boolean
// Get
// Return _SecretBig
// End Get
// Set(ByVal value As Boolean)
// _SecretBig = value
// End Set
// End Property
// Public Property SecretSmall() As Boolean
// Get
// Return _SecretSmall
// End Get
// Set(ByVal value As Boolean)
// _SecretSmall = value
// End Set
// End Property
// Public Property SecretPathSmall() As String
// Get
// Return _SecretPathSmall
// End Get
// Set(ByVal value As String)
// _SecretPathSmall = value
// End Set
// End Property
// Public Property SecretPathBig() As String
// Get
// Return _SecretPathBig
// End Get
// Set(ByVal value As String)
// _SecretPathBig = value
// End Set
// End Property
// Public Property AggTempoGaraMin() As Boolean
// Get
// Return _AggTempoGaraMin
// End Get
// Set(ByVal value As Boolean)
// _AggTempoGaraMin = value
// End Set
// End Property
// Public Property AggNumTempMin() As Boolean
// Get
// Return _AggNumTempMin
// End Get
// Set(ByVal value As Boolean)
// _AggNumTempMin = value
// End Set
// End Property
// Public Property jpegQuality() As Long
// Get
// Return _jpegQuality
// End Get
// Set(ByVal value As Long)
// _jpegQuality = value
// End Set
// End Property
// Public Property jpegQualityMin() As Long
// Get
// Return _jpegQualityMin
// End Get
// Set(ByVal value As Long)
// _jpegQualityMin = value
// End Set
// End Property
// End Module

View file

@ -0,0 +1,604 @@
Imports System.IO
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
'Module PicSettings
' Private _DirectorySorgente As String
' Private _DirectoryDestinazione As String
' Private _DimVert As Integer
' Private _MargVert As Integer
' Private _DimStandard As Integer
' Private _DimStandardMiniatura As Integer
' Private _NomeData As Boolean
' Private _TestoNome As Boolean
' Private _UsaOrarioMiniatura As Boolean
' Private _UsaOrarioTestoApplicare As Boolean
' Private _UsaTempoGaraTestoApplicare As Boolean
' Private _TestoFirmaStart As String
' Private _TestoFirmaStartV As String
' Private _DataPartenza As DateTime
' Private _TestoOrario As String
' Private _UsaRotazioneAutomatica As Boolean
' Private _UsaForzaJpg As Boolean
' Private _LarghezzaSmall As Integer
' Private _AltezzaSmall As Integer
' Private _CreaMiniature As Boolean
' Private _AggiungiScritteMiniature As Boolean
' Private _AggTempoGaraMin As Boolean
' Private _AggNumTempMin As Boolean
' Private _Suffisso As String
' Private _Codice As String
' Private _Trasparenza As Integer
' Private _IlFont As String
' Private _Grassetto As Boolean
' Private _Posizione As String
' Private _Allineamento As String
' Private _Margine As Integer
' Private _LogoAltezza As Integer
' Private _LogoLarghezza As Integer
' Private _fontColoreRGB As Color
' Private _LogoAggiungi As Boolean
' Private _LogoNomeFile As String
' Private _LogoTrasparenza As String
' Private _LogoMargine As String
' Private _LogoPosizioneH As String
' Private _LogoPosizioneV As String
' Private _FotoGrandeDimOrigina As Boolean
' Private _AltezzaBig As Integer
' Private _LarghezzaBig As Integer
' Private _DestDir As DirectoryInfo
' Private _DimMin As Integer
' Private _TestoMin As Boolean
' Private _SecretDefault As Boolean
' Private _SecretBig As Boolean
' Private _SecretSmall As Boolean
' Private _SecretPathSmall As String
' Private _SecretPathBig As String
' Private _jpegQuality As Long
' Private _jpegQualityMin As Long
' Private FotoRuotaADestra As Boolean = False
' Private FotoRuotaASinistra As Boolean = False
' Private TempMinText As String = ""
' Private _mainForm As MainForm
' 'Private progressBar As System.Windows.Forms.ProgressBar
' Public Property mainForm() As MainForm
' Get
' Return _mainForm
' End Get
' Set(ByVal value As MainForm)
' _mainForm = value
' End Set
' End Property
' Public Property DirectorySorgente() As String
' Get
' Return _DirectorySorgente
' End Get
' Set(ByVal value As String)
' _DirectorySorgente = value
' End Set
' End Property
' Public Property DirectoryDestinazione() As String
' Get
' Return _DirectoryDestinazione
' End Get
' Set(ByVal value As String)
' _DirectoryDestinazione = value
' End Set
' End Property
' Public Property TestoFirmaStart() As String
' Get
' Return _TestoFirmaStart
' End Get
' Set(ByVal value As String)
' _TestoFirmaStart = value
' End Set
' End Property
' Public Property TestoFirmaStartV() As String
' Get
' Return _TestoFirmaStartV
' End Get
' Set(ByVal value As String)
' _TestoFirmaStartV = value
' End Set
' End Property
' Public Property DataPartenza() As DateTime
' Get
' Return _DataPartenza
' End Get
' Set(ByVal value As DateTime)
' _DataPartenza = value
' End Set
' End Property
' Public Property TestoOrario() As String
' Get
' Return _TestoOrario
' End Get
' Set(ByVal value As String)
' _TestoOrario = value
' End Set
' End Property
' Public Property DimStandard() As Integer
' Get
' Return _DimStandard
' End Get
' Set(ByVal value As Integer)
' _DimStandard = value
' End Set
' End Property
' Public Property DimStandardMiniatura() As Integer
' Get
' Return _DimStandardMiniatura
' End Get
' Set(ByVal value As Integer)
' _DimStandardMiniatura = value
' End Set
' End Property
' Public Property NomeData() As Boolean
' Get
' Return _NomeData
' End Get
' Set(ByVal value As Boolean)
' _NomeData = value
' End Set
' End Property
' Public Property TestoNome() As Boolean
' Get
' Return _TestoNome
' End Get
' Set(ByVal value As Boolean)
' _TestoNome = value
' End Set
' End Property
' Public Property UsaOrarioMiniatura() As Boolean
' Get
' Return _UsaOrarioMiniatura
' End Get
' Set(ByVal value As Boolean)
' _UsaOrarioMiniatura = value
' End Set
' End Property
' Public Property UsaOrarioTestoApplicare() As Boolean
' Get
' Return _UsaOrarioTestoApplicare
' End Get
' Set(ByVal value As Boolean)
' _UsaOrarioTestoApplicare = value
' End Set
' End Property
' Public Property UsaTempoGaraTestoApplicare() As Boolean
' Get
' Return _UsaTempoGaraTestoApplicare
' End Get
' Set(ByVal value As Boolean)
' _UsaTempoGaraTestoApplicare = value
' End Set
' End Property
' Public Property UsaRotazioneAutomatica() As Boolean
' Get
' Return _UsaRotazioneAutomatica
' End Get
' Set(ByVal value As Boolean)
' _UsaRotazioneAutomatica = value
' End Set
' End Property
' Public Property UsaForzaJpg() As Boolean
' Get
' Return _UsaForzaJpg
' End Get
' Set(ByVal value As Boolean)
' _UsaForzaJpg = value
' End Set
' End Property
' Public Property LarghezzaSmall() As Integer
' Get
' Return _LarghezzaSmall
' End Get
' Set(ByVal value As Integer)
' _LarghezzaSmall = value
' End Set
' End Property
' Public Property AltezzaSmall() As Integer
' Get
' Return _AltezzaSmall
' End Get
' Set(ByVal value As Integer)
' _AltezzaSmall = value
' End Set
' End Property
' Public Property CreaMiniature() As Boolean
' Get
' Return _CreaMiniature
' End Get
' Set(ByVal value As Boolean)
' _CreaMiniature = value
' End Set
' End Property
' Public Property AggiungiScritteMiniature() As Boolean
' Get
' Return _AggiungiScritteMiniature
' End Get
' Set(ByVal value As Boolean)
' _AggiungiScritteMiniature = value
' End Set
' End Property
' Public Property Suffisso() As String
' Get
' Return _Suffisso
' End Get
' Set(ByVal value As String)
' _Suffisso = value
' End Set
' End Property
' Public Property Codice() As String
' Get
' Return _Codice
' End Get
' Set(ByVal value As String)
' _Codice = value
' End Set
' End Property
' Public Property Trasparenza() As Integer
' Get
' Return _Trasparenza
' End Get
' Set(ByVal value As Integer)
' _Trasparenza = value
' End Set
' End Property
' Public Property IlFont() As String
' Get
' Return _IlFont
' End Get
' Set(ByVal value As String)
' _IlFont = value
' End Set
' End Property
' Public Property Grassetto() As Boolean
' Get
' Return _Grassetto
' End Get
' Set(ByVal value As Boolean)
' _Grassetto = value
' End Set
' End Property
' Public Property Posizione() As String
' Get
' Return _Posizione
' End Get
' Set(ByVal value As String)
' _Posizione = value
' End Set
' End Property
' Public Property Allineamento() As String
' Get
' Return _Allineamento
' End Get
' Set(ByVal value As String)
' _Allineamento = value
' End Set
' End Property
' Public Property Margine() As Integer
' Get
' Return _Margine
' End Get
' Set(ByVal value As Integer)
' _Margine = value
' End Set
' End Property
' Public Property LogoAltezza() As Integer
' Get
' Return _LogoAltezza
' End Get
' Set(ByVal value As Integer)
' _LogoAltezza = value
' End Set
' End Property
' Public Property LogoLarghezza() As Integer
' Get
' Return _LogoLarghezza
' End Get
' Set(ByVal value As Integer)
' _LogoLarghezza = value
' End Set
' End Property
' Public Property fontColoreRGB() As Color
' Get
' Return _fontColoreRGB
' End Get
' Set(ByVal value As Color)
' _fontColoreRGB = value
' End Set
' End Property
' Public Property LogoAggiungi() As Boolean
' Get
' Return _LogoAggiungi
' End Get
' Set(ByVal value As Boolean)
' _LogoAggiungi = value
' End Set
' End Property
' Public Property LogoNomeFile() As String
' Get
' Return _LogoNomeFile
' End Get
' Set(ByVal value As String)
' _LogoNomeFile = value
' End Set
' End Property
' Public Property LogoTrasparenza() As String
' Get
' Return _LogoTrasparenza
' End Get
' Set(ByVal value As String)
' _LogoTrasparenza = value
' End Set
' End Property
' Public Property LogoMargine() As String
' Get
' Return _LogoMargine
' End Get
' Set(ByVal value As String)
' _LogoMargine = value
' End Set
' End Property
' Public Property LogoPosizioneH() As String
' Get
' Return _LogoPosizioneH
' End Get
' Set(ByVal value As String)
' _LogoPosizioneH = value
' End Set
' End Property
' Public Property LogoPosizioneV() As String
' Get
' Return _LogoPosizioneV
' End Get
' Set(ByVal value As String)
' _LogoPosizioneV = value
' End Set
' End Property
' Public Property FotoGrandeDimOrigina() As Boolean
' Get
' Return _FotoGrandeDimOrigina
' End Get
' Set(ByVal value As Boolean)
' _FotoGrandeDimOrigina = value
' End Set
' End Property
' Public Property AltezzaBig() As Integer
' Get
' Return _AltezzaBig
' End Get
' Set(ByVal value As Integer)
' _AltezzaBig = value
' End Set
' End Property
' Public Property LarghezzaBig() As Integer
' Get
' Return _LarghezzaBig
' End Get
' Set(ByVal value As Integer)
' _LarghezzaBig = value
' End Set
' End Property
' Public Property DestDir() As DirectoryInfo
' Get
' Return _DestDir
' End Get
' Set(ByVal value As DirectoryInfo)
' _DestDir = value
' End Set
' End Property
' Public Property DimVert() As Integer
' Get
' Return _DimVert
' End Get
' Set(ByVal value As Integer)
' _DimVert = value
' End Set
' End Property
' Public Property MargVert() As Integer
' Get
' Return _MargVert
' End Get
' Set(ByVal value As Integer)
' _MargVert = value
' End Set
' End Property
' Public Property TestoMin() As Boolean
' Get
' Return _TestoMin
' End Get
' Set(ByVal value As Boolean)
' _TestoMin = value
' End Set
' End Property
' Public Property DimMin() As Integer
' Get
' Return _DimMin
' End Get
' Set(ByVal value As Integer)
' _DimMin = value
' End Set
' End Property
' Public Property SecretDefault() As Boolean
' Get
' Return _SecretDefault
' End Get
' Set(ByVal value As Boolean)
' _SecretDefault = value
' End Set
' End Property
' Public Property SecretBig() As Boolean
' Get
' Return _SecretBig
' End Get
' Set(ByVal value As Boolean)
' _SecretBig = value
' End Set
' End Property
' Public Property SecretSmall() As Boolean
' Get
' Return _SecretSmall
' End Get
' Set(ByVal value As Boolean)
' _SecretSmall = value
' End Set
' End Property
' Public Property SecretPathSmall() As String
' Get
' Return _SecretPathSmall
' End Get
' Set(ByVal value As String)
' _SecretPathSmall = value
' End Set
' End Property
' Public Property SecretPathBig() As String
' Get
' Return _SecretPathBig
' End Get
' Set(ByVal value As String)
' _SecretPathBig = value
' End Set
' End Property
' Public Property AggTempoGaraMin() As Boolean
' Get
' Return _AggTempoGaraMin
' End Get
' Set(ByVal value As Boolean)
' _AggTempoGaraMin = value
' End Set
' End Property
' Public Property AggNumTempMin() As Boolean
' Get
' Return _AggNumTempMin
' End Get
' Set(ByVal value As Boolean)
' _AggNumTempMin = value
' End Set
' End Property
' Public Property jpegQuality() As Long
' Get
' Return _jpegQuality
' End Get
' Set(ByVal value As Long)
' _jpegQuality = value
' End Set
' End Property
' Public Property jpegQualityMin() As Long
' Get
' Return _jpegQualityMin
' End Get
' Set(ByVal value As Long)
' _jpegQualityMin = value
' End Set
' End Property
'End Module

View file

@ -0,0 +1,273 @@
using System;
using System.Collections;
using System.Threading;
namespace ImageCatalog
{
public delegate void ThreadErrorHandlerDelegate(ThreadPoolWorkItem oWorkItem, Exception oError);
public class ThreadPoolWorkItem
{
public bool m_bStoreOutput = false;
public string m_sName = "";
public Delegate m_pMethod = null;
public object[] m_pInput = null;
public object m_oOutput = null;
public Exception m_oException = null;
public ThreadPoolWorkItem()
{
}
public ThreadPoolWorkItem(string sName, Delegate pMethod, object[] pInput, bool bStoreOutput)
{
m_sName = sName;
m_pMethod = pMethod;
m_pInput = pInput;
m_bStoreOutput = bStoreOutput;
}
}
public class XYThreadPool
{
public XYThreadPool()
{
m_delegateThreadErrorHandler = new ThreadErrorHandlerDelegate(OnThreadError);
}
private Hashtable m_htThreads = new Hashtable(256);
private int m_nMinThreadCount = 5;
private int m_nMaxThreadCount = 10;
private int m_nShutdownPause = 200;
private int m_nServerPause = 25;
private bool m_bContinue = false;
private Exception m_oException = null;
private Queue m_qInput = new Queue(1024);
private Queue m_qOutput = new Queue(1024);
private Delegate m_delegateThreadErrorHandler;
private void ThreadProc()
{
while (m_bContinue)
{
object obj = null;
Monitor.Enter(this);
if (m_qInput.Count > 0)
obj = m_qInput.Dequeue();
Monitor.Exit(this);
if (obj is null)
{
bool bQuit = false;
Monitor.Enter(this);
if (m_htThreads.Count > m_nMinThreadCount)
{
m_htThreads.Remove(Thread.CurrentThread.Name);
bQuit = true;
}
Monitor.Exit(this);
if (bQuit)
return;
Thread.Sleep(10 * m_nServerPause);
}
else
{
ThreadPoolWorkItem oWorkItem = (ThreadPoolWorkItem)obj;
// oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput)
try
{
oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput);
}
catch (Exception oBug)
{
if (m_delegateThreadErrorHandler is object)
{
try
{
var pInput = new object[] { oWorkItem, oBug };
m_delegateThreadErrorHandler.DynamicInvoke(pInput);
}
catch
{
}
}
}
if (oWorkItem.m_bStoreOutput)
{
Monitor.Enter(m_qOutput);
m_qOutput.Enqueue(oWorkItem);
Monitor.Exit(m_qOutput);
}
Thread.Sleep(m_nServerPause);
}
}
}
private void OnThreadError(ThreadPoolWorkItem oWorkItem, Exception oError)
{
if (oWorkItem is null)
{
m_oException = oError;
}
else
{
oWorkItem.m_oException = oError;
}
}
public void SetThreadErrorHandler(ThreadErrorHandlerDelegate pMethod)
{
Monitor.Enter(this);
m_delegateThreadErrorHandler = pMethod;
Monitor.Exit(this);
}
public void SetServerPause(int nMilliseconds)
{
Monitor.Enter(this);
if (nMilliseconds > 9 & nMilliseconds < 101)
m_nServerPause = nMilliseconds;
Monitor.Exit(this);
}
public void SetShutdownPause(int nMilliseconds)
{
Monitor.Enter(this);
m_nShutdownPause = nMilliseconds;
Monitor.Exit(this);
}
public Exception GetException()
{
return m_oException;
}
public void InsertWorkItem(ThreadPoolWorkItem oWorkItem)
{
try
{
Monitor.Enter(this);
m_qInput.Enqueue(oWorkItem);
if (m_bContinue && m_qInput.Count > m_htThreads.Count && m_htThreads.Count < m_nMaxThreadCount)
{
var th = new Thread(ThreadProc);
th.Name = Guid.NewGuid().ToString();
m_htThreads.Add(th.Name, th);
th.Start();
}
}
catch (Exception oBug)
{
m_oException = oBug;
}
finally
{
Monitor.Exit(this);
}
}
public void InsertWorkItem(string sName, Delegate pMethod, object[] pArgs, bool bStoreOutput)
{
InsertWorkItem(new ThreadPoolWorkItem(sName, pMethod, pArgs, bStoreOutput));
}
public ThreadPoolWorkItem ExtractWorkItem()
{
object oWorkItem = null;
Monitor.Enter(m_qOutput);
if (m_qOutput.Count > 0)
oWorkItem = m_qOutput.Dequeue();
Monitor.Exit(m_qOutput);
if (oWorkItem is null)
return null;
return (ThreadPoolWorkItem)oWorkItem;
}
public bool StartThreadPool(int nMinThreadCount = 5, int nMaxThreadCount = 10)
{
try
{
Monitor.Enter(this);
if (m_bContinue == false)
{
m_bContinue = true;
if (nMinThreadCount > 0)
{
m_nMinThreadCount = nMinThreadCount;
}
if (nMaxThreadCount > m_nMinThreadCount)
{
m_nMaxThreadCount = nMaxThreadCount;
}
else
{
m_nMaxThreadCount = 2 * m_nMinThreadCount;
}
int i;
var loopTo = m_nMinThreadCount;
for (i = 1; i <= loopTo; i++)
{
var th = new Thread(ThreadProc);
th.Name = Guid.NewGuid().ToString();
m_htThreads.Add(th.Name, th);
th.Start();
}
}
return true;
}
catch (Exception oBug)
{
m_bContinue = false;
m_oException = oBug;
return false;
}
finally
{
Monitor.Exit(this);
}
}
public void StopThreadPool()
{
Monitor.Enter(this);
m_bContinue = false;
Thread.Sleep(Math.Max(200, m_nShutdownPause));
if (m_nShutdownPause > 0)
{
var dict = m_htThreads.GetEnumerator();
while (dict.MoveNext())
{
Thread th = (Thread)dict.Value;
if (th.IsAlive)
{
try
{
th.Abort();
}
catch
{
}
}
}
}
m_htThreads.Clear();
m_qInput.Clear();
// m_qOutput.Clear()
Monitor.Exit(this);
}
public int GetThreadCount()
{
Monitor.Enter(this);
int nCount = m_htThreads.Count;
Monitor.Exit(this);
return nCount;
}
}
}

View file

@ -0,0 +1,185 @@
Option Explicit On
Option Strict Off
Imports System.Threading
Imports System.Collections
Public Delegate Sub ThreadErrorHandlerDelegate(ByVal oWorkItem As ThreadPoolWorkItem, ByVal oError As Exception)
Public Class ThreadPoolWorkItem
Public m_bStoreOutput As Boolean = False
Public m_sName As String = ""
Public m_pMethod As [Delegate] = Nothing
Public m_pInput As Object() = Nothing
Public m_oOutput As Object = Nothing
Public m_oException As Exception = Nothing
Public Sub New()
End Sub
Public Sub New(ByVal sName As String, ByVal pMethod As [Delegate], ByVal pInput As Object(), ByVal bStoreOutput As Boolean)
m_sName = sName
m_pMethod = pMethod
m_pInput = pInput
m_bStoreOutput = bStoreOutput
End Sub
End Class
Public Class XYThreadPool
Private m_htThreads As Hashtable = New Hashtable(256)
Private m_nMinThreadCount As Integer = 5
Private m_nMaxThreadCount As Integer = 10
Private m_nShutdownPause As Integer = 200
Private m_nServerPause As Integer = 25
Private m_bContinue As Boolean = False
Private m_oException As Exception = Nothing
Private m_qInput As Queue = New Queue(1024)
Private m_qOutput As Queue = New Queue(1024)
Private m_delegateThreadErrorHandler As [Delegate] = New ThreadErrorHandlerDelegate(AddressOf OnThreadError)
Private Sub ThreadProc()
While m_bContinue
Dim obj As Object = Nothing
Monitor.Enter(Me)
If m_qInput.Count > 0 Then obj = m_qInput.Dequeue()
Monitor.Exit(Me)
If obj Is Nothing Then
Dim bQuit As Boolean = False
Monitor.Enter(Me)
If m_htThreads.Count > m_nMinThreadCount Then
m_htThreads.Remove(Thread.CurrentThread.Name)
bQuit = True
End If
Monitor.Exit(Me)
If bQuit Then Return
Thread.Sleep(10 * m_nServerPause)
Else
Dim oWorkItem As ThreadPoolWorkItem = CType(obj, ThreadPoolWorkItem)
'oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput)
Try
oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput)
Catch oBug As Exception
If Not m_delegateThreadErrorHandler Is Nothing Then
Try
Dim pInput As Object() = {oWorkItem, oBug}
m_delegateThreadErrorHandler.DynamicInvoke(pInput)
Catch
End Try
End If
End Try
If oWorkItem.m_bStoreOutput Then
Monitor.Enter(m_qOutput)
m_qOutput.Enqueue(oWorkItem)
Monitor.Exit(m_qOutput)
End If
Thread.Sleep(m_nServerPause)
End If
End While
End Sub
Private Sub OnThreadError(ByVal oWorkItem As ThreadPoolWorkItem, ByVal oError As Exception)
If oWorkItem Is Nothing Then
m_oException = oError
Else
oWorkItem.m_oException = oError
End If
End Sub
Public Sub SetThreadErrorHandler(ByVal pMethod As ThreadErrorHandlerDelegate)
Monitor.Enter(Me)
m_delegateThreadErrorHandler = pMethod
Monitor.Exit(Me)
End Sub
Public Sub SetServerPause(ByVal nMilliseconds As Integer)
Monitor.Enter(Me)
If nMilliseconds > 9 And nMilliseconds < 101 Then m_nServerPause = nMilliseconds
Monitor.Exit(Me)
End Sub
Public Sub SetShutdownPause(ByVal nMilliseconds As Integer)
Monitor.Enter(Me)
m_nShutdownPause = nMilliseconds
Monitor.Exit(Me)
End Sub
Public Function GetException() As Exception
Return m_oException
End Function
Public Sub InsertWorkItem(ByVal oWorkItem As ThreadPoolWorkItem)
Try
Monitor.Enter(Me)
m_qInput.Enqueue(oWorkItem)
If m_bContinue AndAlso m_qInput.Count > m_htThreads.Count AndAlso m_htThreads.Count < m_nMaxThreadCount Then
Dim th As Thread = New Thread(AddressOf ThreadProc)
th.Name = Guid.NewGuid.ToString()
m_htThreads.Add(th.Name, th)
th.Start()
End If
Catch oBug As Exception
m_oException = oBug
Finally
Monitor.Exit(Me)
End Try
End Sub
Public Sub InsertWorkItem(ByVal sName As String, ByVal pMethod As [Delegate], ByVal pArgs As Object(), ByVal bStoreOutput As Boolean)
InsertWorkItem(New ThreadPoolWorkItem(sName, pMethod, pArgs, bStoreOutput))
End Sub
Public Function ExtractWorkItem() As ThreadPoolWorkItem
Dim oWorkItem As Object = Nothing
Monitor.Enter(m_qOutput)
If m_qOutput.Count > 0 Then oWorkItem = m_qOutput.Dequeue()
Monitor.Exit(m_qOutput)
If oWorkItem Is Nothing Then Return Nothing
Return CType(oWorkItem, ThreadPoolWorkItem)
End Function
Public Function StartThreadPool(Optional ByVal nMinThreadCount As Integer = 5, Optional ByVal nMaxThreadCount As Integer = 10) As Boolean
Try
Monitor.Enter(Me)
If m_bContinue = False Then
m_bContinue = True
If nMinThreadCount > 0 Then
m_nMinThreadCount = nMinThreadCount
End If
If nMaxThreadCount > m_nMinThreadCount Then
m_nMaxThreadCount = nMaxThreadCount
Else
m_nMaxThreadCount = 2 * m_nMinThreadCount
End If
Dim i As Integer
For i = 1 To m_nMinThreadCount
Dim th As Thread = New Thread(AddressOf ThreadProc)
th.Name = Guid.NewGuid.ToString()
m_htThreads.Add(th.Name, th)
th.Start()
Next i
End If
Return True
Catch oBug As Exception
m_bContinue = False
m_oException = oBug
Return False
Finally
Monitor.Exit(Me)
End Try
End Function
Public Sub StopThreadPool()
Monitor.Enter(Me)
m_bContinue = False
Thread.Sleep(Math.Max(200, m_nShutdownPause))
If (m_nShutdownPause > 0) Then
Dim dict As IDictionaryEnumerator = m_htThreads.GetEnumerator()
While dict.MoveNext()
Dim th As Thread = CType(dict.Value(), Thread)
If th.IsAlive Then
Try
th.Abort()
Catch
End Try
End If
End While
End If
m_htThreads.Clear()
m_qInput.Clear()
' m_qOutput.Clear()
Monitor.Exit(Me)
End Sub
Public Function GetThreadCount() As Integer
Monitor.Enter(Me)
Dim nCount As Integer = m_htThreads.Count
Monitor.Exit(Me)
Return nCount
End Function
End Class

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.diagnostics>
<sources>
<!-- Questa sezione definisce la configurazione di registrazione per My.Application.Log -->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante -->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
<!-- Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante e sostituire APPLICATION_NAME con il nome dell'applicazione -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View file

@ -0,0 +1 @@
Backup created at 1615021897 (06/03/2021 09:11:37 +00:00)

View file

@ -1,14 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0-windows</TargetFramework>
<ProjectType>Local</ProjectType>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{3F1E23DB-435E-0590-1EF5-735E898DBA3C}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>ImageCatalog</AssemblyName>
@ -25,23 +18,13 @@
<OptionStrict>On</OptionStrict>
<RootNamespace>ImageCatalog</RootNamespace>
<StartupObject>ImageCatalog.My.MyApplication</StartupObject>
<FileUpgradeFlags>
</FileUpgradeFlags>
<MyType>WindowsForms</MyType>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
<LangVersion>latest</LangVersion>
<PublishUrl>\\casa-storage\Foto\catolg\parallel2.0\</PublishUrl>
@ -61,6 +44,9 @@
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\</OutputPath>
@ -72,17 +58,11 @@
</DefineConstants>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\</OutputPath>
@ -94,20 +74,14 @@
</DefineConstants>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>none</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Debug\</OutputPath>
@ -115,25 +89,18 @@
<DocumentationFile>bin\x64\Debug\ImageCatalog.xml</DocumentationFile>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>bin\x64\Release\ImageCatalog.xml</DocumentationFile>
<Optimize>true</Optimize>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Debug\</OutputPath>
@ -141,37 +108,26 @@
<DocumentationFile>bin\x86\Debug\ImageCatalog.xml</DocumentationFile>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<DocumentationFile>bin\x86\Release\ImageCatalog.xml</DocumentationFile>
<Optimize>true</Optimize>
<WarningLevel>1</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>6BFA075A69837045D051A6F7B6CAD4961D53335E</ManifestCertificateThumbprint>
@ -186,135 +142,38 @@
<SignManifests>true</SignManifests>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Ben.Demystifier, Version=0.3.0.0, Culture=neutral, PublicKeyToken=a6d206e05440431a, processorArchitecture=MSIL">
<HintPath>..\packages\Ben.Demystifier.0.3.0\lib\net45\Ben.Demystifier.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0" />
<Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack.ShellExtensions, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll</HintPath>
</Reference>
<Reference Include="System">
<Reference Update="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core">
<Reference Update="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Private>True</Private>
</Reference>
<Reference Include="System.Data">
<Reference Update="System.Data">
<Name>System.Data</Name>
<Private>True</Private>
</Reference>
<Reference Include="System.Drawing">
<Reference Update="System.Drawing">
<Name>System.Drawing</Name>
<Private>True</Private>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms">
<Name>System.Windows.Forms</Name>
</Reference>
<Reference Include="System.Xml">
<Reference Update="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Drawing" />
<Import Include="System.Linq" />
<Import Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="My Project\MyNamespace.Dynamic.Designer.cs" />
<Compile Include="My Project\MyNamespace.Static.1.Designer.cs" />
<Compile Include="AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="FileHelper.cs" />
<Compile Include="CreaImmagineSeparateMultiCore.cs" />
<Compile Include="CreaImmagineSeparateThread.cs" />
<Compile Include="ExifReader.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoadBuffer.cs" />
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module2.cs" />
<Compile Include="My Project\Application.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="PicSettings.cs" />
<Compile Include="XYThreadPool.cs" />
<Compile Include="Module1.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ParametriSetup.cs">
<SubType>Code</SubType>
</Compile>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<None Include="ImageCatalog 2_TemporaryKey.pfx" />
<None Include="My Project\Application.myapp">
<None Update="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.cs</LastGenOutput>
</None>
<None Include="app.config" />
<None Include="ClassDiagram1.cd" />
<None Include="My Project\app.manifest" />
<None Include="My Project\Settings.settings">
<CustomToolNamespace>ImageCatalog.My</CustomToolNamespace>
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
@ -352,20 +211,17 @@
<Folder Include="Sorgenti\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj">
<Project>{44465926-240d-473f-90b8-786ba4384406}</Project>
<Name>CatalogVbLib</Name>
</ProjectReference>
<ProjectReference Include="..\MaddoShared\MaddoShared.csproj">
<Project>{aebfe9e3-277c-4a7b-8448-145d1b11998b}</Project>
<Name>MaddoShared</Name>
</ProjectReference>
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj" />
<ProjectReference Include="..\MaddoShared\MaddoShared.csproj" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" />
<PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" />
<PackageReference Include="Microsoft.WindowsAPICodePack-Core" Version="1.1.0.2" />
<PackageReference Include="Microsoft.WindowsAPICodePack-Shell" Version="1.1.0.0" />
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.2.212405">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup />
</Project>

View file

@ -1,40 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.diagnostics>
<sources>
<!-- Questa sezione definisce la configurazione di registrazione per My.Application.Log -->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante -->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
<!-- Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante e sostituire APPLICATION_NAME con il nome dell'applicazione -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
<!-- system.diagnostics section is not supported on .NET 5 (see https://github.com/dotnet/runtime/issues/23937)-->
<!--<system.diagnostics>
<sources>
<!- - Questa sezione definisce la configurazione di registrazione per My.Application.Log - ->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog" />
<!- - Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante - ->
<!- -<add name="EventLog"/>- ->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter" />
<!- - Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante e sostituire APPLICATION_NAME con il nome dell'applicazione - ->
<!- -<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> - ->
</sharedListeners>
</system.diagnostics>-->
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

135
log.txt Normal file
View file

@ -0,0 +1,135 @@
2021-03-06 10:04:44.068 +01:00 [INF] MSBuild registered from C:\Program Files\dotnet\sdk\5.0.200\
2021-03-06 10:04:44.120 +01:00 [INF] Registered 1 extensions:
Default extension
2021-03-06 10:04:50.740 +01:00 [INF] Initializing upgrade step Select an entrypoint
2021-03-06 10:05:37.931 +01:00 [INF] Applying upgrade step Select an entrypoint
2021-03-06 10:05:56.095 +01:00 [INF] Upgrade step Select an entrypoint applied successfully
2021-03-06 10:05:59.578 +01:00 [INF] Initializing upgrade step Select project to upgrade
2021-03-06 10:06:53.914 +01:00 [INF] Applying upgrade step Select project to upgrade
2021-03-06 10:07:00.961 +01:00 [INF] Upgrade step Select project to upgrade applied successfully
2021-03-06 10:07:03.582 +01:00 [INF] Initializing upgrade step Back up project
2021-03-06 10:07:22.200 +01:00 [INF] Applying upgrade step Back up project
2021-03-06 10:07:26.114 +01:00 [INF] Backing up H:\dev\vs\Catalog\MaddoShared to H:\dev\vs\Catalog\MaddoShared.backup
2021-03-06 10:07:31.549 +01:00 [INF] Project backed up to H:\dev\vs\Catalog\MaddoShared.backup
2021-03-06 10:07:31.550 +01:00 [INF] Upgrade step Back up project applied successfully
2021-03-06 10:07:40.695 +01:00 [INF] Initializing upgrade step Convert project file to SDK style
2021-03-06 10:07:40.696 +01:00 [FTL] Try-Convert not found. This tool depends on the Try-Convert CLI tool. Please ensure that Try-Convert is installed and that the correct location for the tool is specified (in configuration, for example). https://github.com/dotnet/try-convert
2021-03-06 10:09:23.887 +01:00 [INF] Applying upgrade step Convert project file to SDK style
2021-03-06 10:09:23.889 +01:00 [INF] Converting project file format with try-convert
2021-03-06 10:09:27.336 +01:00 [INF] [try-convert] Conversion complete!
2021-03-06 10:09:27.915 +01:00 [INF] Project file converted successfully! The project may require additional changes to build successfully against the new .NET target.
2021-03-06 10:09:30.087 +01:00 [INF] Upgrade step Convert project file to SDK style applied successfully
2021-03-06 10:09:36.050 +01:00 [INF] Initializing upgrade step Update TFM
2021-03-06 10:09:48.944 +01:00 [INF] Applying upgrade step Update TFM
2021-03-06 10:09:54.879 +01:00 [INF] Upgrade step Update TFM applied successfully
2021-03-06 10:10:10.865 +01:00 [INF] Initializing upgrade step Update NuGet packages
2021-03-06 10:10:12.295 +01:00 [INF] Marking package System.Reflection.Metadata for removal because it appears to be a transitive dependency
2021-03-06 10:10:13.789 +01:00 [INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.2.212405) needs added
2021-03-06 10:10:15.101 +01:00 [INF] Adding Microsoft.Windows.Compatibility 5.0.2
2021-03-06 10:10:15.104 +01:00 [INF] Packages to be removed:
System.Reflection.Metadata, Version=5.0.0
2021-03-06 10:10:15.105 +01:00 [INF] Packages to be addded:
Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.2.212405
Microsoft.Windows.Compatibility, Version=5.0.2
2021-03-06 10:10:18.926 +01:00 [INF] Applying upgrade step Update NuGet packages
2021-03-06 10:10:18.932 +01:00 [INF] Removing outdated package reference: System.Reflection.Metadata, Version=5.0.0
2021-03-06 10:10:18.935 +01:00 [INF] Adding package reference: Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.2.212405
2021-03-06 10:10:18.937 +01:00 [INF] Adding package reference: Microsoft.Windows.Compatibility, Version=5.0.2
2021-03-06 10:10:24.287 +01:00 [INF] Marking package System.Data.DataSetExtensions for removal because it appears to be a transitive dependency
2021-03-06 10:10:24.292 +01:00 [INF] Marking package System.Numerics.Vectors for removal because it appears to be a transitive dependency
2021-03-06 10:10:24.706 +01:00 [INF] Removing outdated package reference: System.Data.DataSetExtensions, Version=4.5.0
2021-03-06 10:10:24.707 +01:00 [INF] Removing outdated package reference: System.Numerics.Vectors, Version=4.5.0
2021-03-06 10:10:27.413 +01:00 [INF] Upgrade step Update NuGet packages applied successfully
2021-03-06 10:10:36.907 +01:00 [INF] Initializing upgrade step Add template files
2021-03-06 10:10:36.924 +01:00 [INF] 0 expected template items needed
2021-03-06 10:10:36.926 +01:00 [INF] Initializing upgrade step Upgrade app config files
2021-03-06 10:10:36.944 +01:00 [INF] Found 0 app settings for upgrade:
2021-03-06 10:10:36.950 +01:00 [INF] 0 web page namespace imports need upgraded:
2021-03-06 10:10:36.951 +01:00 [INF] Initializing upgrade step Update C# source
2021-03-06 10:10:38.659 +01:00 [INF] Initializing upgrade step Move to next project
2021-03-06 10:10:43.824 +01:00 [INF] Applying upgrade step Move to next project
2021-03-06 10:10:43.825 +01:00 [INF] Upgrade step Move to next project applied successfully
2021-03-06 10:11:07.545 +01:00 [INF] Initializing upgrade step Select project to upgrade
2021-03-06 10:11:10.510 +01:00 [INF] Applying upgrade step Select project to upgrade
2021-03-06 10:11:14.382 +01:00 [INF] Upgrade step Select project to upgrade applied successfully
2021-03-06 10:11:17.877 +01:00 [INF] Initializing upgrade step Back up project
2021-03-06 10:11:21.030 +01:00 [INF] Applying upgrade step Back up project
2021-03-06 10:11:22.810 +01:00 [INF] Backing up H:\dev\vs\Catalog\imagecatalog to H:\dev\vs\Catalog\imagecatalog.backup
2021-03-06 10:11:37.349 +01:00 [INF] Project backed up to H:\dev\vs\Catalog\imagecatalog.backup
2021-03-06 10:11:37.350 +01:00 [INF] Upgrade step Back up project applied successfully
2021-03-06 10:11:47.584 +01:00 [INF] Initializing upgrade step Convert project file to SDK style
2021-03-06 10:11:49.609 +01:00 [INF] Applying upgrade step Convert project file to SDK style
2021-03-06 10:11:49.610 +01:00 [INF] Converting project file format with try-convert
2021-03-06 10:11:52.238 +01:00 [INF] [try-convert] Conversion complete!
2021-03-06 10:11:52.666 +01:00 [INF] Project file converted successfully! The project may require additional changes to build successfully against the new .NET target.
2021-03-06 10:11:55.581 +01:00 [INF] Upgrade step Convert project file to SDK style applied successfully
2021-03-06 10:12:00.489 +01:00 [INF] Initializing upgrade step Update TFM
2021-03-06 10:12:03.093 +01:00 [INF] Applying upgrade step Update TFM
2021-03-06 10:12:06.038 +01:00 [INF] Upgrade step Update TFM applied successfully
2021-03-06 10:12:10.906 +01:00 [INF] Initializing upgrade step Update NuGet packages
2021-03-06 10:12:12.592 +01:00 [INF] Marking package Ben.Demystifier for removal because it appears to be a transitive dependency
2021-03-06 10:12:12.607 +01:00 [INF] Marking package System.Buffers for removal because it appears to be a transitive dependency
2021-03-06 10:12:12.624 +01:00 [INF] Marking package System.Collections.Immutable for removal because it appears to be a transitive dependency
2021-03-06 10:12:12.628 +01:00 [INF] Marking package System.Memory for removal because it appears to be a transitive dependency
2021-03-06 10:12:12.630 +01:00 [INF] Marking package System.Numerics.Vectors for removal because it appears to be a transitive dependency
2021-03-06 10:12:12.633 +01:00 [INF] Marking package System.Reflection.Metadata for removal because it appears to be a transitive dependency
2021-03-06 10:12:12.637 +01:00 [INF] Marking package System.Runtime.CompilerServices.Unsafe for removal because it appears to be a transitive dependency
2021-03-06 10:12:12.640 +01:00 [INF] Marking package System.Threading.Tasks.Extensions for removal because it appears to be a transitive dependency
2021-03-06 10:12:14.097 +01:00 [INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.2.212405) needs added
2021-03-06 10:12:14.104 +01:00 [INF] Packages to be removed:
Ben.Demystifier, Version=0.3.0
System.Buffers, Version=4.5.1
System.Collections.Immutable, Version=5.0.0
System.Memory, Version=4.5.4
System.Numerics.Vectors, Version=4.5.0
System.Reflection.Metadata, Version=5.0.0
System.Runtime.CompilerServices.Unsafe, Version=5.0.0
System.Threading.Tasks.Extensions, Version=4.5.4
2021-03-06 10:12:14.104 +01:00 [INF] Packages to be addded:
Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.2.212405
2021-03-06 10:12:16.572 +01:00 [INF] Applying upgrade step Update NuGet packages
2021-03-06 10:12:16.573 +01:00 [INF] Removing outdated package reference: Ben.Demystifier, Version=0.3.0
2021-03-06 10:12:16.573 +01:00 [INF] Removing outdated package reference: System.Buffers, Version=4.5.1
2021-03-06 10:12:16.574 +01:00 [INF] Removing outdated package reference: System.Collections.Immutable, Version=5.0.0
2021-03-06 10:12:16.575 +01:00 [INF] Removing outdated package reference: System.Memory, Version=4.5.4
2021-03-06 10:12:16.576 +01:00 [INF] Removing outdated package reference: System.Numerics.Vectors, Version=4.5.0
2021-03-06 10:12:16.578 +01:00 [INF] Removing outdated package reference: System.Reflection.Metadata, Version=5.0.0
2021-03-06 10:12:16.578 +01:00 [INF] Removing outdated package reference: System.Runtime.CompilerServices.Unsafe, Version=5.0.0
2021-03-06 10:12:16.580 +01:00 [INF] Removing outdated package reference: System.Threading.Tasks.Extensions, Version=4.5.4
2021-03-06 10:12:16.581 +01:00 [INF] Adding package reference: Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.2.212405
2021-03-06 10:12:19.366 +01:00 [INF] Upgrade step Update NuGet packages applied successfully
2021-03-06 10:12:35.849 +01:00 [INF] Initializing upgrade step Add template files
2021-03-06 10:12:35.850 +01:00 [INF] 0 expected template items needed
2021-03-06 10:12:35.851 +01:00 [INF] Initializing upgrade step Upgrade app config files
2021-03-06 10:12:35.852 +01:00 [INF] Found 0 app settings for upgrade:
2021-03-06 10:12:35.853 +01:00 [INF] system.diagnostics is not supported in .NET 5. See https://github.com/dotnet/runtime/issues/23937 for details. For now, it will be disabled.
2021-03-06 10:12:35.854 +01:00 [INF] 0 web page namespace imports need upgraded:
2021-03-06 10:12:40.725 +01:00 [INF] Applying upgrade step Disable unsupported configuration sections
2021-03-06 10:12:40.727 +01:00 [INF] system.diagnostics is not supported in .NET 5. See https://github.com/dotnet/runtime/issues/23937 for details. For now, it will be disabled.
2021-03-06 10:12:40.730 +01:00 [INF] Configuration file H:\dev\vs\Catalog\imagecatalog\app.config has been updated
2021-03-06 10:12:40.737 +01:00 [INF] Upgrade step Disable unsupported configuration sections applied successfully
2021-03-06 10:12:40.739 +01:00 [INF] Applying upgrade step Upgrade app config files
2021-03-06 10:12:40.740 +01:00 [INF] Upgrade step Upgrade app config files applied successfully
2021-03-06 10:12:43.598 +01:00 [INF] Initializing upgrade step Update C# source
2021-03-06 10:12:44.173 +01:00 [INF] Initializing upgrade step Move to next project
2021-03-06 10:12:47.488 +01:00 [INF] Applying upgrade step Move to next project
2021-03-06 10:12:47.489 +01:00 [INF] Upgrade step Move to next project applied successfully
2021-03-06 10:12:48.833 +01:00 [INF] Initializing upgrade step Select project to upgrade
2021-03-06 10:12:50.361 +01:00 [INF] Applying upgrade step Select project to upgrade
2021-03-06 10:12:54.374 +01:00 [ERR] Unknown selection: ''
2021-03-06 10:13:02.205 +01:00 [ERR] Unknown selection: ''
2021-03-06 10:13:04.059 +01:00 [ERR] Unknown selection: 'exit'
2021-03-06 10:13:06.542 +01:00 [ERR] Unknown selection: '0'
2021-03-06 10:13:08.242 +01:00 [INF] Saving upgrade progress file at H:\dev\vs\Catalog\.upgrade-assistant
2021-03-06 10:13:13.625 +01:00 [INF] MSBuild registered from C:\Program Files\dotnet\sdk\5.0.200\
2021-03-06 10:13:13.651 +01:00 [INF] Registered 1 extensions:
Default extension
2021-03-06 10:13:15.795 +01:00 [INF] Loading upgrade progress file at H:\dev\vs\Catalog\.upgrade-assistant
2021-03-06 10:13:17.819 +01:00 [INF] Initializing upgrade step Select project to upgrade
2021-03-06 10:13:29.438 +01:00 [INF] Skipping upgrade step Select project to upgrade
2021-03-06 10:13:29.440 +01:00 [INF] Upgrade step Select project to upgrade skipped
2021-03-06 10:13:31.325 +01:00 [INF] Initializing upgrade step Finalize Solution
2021-03-06 10:13:34.820 +01:00 [INF] Applying upgrade step Finalize Solution
2021-03-06 10:13:34.821 +01:00 [INF] Upgrade step Finalize Solution applied successfully
2021-03-06 10:13:36.563 +01:00 [INF] Upgrade has completed. Please review any changes.
2021-03-06 10:13:36.565 +01:00 [INF] Saving upgrade progress file at H:\dev\vs\Catalog\.upgrade-assistant