v1.0.2 Release
@ -3,9 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio 15
|
# Visual Studio 15
|
||||||
VisualStudioVersion = 15.0.28306.52
|
VisualStudioVersion = 15.0.28306.52
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClearCache1C", "ClearCache1C\ClearCache1C.csproj", "{CA37FAA9-7C77-4C16-81A4-3BBD93F235A1}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClearCache1C", "ClearCache1C\ClearCache1C.csproj", "{2D3EA215-F5C4-435B-922E-F985AF0065CB}"
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{083C60B7-90FE-4420-ACC6-6FCD7AF073A6}"
|
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -13,15 +11,15 @@ Global
|
|||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{CA37FAA9-7C77-4C16-81A4-3BBD93F235A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{2D3EA215-F5C4-435B-922E-F985AF0065CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{CA37FAA9-7C77-4C16-81A4-3BBD93F235A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{2D3EA215-F5C4-435B-922E-F985AF0065CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{CA37FAA9-7C77-4C16-81A4-3BBD93F235A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{2D3EA215-F5C4-435B-922E-F985AF0065CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{CA37FAA9-7C77-4C16-81A4-3BBD93F235A1}.Release|Any CPU.Build.0 = Release|Any CPU
|
{2D3EA215-F5C4-435B-922E-F985AF0065CB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {BB1D2E8F-9657-45EA-B581-2CE59F7A8F53}
|
SolutionGuid = {45BC8D5D-5D6C-4E12-8ECB-154D6FA6A2F8}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
Before Width: | Height: | Size: 58 KiB |
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
|
||||||
</startup>
|
</startup>
|
||||||
</configuration>
|
</configuration>
|
BIN
ClearCache1C/Builds/Чистка кэша 1С v1.0.2.exe
Normal file
@ -4,15 +4,13 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{CA37FAA9-7C77-4C16-81A4-3BBD93F235A1}</ProjectGuid>
|
<ProjectGuid>{2D3EA215-F5C4-435B-922E-F985AF0065CB}</ProjectGuid>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<RootNamespace>ClearCache1C</RootNamespace>
|
<RootNamespace>ClearCache1C</RootNamespace>
|
||||||
<AssemblyName>Чистка кэша 1С</AssemblyName>
|
<AssemblyName>ClearCache1C</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
||||||
<Deterministic>true</Deterministic>
|
<Deterministic>true</Deterministic>
|
||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
|
||||||
<PublishUrl>publish\</PublishUrl>
|
<PublishUrl>publish\</PublishUrl>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
<InstallFrom>Disk</InstallFrom>
|
<InstallFrom>Disk</InstallFrom>
|
||||||
@ -24,9 +22,9 @@
|
|||||||
<UpdateRequired>false</UpdateRequired>
|
<UpdateRequired>false</UpdateRequired>
|
||||||
<MapFileExtensions>true</MapFileExtensions>
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
<ApplicationVersion>1.0.1.0</ApplicationVersion>
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
@ -49,32 +47,11 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>Custom-Icon-Design-Mini-File-delete.ico</ApplicationIcon>
|
<ApplicationIcon>app.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<ManifestCertificateThumbprint>7AC4C8549D1C2C8FCD8E3679F8E21FC6168EC2BF</ManifestCertificateThumbprint>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<ManifestKeyFile>ClearCache1C_TemporaryKey.pfx</ManifestKeyFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<GenerateManifests>true</GenerateManifests>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetZone>LocalIntranet</TargetZone>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<SignManifests>true</SignManifests>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
@ -86,34 +63,34 @@
|
|||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Form1.cs">
|
<Compile Include="FormAbout.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Form1.Designer.cs">
|
<Compile Include="FormAbout.Designer.cs">
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
<DependentUpon>FormAbout.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Form2.cs">
|
<Compile Include="FormMain.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Form2.Designer.cs">
|
<Compile Include="FormMain.Designer.cs">
|
||||||
<DependentUpon>Form2.cs</DependentUpon>
|
<DependentUpon>FormMain.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Form3.cs">
|
<Compile Include="FormResults.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Form3.Designer.cs">
|
<Compile Include="FormResults.Designer.cs">
|
||||||
<DependentUpon>Form3.cs</DependentUpon>
|
<DependentUpon>FormResults.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<EmbeddedResource Include="Form1.resx">
|
<EmbeddedResource Include="FormAbout.resx">
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
<DependentUpon>FormAbout.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Form2.resx">
|
<EmbeddedResource Include="FormMain.resx">
|
||||||
<DependentUpon>Form2.cs</DependentUpon>
|
<DependentUpon>FormMain.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Form3.resx">
|
<EmbeddedResource Include="FormResults.resx">
|
||||||
<DependentUpon>Form3.cs</DependentUpon>
|
<DependentUpon>FormResults.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
@ -125,9 +102,6 @@
|
|||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
</Compile>
|
</Compile>
|
||||||
<None Include="ClearCache1C_TemporaryKey.pfx" />
|
|
||||||
<None Include="packages.config" />
|
|
||||||
<None Include="Properties\app.manifest" />
|
|
||||||
<None Include="Properties\Settings.settings">
|
<None Include="Properties\Settings.settings">
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
@ -141,9 +115,6 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<None Include="Resources\icon_deselect_16.PNG" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Resources\icon_select_16.PNG" />
|
<None Include="Resources\icon_select_16.PNG" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -151,23 +122,30 @@
|
|||||||
<None Include="Resources\icon_smart_select_16.PNG" />
|
<None Include="Resources\icon_smart_select_16.PNG" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Resources\ai-full logo - clean.PNG" />
|
<None Include="Resources\icon_refresh_24.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\arrows_16_L.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\arrows_16_R.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\icon_deselect_16.PNG" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\ai-logo.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="app.ico" />
|
||||||
|
<None Include="Resources\x-mark_16.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BootstrapperPackage Include=".NETFramework,Version=v4.6.1">
|
|
||||||
<Visible>False</Visible>
|
|
||||||
<ProductName>Microsoft .NET Framework 4.6.1 %28x86 и x64%29</ProductName>
|
|
||||||
<Install>true</Install>
|
|
||||||
</BootstrapperPackage>
|
|
||||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
<Install>false</Install>
|
<Install>false</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="1C_120.ico" />
|
|
||||||
<Content Include="Custom-Icon-Design-Mini-File-delete.ico" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
191
ClearCache1C/Form1.Designer.cs
generated
@ -1,191 +0,0 @@
|
|||||||
namespace ClearCache1C
|
|
||||||
{
|
|
||||||
partial class FormMain
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Обязательная переменная конструктора.
|
|
||||||
/// </summary>
|
|
||||||
private System.ComponentModel.IContainer components = null;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Освободить все используемые ресурсы.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
|
|
||||||
protected override void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (disposing && (components != null))
|
|
||||||
{
|
|
||||||
components.Dispose();
|
|
||||||
}
|
|
||||||
base.Dispose(disposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Код, автоматически созданный конструктором форм Windows
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Требуемый метод для поддержки конструктора — не изменяйте
|
|
||||||
/// содержимое этого метода с помощью редактора кода.
|
|
||||||
/// </summary>
|
|
||||||
private void InitializeComponent()
|
|
||||||
{
|
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
|
|
||||||
this.ListBases = new System.Windows.Forms.CheckedListBox();
|
|
||||||
this.btnClearCache = new System.Windows.Forms.Button();
|
|
||||||
this.btnPurgeAll = new System.Windows.Forms.Button();
|
|
||||||
this.InfoBox = new System.Windows.Forms.TextBox();
|
|
||||||
this.btnExpand = new System.Windows.Forms.Button();
|
|
||||||
this.btnSmartSelect = new System.Windows.Forms.Button();
|
|
||||||
this.btnRemoveSelection = new System.Windows.Forms.Button();
|
|
||||||
this.btnSelectAll = new System.Windows.Forms.Button();
|
|
||||||
this.btnAbout = new System.Windows.Forms.Button();
|
|
||||||
this.SuspendLayout();
|
|
||||||
//
|
|
||||||
// ListBases
|
|
||||||
//
|
|
||||||
this.ListBases.BackColor = System.Drawing.SystemColors.Window;
|
|
||||||
this.ListBases.Cursor = System.Windows.Forms.Cursors.Arrow;
|
|
||||||
this.ListBases.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
|
||||||
this.ListBases.FormattingEnabled = true;
|
|
||||||
this.ListBases.Location = new System.Drawing.Point(12, 42);
|
|
||||||
this.ListBases.Name = "ListBases";
|
|
||||||
this.ListBases.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
|
||||||
this.ListBases.Size = new System.Drawing.Size(400, 364);
|
|
||||||
this.ListBases.TabIndex = 0;
|
|
||||||
this.ListBases.SelectedIndexChanged += new System.EventHandler(this.ListBases_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// btnClearCache
|
|
||||||
//
|
|
||||||
this.btnClearCache.Location = new System.Drawing.Point(12, 412);
|
|
||||||
this.btnClearCache.Name = "btnClearCache";
|
|
||||||
this.btnClearCache.Size = new System.Drawing.Size(198, 37);
|
|
||||||
this.btnClearCache.TabIndex = 1;
|
|
||||||
this.btnClearCache.Text = "Очистить кэш";
|
|
||||||
this.btnClearCache.UseVisualStyleBackColor = true;
|
|
||||||
this.btnClearCache.Click += new System.EventHandler(this.ButtonClearCache_Click);
|
|
||||||
//
|
|
||||||
// btnPurgeAll
|
|
||||||
//
|
|
||||||
this.btnPurgeAll.Location = new System.Drawing.Point(214, 412);
|
|
||||||
this.btnPurgeAll.Name = "btnPurgeAll";
|
|
||||||
this.btnPurgeAll.Size = new System.Drawing.Size(198, 37);
|
|
||||||
this.btnPurgeAll.TabIndex = 4;
|
|
||||||
this.btnPurgeAll.Text = "Удалить все";
|
|
||||||
this.btnPurgeAll.UseVisualStyleBackColor = true;
|
|
||||||
this.btnPurgeAll.Click += new System.EventHandler(this.ButtonPurgeAll_Click);
|
|
||||||
//
|
|
||||||
// InfoBox
|
|
||||||
//
|
|
||||||
this.InfoBox.BackColor = System.Drawing.SystemColors.Info;
|
|
||||||
this.InfoBox.Cursor = System.Windows.Forms.Cursors.IBeam;
|
|
||||||
this.InfoBox.Location = new System.Drawing.Point(445, 12);
|
|
||||||
this.InfoBox.Multiline = true;
|
|
||||||
this.InfoBox.Name = "InfoBox";
|
|
||||||
this.InfoBox.ReadOnly = true;
|
|
||||||
this.InfoBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
|
||||||
this.InfoBox.Size = new System.Drawing.Size(400, 437);
|
|
||||||
this.InfoBox.TabIndex = 6;
|
|
||||||
this.InfoBox.WordWrap = false;
|
|
||||||
//
|
|
||||||
// btnExpand
|
|
||||||
//
|
|
||||||
this.btnExpand.FlatAppearance.BorderSize = 0;
|
|
||||||
this.btnExpand.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
|
||||||
this.btnExpand.Location = new System.Drawing.Point(418, 42);
|
|
||||||
this.btnExpand.Name = "btnExpand";
|
|
||||||
this.btnExpand.Size = new System.Drawing.Size(21, 364);
|
|
||||||
this.btnExpand.TabIndex = 7;
|
|
||||||
this.btnExpand.Text = ">\r\n>\r\n>";
|
|
||||||
this.btnExpand.UseVisualStyleBackColor = true;
|
|
||||||
this.btnExpand.Click += new System.EventHandler(this.ButtonExpand_Click);
|
|
||||||
//
|
|
||||||
// btnSmartSelect
|
|
||||||
//
|
|
||||||
this.btnSmartSelect.Image = global::ClearCache1C.Properties.Resources.icon_smart_select_16;
|
|
||||||
this.btnSmartSelect.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
this.btnSmartSelect.Location = new System.Drawing.Point(12, 12);
|
|
||||||
this.btnSmartSelect.Name = "btnSmartSelect";
|
|
||||||
this.btnSmartSelect.Size = new System.Drawing.Size(130, 27);
|
|
||||||
this.btnSmartSelect.TabIndex = 8;
|
|
||||||
this.btnSmartSelect.Text = "Выделить с кэшем";
|
|
||||||
this.btnSmartSelect.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
|
||||||
this.btnSmartSelect.UseVisualStyleBackColor = true;
|
|
||||||
this.btnSmartSelect.Click += new System.EventHandler(this.ButtonSmartSelect_Click);
|
|
||||||
//
|
|
||||||
// btnRemoveSelection
|
|
||||||
//
|
|
||||||
this.btnRemoveSelection.Image = ((System.Drawing.Image)(resources.GetObject("btnRemoveSelection.Image")));
|
|
||||||
this.btnRemoveSelection.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
this.btnRemoveSelection.Location = new System.Drawing.Point(282, 12);
|
|
||||||
this.btnRemoveSelection.Name = "btnRemoveSelection";
|
|
||||||
this.btnRemoveSelection.Size = new System.Drawing.Size(130, 27);
|
|
||||||
this.btnRemoveSelection.TabIndex = 3;
|
|
||||||
this.btnRemoveSelection.Text = "Снять выделение";
|
|
||||||
this.btnRemoveSelection.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
|
||||||
this.btnRemoveSelection.UseVisualStyleBackColor = true;
|
|
||||||
this.btnRemoveSelection.Click += new System.EventHandler(this.ButtonRemoveSelection_Click);
|
|
||||||
//
|
|
||||||
// btnSelectAll
|
|
||||||
//
|
|
||||||
this.btnSelectAll.Image = ((System.Drawing.Image)(resources.GetObject("btnSelectAll.Image")));
|
|
||||||
this.btnSelectAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
this.btnSelectAll.Location = new System.Drawing.Point(146, 12);
|
|
||||||
this.btnSelectAll.Name = "btnSelectAll";
|
|
||||||
this.btnSelectAll.Size = new System.Drawing.Size(130, 27);
|
|
||||||
this.btnSelectAll.TabIndex = 2;
|
|
||||||
this.btnSelectAll.Text = "Выделить все";
|
|
||||||
this.btnSelectAll.UseVisualStyleBackColor = true;
|
|
||||||
this.btnSelectAll.Click += new System.EventHandler(this.ButtonSelectAll_Click);
|
|
||||||
//
|
|
||||||
// btnAbout
|
|
||||||
//
|
|
||||||
this.btnAbout.Cursor = System.Windows.Forms.Cursors.Help;
|
|
||||||
this.btnAbout.FlatAppearance.BorderSize = 0;
|
|
||||||
this.btnAbout.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
|
||||||
this.btnAbout.Location = new System.Drawing.Point(418, 13);
|
|
||||||
this.btnAbout.Name = "btnAbout";
|
|
||||||
this.btnAbout.Size = new System.Drawing.Size(21, 26);
|
|
||||||
this.btnAbout.TabIndex = 9;
|
|
||||||
this.btnAbout.Text = "?";
|
|
||||||
this.btnAbout.UseVisualStyleBackColor = true;
|
|
||||||
this.btnAbout.Click += new System.EventHandler(this.ButtonAbout_Click);
|
|
||||||
//
|
|
||||||
// FormMain
|
|
||||||
//
|
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
||||||
this.ClientSize = new System.Drawing.Size(854, 461);
|
|
||||||
this.Controls.Add(this.btnAbout);
|
|
||||||
this.Controls.Add(this.btnSmartSelect);
|
|
||||||
this.Controls.Add(this.btnExpand);
|
|
||||||
this.Controls.Add(this.InfoBox);
|
|
||||||
this.Controls.Add(this.btnPurgeAll);
|
|
||||||
this.Controls.Add(this.btnRemoveSelection);
|
|
||||||
this.Controls.Add(this.btnSelectAll);
|
|
||||||
this.Controls.Add(this.btnClearCache);
|
|
||||||
this.Controls.Add(this.ListBases);
|
|
||||||
this.Cursor = System.Windows.Forms.Cursors.Arrow;
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
|
||||||
this.MaximizeBox = false;
|
|
||||||
this.MinimizeBox = false;
|
|
||||||
this.Name = "FormMain";
|
|
||||||
this.Text = "Чистка кэша 1С";
|
|
||||||
this.Load += new System.EventHandler(this.FormMain_Load);
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
private System.Windows.Forms.Button btnClearCache;
|
|
||||||
private System.Windows.Forms.Button btnSelectAll;
|
|
||||||
private System.Windows.Forms.Button btnRemoveSelection;
|
|
||||||
private System.Windows.Forms.Button btnPurgeAll;
|
|
||||||
private System.Windows.Forms.TextBox InfoBox;
|
|
||||||
private System.Windows.Forms.Button btnExpand;
|
|
||||||
private System.Windows.Forms.CheckedListBox ListBases;
|
|
||||||
private System.Windows.Forms.Button btnSmartSelect;
|
|
||||||
private System.Windows.Forms.Button btnAbout;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,437 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Data;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
// Using
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace ClearCache1C
|
|
||||||
{
|
|
||||||
public partial class FormMain : Form
|
|
||||||
{
|
|
||||||
public FormMain()
|
|
||||||
{
|
|
||||||
StartPosition = FormStartPosition.CenterScreen;
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
// ******************* Classes *******************
|
|
||||||
public class BasesListItem
|
|
||||||
{
|
|
||||||
public string Name { get; set; }
|
|
||||||
public string Path { get; set; }
|
|
||||||
public string Id { get; set; }
|
|
||||||
public bool FolderExists { get; set; }
|
|
||||||
public float FolderSize { get; set; }
|
|
||||||
public float CacheSize { get; set; }
|
|
||||||
public List<string> FolderPaths { get; set; }
|
|
||||||
public List<string> CachePaths { get; set; }
|
|
||||||
public BasesListItem(string s_name, string s_path, string s_id,
|
|
||||||
bool s_folder_exists,
|
|
||||||
float s_folder_size, float s_cache_size,
|
|
||||||
List<string> s_folder_paths, List<string> s_cache_paths)
|
|
||||||
{
|
|
||||||
Name = s_name;
|
|
||||||
Path = s_path;
|
|
||||||
Id = s_id;
|
|
||||||
FolderExists = s_folder_exists;
|
|
||||||
FolderSize = s_folder_size;
|
|
||||||
CacheSize = s_cache_size;
|
|
||||||
FolderPaths = s_folder_paths;
|
|
||||||
CachePaths = s_cache_paths;
|
|
||||||
}
|
|
||||||
public override string ToString() {
|
|
||||||
string f_size = String.Format("{0,3}", CacheSize.ToString("0"));
|
|
||||||
return (CacheSize > 0 ? "[" + f_size + " Mb] ": "[------] ")
|
|
||||||
+ Name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ******************* Events *******************
|
|
||||||
private void FormMain_Load(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
RefreshListBases();
|
|
||||||
ToggleInfoView();
|
|
||||||
SetToolTips();
|
|
||||||
}
|
|
||||||
// ****** LIST CONTROL BUTTONS
|
|
||||||
private void ButtonSmartSelect_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ModListBases(true, true);
|
|
||||||
}
|
|
||||||
private void ButtonSelectAll_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ModListBases(true, false);
|
|
||||||
}
|
|
||||||
private void ButtonRemoveSelection_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ModListBases(false, false);
|
|
||||||
}
|
|
||||||
private void ButtonExpand_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ToggleInfoView();
|
|
||||||
}
|
|
||||||
private void ToggleInfoView()
|
|
||||||
{
|
|
||||||
if (Size.Width != 870) // is collapsed
|
|
||||||
{
|
|
||||||
Size = new Size(870, Size.Height);
|
|
||||||
btnExpand.Text = "<\r\n<\r\n<";
|
|
||||||
InfoBox.Visible = true;
|
|
||||||
ShowSelectedInfo();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int calc_width = btnExpand.Location.X + btnExpand.Size.Width + 22;
|
|
||||||
Size = new Size(calc_width, Size.Height);
|
|
||||||
btnExpand.Text = ">\r\n>\r\n>";
|
|
||||||
InfoBox.Visible = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void ButtonAbout_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
FormAbout aboutForm = new FormAbout();
|
|
||||||
aboutForm.ShowDialog();
|
|
||||||
}
|
|
||||||
// ****** MAIN BUTTONS
|
|
||||||
private void ButtonClearCache_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (ListBases.CheckedItems.Count == 0)
|
|
||||||
{
|
|
||||||
MessageBox.Show("Ничего не выбрано.", "Meh...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ClearFolders(false);
|
|
||||||
RefreshListBases();
|
|
||||||
ShowSelectedInfo();
|
|
||||||
}
|
|
||||||
private void ButtonPurgeAll_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (ListBases.CheckedItems.Count == 0)
|
|
||||||
{
|
|
||||||
MessageBox.Show("Ничего не выбрано.", "Meh...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
DialogResult dialogResult = MessageBox.Show("Это удалит все локальные настройки пользователя в выбранных базах. \r\nВы уверены, что хотите этого?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
|
||||||
if (dialogResult == DialogResult.Yes)
|
|
||||||
{
|
|
||||||
ClearFolders(true);
|
|
||||||
RefreshListBases();
|
|
||||||
ShowSelectedInfo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ****** FOR DEBUG
|
|
||||||
private void ListBases_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ShowSelectedInfo();
|
|
||||||
}
|
|
||||||
// ******************* MAIN *******************
|
|
||||||
private void ClearFolders(bool purge)
|
|
||||||
{
|
|
||||||
CheckedListBox.CheckedItemCollection items = ListBases.CheckedItems;
|
|
||||||
|
|
||||||
int successfully_deleted = 0;
|
|
||||||
int errors_on_delete = 0;
|
|
||||||
float total_size_deleted = 0.0f;
|
|
||||||
|
|
||||||
List<string> list_success = new List<string>();
|
|
||||||
List<string> list_error = new List<string>();
|
|
||||||
List<string> list_exceptions = new List<string>();
|
|
||||||
|
|
||||||
for (int i = 0; i < items.Count; i++)
|
|
||||||
{
|
|
||||||
BasesListItem base_item = items[i] as BasesListItem;
|
|
||||||
(bool is_error, float deleted_size, List<string> exceptions) = DeleteFoldersContent(purge ? base_item.FolderPaths : base_item.CachePaths);
|
|
||||||
if (!is_error)
|
|
||||||
{
|
|
||||||
successfully_deleted++;
|
|
||||||
list_success.Add(base_item.Name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
errors_on_delete++;
|
|
||||||
list_error.Add(base_item.Name);
|
|
||||||
list_exceptions.AddRange(exceptions);
|
|
||||||
}
|
|
||||||
total_size_deleted += deleted_size;
|
|
||||||
}
|
|
||||||
ShowResults(successfully_deleted, errors_on_delete, total_size_deleted, list_success, list_error, list_exceptions);
|
|
||||||
}
|
|
||||||
private void ShowResults(int successfully_deleted, int errors_on_delete, float total_size_deleted,
|
|
||||||
List<string> list_success, List<string> list_error, List<string> list_exceptions)
|
|
||||||
{
|
|
||||||
FormResult resultForm = new FormResult();
|
|
||||||
resultForm.SetInfoResult(successfully_deleted, errors_on_delete, total_size_deleted,
|
|
||||||
list_success, list_error, list_exceptions);
|
|
||||||
resultForm.ShowDialog();
|
|
||||||
}
|
|
||||||
private (bool is_error, float deleted_size, List<string> exceptions) DeleteFoldersContent(List<string> ListPaths)
|
|
||||||
{
|
|
||||||
bool is_error = false;
|
|
||||||
float deleted_size = 0.0f;
|
|
||||||
List<string> exceptions = new List<string>();
|
|
||||||
|
|
||||||
foreach (string folder_path in ListPaths)
|
|
||||||
{
|
|
||||||
long folder_size = DirSize(new DirectoryInfo(folder_path));
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Directory.Delete(folder_path, true);
|
|
||||||
deleted_size += folder_size;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
is_error = true;
|
|
||||||
exceptions.Add(e.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
deleted_size = deleted_size / 1024 / 1024;
|
|
||||||
return (is_error, deleted_size, exceptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ******************* Added functions *******************
|
|
||||||
private void ShowSelectedInfo()
|
|
||||||
{
|
|
||||||
if (!InfoBox.Visible) { return; }
|
|
||||||
InfoBox.ResetText();
|
|
||||||
BasesListItem curItem = ListBases.SelectedItem as BasesListItem;
|
|
||||||
if (curItem is null) { return; }
|
|
||||||
/*
|
|
||||||
Console.WriteLine("Name: " + curItem.Name);
|
|
||||||
Console.WriteLine("ID: " + curItem.Id);
|
|
||||||
Console.WriteLine("Connect string: " + curItem.Path);
|
|
||||||
Console.WriteLine("Cache exists: " + curItem.FolderExists);
|
|
||||||
Console.WriteLine("Size total: " + curItem.FolderSize.ToString("0.00"));
|
|
||||||
Console.WriteLine("Size cache: " + curItem.CacheSize.ToString("0.00"));
|
|
||||||
Console.WriteLine("Root Folders: " + curItem.FolderPaths.Count);
|
|
||||||
Console.WriteLine("Cache Folders: " + curItem.CachePaths.Count);
|
|
||||||
*/
|
|
||||||
InfoBox.AppendText("--- Информация о базе ---");
|
|
||||||
InfoBox.AppendText("\r\nИмя: " + curItem.Name);
|
|
||||||
InfoBox.AppendText("\r\nID: " + curItem.Id);
|
|
||||||
InfoBox.AppendText("\r\nСтрока подключения: " + curItem.Path);
|
|
||||||
|
|
||||||
InfoBox.AppendText("\r\n");
|
|
||||||
InfoBox.AppendText("\r\nКэш существует: " + ((curItem.CacheSize > 0) ? "Да" : "Нет"));
|
|
||||||
InfoBox.AppendText("\r\nРазмер кэша: " + curItem.CacheSize.ToString("0.00") + " Mb");
|
|
||||||
InfoBox.AppendText("\r\nРазмер всего: " + curItem.FolderSize.ToString("0.00") + " Mb");
|
|
||||||
|
|
||||||
InfoBox.AppendText("\r\n");
|
|
||||||
InfoBox.AppendText("\r\nКорневые каталоги: ");
|
|
||||||
foreach (string s in curItem.FolderPaths)
|
|
||||||
{
|
|
||||||
InfoBox.AppendText("\r\n > " + s);
|
|
||||||
}
|
|
||||||
InfoBox.AppendText("\r\n");
|
|
||||||
|
|
||||||
InfoBox.AppendText("\r\nКаталоги кэша: ");
|
|
||||||
foreach (string s in curItem.CachePaths)
|
|
||||||
{
|
|
||||||
InfoBox.AppendText("\r\n > " + s);
|
|
||||||
}
|
|
||||||
InfoBox.AppendText("\r\n");
|
|
||||||
}
|
|
||||||
private void ModListBases(bool isChecked, bool onlyWithCache)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < ListBases.Items.Count; i++)
|
|
||||||
{
|
|
||||||
if (onlyWithCache)
|
|
||||||
{
|
|
||||||
if ((ListBases.Items[i] as BasesListItem).CacheSize > 0)
|
|
||||||
{
|
|
||||||
ListBases.SetItemChecked(i, true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ListBases.SetItemChecked(i, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ListBases.SetItemChecked(i, isChecked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void RefreshListBases()
|
|
||||||
{
|
|
||||||
this.ListBases.Items.Clear();
|
|
||||||
|
|
||||||
string base_path = @"%appdata%\1C\1CEStart\ibases.v8i";
|
|
||||||
string[] lines = ReadFileContent(base_path);
|
|
||||||
if (lines == null)
|
|
||||||
{
|
|
||||||
MessageBox.Show("Can't find ibases.v8i file in provided location: " + base_path, "Error reading file!",
|
|
||||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var bases_dict = GetBasesDictionary(lines);
|
|
||||||
foreach (string key in bases_dict.Keys)
|
|
||||||
{
|
|
||||||
var value = bases_dict[key];
|
|
||||||
(bool s_folder_exists,
|
|
||||||
float s_folder_size, float s_cache_size,
|
|
||||||
List<string> s_folder_paths, List<string> s_cache_paths) = GetLocalFolderInfo(key);
|
|
||||||
ListBases.Items.Add(new BasesListItem(value.Name, value.Path, key,
|
|
||||||
s_folder_exists,
|
|
||||||
s_folder_size, s_cache_size,
|
|
||||||
s_folder_paths, s_cache_paths), false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private (bool s_folder_exists,
|
|
||||||
float s_folder_size, float s_cache_size,
|
|
||||||
List<string> s_folder_paths, List<string> s_cache_paths) GetLocalFolderInfo(string key)
|
|
||||||
{
|
|
||||||
// Local path of cache is:
|
|
||||||
// %APPDATA%\1C\1cv8\$Id
|
|
||||||
// %LOCALAPPDATA%\1C\1cv8\$Id
|
|
||||||
// var cache_folders = ("Config", "ConfigSave", "SICache", "vrs-cache");
|
|
||||||
|
|
||||||
string base_path_local = @"%LOCALAPPDATA%\1C\1cv8\" + key;
|
|
||||||
string base_path_roaming = @"%APPDATA%\1C\1cv8\" + key;
|
|
||||||
|
|
||||||
base_path_local = Environment.ExpandEnvironmentVariables(base_path_local);
|
|
||||||
base_path_roaming = Environment.ExpandEnvironmentVariables(base_path_roaming);
|
|
||||||
|
|
||||||
float s_folder_size = 0.0f;
|
|
||||||
float s_cache_size = 0.0f;
|
|
||||||
|
|
||||||
List<string> s_folder_paths = new List<string>();
|
|
||||||
List<string> s_cache_paths = new List<string>();
|
|
||||||
|
|
||||||
bool s_folder_exists = (Directory.Exists(base_path_local) || Directory.Exists(base_path_roaming)) ? true : false;
|
|
||||||
if (s_folder_exists)
|
|
||||||
{
|
|
||||||
s_cache_paths = GetFoldersById(base_path_local, base_path_roaming);
|
|
||||||
if (s_cache_paths.Count > 0)
|
|
||||||
{
|
|
||||||
foreach (string s in s_cache_paths)
|
|
||||||
{
|
|
||||||
s_cache_size += DirSize(new DirectoryInfo(s));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Directory.Exists(base_path_local))
|
|
||||||
{
|
|
||||||
s_folder_size += DirSize(new DirectoryInfo(base_path_local));
|
|
||||||
s_folder_paths.Add(base_path_local);
|
|
||||||
}
|
|
||||||
if (Directory.Exists(base_path_roaming))
|
|
||||||
{
|
|
||||||
s_folder_size += DirSize(new DirectoryInfo(base_path_roaming));
|
|
||||||
s_folder_paths.Add(base_path_roaming);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
s_folder_size = s_folder_size / 1024 / 1024; // Mb
|
|
||||||
s_cache_size = s_cache_size / 1024 / 1024; // Mb
|
|
||||||
return (s_folder_exists,
|
|
||||||
s_folder_size, s_cache_size,
|
|
||||||
s_folder_paths, s_cache_paths);
|
|
||||||
}
|
|
||||||
private List<string> GetFoldersById(string base_path_local, string base_path_roaming)
|
|
||||||
{
|
|
||||||
var found_folders = new List<string>();
|
|
||||||
if (Directory.Exists(base_path_local))
|
|
||||||
{
|
|
||||||
found_folders.AddRange(Directory.GetDirectories(base_path_local, "Config", SearchOption.AllDirectories).ToList());
|
|
||||||
found_folders.AddRange(Directory.GetDirectories(base_path_local, "ConfigSave", SearchOption.AllDirectories).ToList());
|
|
||||||
found_folders.AddRange(Directory.GetDirectories(base_path_local, "SICache", SearchOption.AllDirectories).ToList());
|
|
||||||
}
|
|
||||||
if (Directory.Exists(base_path_roaming))
|
|
||||||
{
|
|
||||||
found_folders.AddRange(Directory.GetDirectories(base_path_roaming, "vrs-cache", SearchOption.AllDirectories).ToList());
|
|
||||||
}
|
|
||||||
return found_folders;
|
|
||||||
}
|
|
||||||
private Dictionary<string, (string Name, string Path)> GetBasesDictionary(string[] lines)
|
|
||||||
{
|
|
||||||
var bases_dict = new Dictionary<string, (string Name, string Path)>();
|
|
||||||
var (name, id, path) = ("", "", "");
|
|
||||||
foreach (string line in lines)
|
|
||||||
{
|
|
||||||
/* ---------- EXAMPLE
|
|
||||||
[Торговля(Рабочая)]
|
|
||||||
Connect=Srvr="winserv";Ref="ut2014_work";
|
|
||||||
ID=f8370086-654e-4807-b79b-3f51653c3699
|
|
||||||
OrderInList = 0
|
|
||||||
Folder=/Рабочие
|
|
||||||
OrderInTree = 0
|
|
||||||
External=1
|
|
||||||
ClientConnectionSpeed=Normal
|
|
||||||
App = Auto
|
|
||||||
WA=1
|
|
||||||
Version=8.2
|
|
||||||
DefaultApp=ThickClient
|
|
||||||
-------------------- */
|
|
||||||
if (line.StartsWith("[")) // Start
|
|
||||||
{
|
|
||||||
name = line.Substring(1, line.Length - 2);
|
|
||||||
id = "";
|
|
||||||
path = "";
|
|
||||||
}
|
|
||||||
else if (line.StartsWith("Connect=")) // Connect string
|
|
||||||
{
|
|
||||||
path = line.Substring(8);
|
|
||||||
}
|
|
||||||
else if (line.StartsWith("ID=")) // ID string
|
|
||||||
{
|
|
||||||
id = line.Substring(3);
|
|
||||||
}
|
|
||||||
if (name != "" && path != "" && id != "")
|
|
||||||
{
|
|
||||||
bases_dict.Add(id, (name, path));
|
|
||||||
name = "";
|
|
||||||
id = "";
|
|
||||||
path = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return bases_dict;
|
|
||||||
}
|
|
||||||
private string[] ReadFileContent(string path_to_file)
|
|
||||||
{
|
|
||||||
string full_path_to_file = Environment.ExpandEnvironmentVariables(path_to_file);
|
|
||||||
if (!File.Exists(full_path_to_file))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return System.IO.File.ReadAllLines(full_path_to_file);
|
|
||||||
}
|
|
||||||
private static long DirSize(DirectoryInfo d)
|
|
||||||
{
|
|
||||||
long size = 0;
|
|
||||||
// Add file sizes.
|
|
||||||
FileInfo[] fis = d.GetFiles();
|
|
||||||
foreach (FileInfo fi in fis)
|
|
||||||
{
|
|
||||||
size += fi.Length;
|
|
||||||
}
|
|
||||||
// Add subdirectory sizes.
|
|
||||||
DirectoryInfo[] dis = d.GetDirectories();
|
|
||||||
foreach (DirectoryInfo di in dis)
|
|
||||||
{
|
|
||||||
size += DirSize(di);
|
|
||||||
}
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
private void SetToolTips()
|
|
||||||
{
|
|
||||||
ToolTip toolTip = new ToolTip();
|
|
||||||
|
|
||||||
string ClearCache_ToolTip = "Для выбранных баз - удаляет только файлы кэша.\r\nПользовательские настройки сохраняются.";
|
|
||||||
string PurgeAll_ToolTip = "Для выбранных баз - удаляет все найденные в корневых каталогах файлы.\r\nПользовательские настройки будут удалены.";
|
|
||||||
string SmartSelect_ToolTip = "Выбрать только базы, в которых есть локальный кэш.";
|
|
||||||
string SelectAll_ToolTip = "Выбрать все базы в списке.";
|
|
||||||
string RemoveSelection_ToolTip = "Убрать выбор со всех баз в списке.";
|
|
||||||
string About_ToolTip = "О программе";
|
|
||||||
|
|
||||||
toolTip.SetToolTip(btnClearCache, ClearCache_ToolTip);
|
|
||||||
toolTip.SetToolTip(btnPurgeAll, PurgeAll_ToolTip);
|
|
||||||
toolTip.SetToolTip(btnSmartSelect, SmartSelect_ToolTip);
|
|
||||||
toolTip.SetToolTip(btnSelectAll, SelectAll_ToolTip);
|
|
||||||
toolTip.SetToolTip(btnRemoveSelection, RemoveSelection_ToolTip);
|
|
||||||
toolTip.SetToolTip(btnAbout, About_ToolTip);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Data;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
|
|
||||||
namespace ClearCache1C
|
|
||||||
{
|
|
||||||
public partial class FormResult : Form
|
|
||||||
{
|
|
||||||
public FormResult()
|
|
||||||
{
|
|
||||||
StartPosition = FormStartPosition.CenterScreen;
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void FormResult_Load(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
MaximizeBox = false;
|
|
||||||
MinimizeBox = false;
|
|
||||||
}
|
|
||||||
public void SetInfoResult(int successfully_deleted, int errors_on_delete, float total_size_deleted,
|
|
||||||
List<string> list_success, List<string> list_error, List<string> list_exceptions)
|
|
||||||
{
|
|
||||||
InfoResult.ResetText();
|
|
||||||
InfoResult.AppendText("--- Итоги ---");
|
|
||||||
InfoResult.AppendText("\r\nВыполнено успешно: " + successfully_deleted);
|
|
||||||
InfoResult.AppendText("\r\nВыполнено с ошибками: " + errors_on_delete);
|
|
||||||
InfoResult.AppendText("\r\nВсего удалено: " + total_size_deleted.ToString("0.00") + " Mb");
|
|
||||||
InfoResult.AppendText("\r\n");
|
|
||||||
InfoResult.AppendText("\r\n--- Список обработанных успешно ---");
|
|
||||||
foreach (string s in list_success)
|
|
||||||
{
|
|
||||||
InfoResult.AppendText("\r\n > " + s);
|
|
||||||
}
|
|
||||||
InfoResult.AppendText("\r\n");
|
|
||||||
InfoResult.AppendText("\r\n--- Список обработанных с ошибками ---");
|
|
||||||
foreach (string s in list_error)
|
|
||||||
{
|
|
||||||
InfoResult.AppendText("\r\n > " + s);
|
|
||||||
}
|
|
||||||
InfoResult.AppendText("\r\n");
|
|
||||||
InfoResult.AppendText("\r\n--- Лог ошибок ---");
|
|
||||||
foreach (string s in list_exceptions)
|
|
||||||
{
|
|
||||||
InfoResult.AppendText("\r\n > " + s);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,120 +0,0 @@
|
|||||||
<?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>
|
|
@ -29,92 +29,98 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAbout));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAbout));
|
||||||
this.pictureBoxAi = new System.Windows.Forms.PictureBox();
|
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.textBoxInfo = new System.Windows.Forms.TextBox();
|
this.pictureBoxAi = new System.Windows.Forms.PictureBox();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.lInfo = new System.Windows.Forms.Label();
|
||||||
|
this.labelVersion = new System.Windows.Forms.Label();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.linkContact = new System.Windows.Forms.LinkLabel();
|
|
||||||
this.linkGit = new System.Windows.Forms.LinkLabel();
|
this.linkGit = new System.Windows.Forms.LinkLabel();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.linkContact = new System.Windows.Forms.LinkLabel();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAi)).BeginInit();
|
this.labelYear = new System.Windows.Forms.Label();
|
||||||
this.panel1.SuspendLayout();
|
this.panel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAi)).BeginInit();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.Controls.Add(this.pictureBoxAi);
|
||||||
|
this.panel1.Controls.Add(this.panel2);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(357, 136);
|
||||||
|
this.panel1.TabIndex = 0;
|
||||||
|
//
|
||||||
// pictureBoxAi
|
// pictureBoxAi
|
||||||
//
|
//
|
||||||
this.pictureBoxAi.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.pictureBoxAi.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.pictureBoxAi.Image = global::ClearCache1C.Properties.Resources.ai_full_logo___clean;
|
this.pictureBoxAi.Image = global::ClearCache1C.Properties.Resources.ai_logo;
|
||||||
this.pictureBoxAi.InitialImage = global::ClearCache1C.Properties.Resources.ai_full_logo___clean;
|
this.pictureBoxAi.InitialImage = null;
|
||||||
this.pictureBoxAi.Location = new System.Drawing.Point(12, 12);
|
this.pictureBoxAi.Location = new System.Drawing.Point(4, 4);
|
||||||
this.pictureBoxAi.Name = "pictureBoxAi";
|
this.pictureBoxAi.Name = "pictureBoxAi";
|
||||||
this.pictureBoxAi.Size = new System.Drawing.Size(127, 119);
|
this.pictureBoxAi.Size = new System.Drawing.Size(142, 130);
|
||||||
this.pictureBoxAi.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
this.pictureBoxAi.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||||
this.pictureBoxAi.TabIndex = 0;
|
this.pictureBoxAi.TabIndex = 0;
|
||||||
this.pictureBoxAi.TabStop = false;
|
this.pictureBoxAi.TabStop = false;
|
||||||
this.pictureBoxAi.Click += new System.EventHandler(this.pictureBoxAi_Click);
|
this.pictureBoxAi.Click += new System.EventHandler(this.pictureBoxAi_Click);
|
||||||
//
|
//
|
||||||
// panel1
|
// panel2
|
||||||
//
|
//
|
||||||
this.panel1.Controls.Add(this.textBoxInfo);
|
this.panel2.Controls.Add(this.lInfo);
|
||||||
this.panel1.Controls.Add(this.label1);
|
this.panel2.Controls.Add(this.labelVersion);
|
||||||
this.panel1.Location = new System.Drawing.Point(147, 13);
|
this.panel2.Controls.Add(this.label1);
|
||||||
this.panel1.Name = "panel1";
|
this.panel2.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
this.panel1.Size = new System.Drawing.Size(200, 118);
|
this.panel2.Location = new System.Drawing.Point(152, 0);
|
||||||
this.panel1.TabIndex = 2;
|
this.panel2.Name = "panel2";
|
||||||
|
this.panel2.Size = new System.Drawing.Size(205, 136);
|
||||||
|
this.panel2.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// textBoxInfo
|
// lInfo
|
||||||
//
|
//
|
||||||
this.textBoxInfo.BackColor = System.Drawing.SystemColors.Control;
|
this.lInfo.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
this.textBoxInfo.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
this.lInfo.ForeColor = System.Drawing.Color.DimGray;
|
||||||
this.textBoxInfo.Cursor = System.Windows.Forms.Cursors.Default;
|
this.lInfo.Location = new System.Drawing.Point(0, 47);
|
||||||
this.textBoxInfo.Enabled = false;
|
this.lInfo.Name = "lInfo";
|
||||||
this.textBoxInfo.ForeColor = System.Drawing.SystemColors.WindowText;
|
this.lInfo.Size = new System.Drawing.Size(205, 85);
|
||||||
this.textBoxInfo.Location = new System.Drawing.Point(4, 28);
|
this.lInfo.TabIndex = 1;
|
||||||
this.textBoxInfo.Multiline = true;
|
this.lInfo.Text = "Все просто.\r\nПрограмма читает пользовательский файл ibases.v8i и на его основе ст" +
|
||||||
this.textBoxInfo.Name = "textBoxInfo";
|
|
||||||
this.textBoxInfo.ReadOnly = true;
|
|
||||||
this.textBoxInfo.Size = new System.Drawing.Size(193, 87);
|
|
||||||
this.textBoxInfo.TabIndex = 2;
|
|
||||||
this.textBoxInfo.TabStop = false;
|
|
||||||
this.textBoxInfo.Text = "Все просто.\r\nПрограмма читает пользовательский файл ibases.v8i и на его основе ст" +
|
|
||||||
"роит список баз.\r\nПо найденным ID и происходит вся магия удалений.";
|
"роит список баз.\r\nПо найденным ID и происходит вся магия удалений.";
|
||||||
|
this.lInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// labelVersion
|
||||||
|
//
|
||||||
|
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.labelVersion.ForeColor = System.Drawing.Color.DarkRed;
|
||||||
|
this.labelVersion.Location = new System.Drawing.Point(0, 24);
|
||||||
|
this.labelVersion.Name = "labelVersion";
|
||||||
|
this.labelVersion.Size = new System.Drawing.Size(205, 23);
|
||||||
|
this.labelVersion.TabIndex = 3;
|
||||||
|
this.labelVersion.Text = "Версия: 1.0.0.0";
|
||||||
|
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
this.label1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
this.label1.Location = new System.Drawing.Point(49, 12);
|
this.label1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
this.label1.Size = new System.Drawing.Size(103, 13);
|
this.label1.Size = new System.Drawing.Size(205, 24);
|
||||||
this.label1.TabIndex = 1;
|
this.label1.TabIndex = 2;
|
||||||
this.label1.Text = "Чистка кэша 1С";
|
this.label1.Text = "Чистка Кэша 1С";
|
||||||
//
|
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
// linkContact
|
|
||||||
//
|
|
||||||
this.linkContact.AutoSize = true;
|
|
||||||
this.linkContact.LinkArea = new System.Windows.Forms.LinkArea(20, 15);
|
|
||||||
this.linkContact.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
|
||||||
this.linkContact.LinkColor = System.Drawing.SystemColors.HotTrack;
|
|
||||||
this.linkContact.Location = new System.Drawing.Point(12, 134);
|
|
||||||
this.linkContact.Name = "linkContact";
|
|
||||||
this.linkContact.Size = new System.Drawing.Size(199, 17);
|
|
||||||
this.linkContact.TabIndex = 6;
|
|
||||||
this.linkContact.TabStop = true;
|
|
||||||
this.linkContact.Text = "Автор: FuketsuBaka (ai@ai-frame.net)";
|
|
||||||
this.linkContact.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
this.linkContact.UseCompatibleTextRendering = true;
|
|
||||||
this.linkContact.VisitedLinkColor = System.Drawing.SystemColors.WindowFrame;
|
|
||||||
this.linkContact.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkContact_LinkClicked);
|
|
||||||
//
|
//
|
||||||
// linkGit
|
// linkGit
|
||||||
//
|
//
|
||||||
this.linkGit.AutoSize = true;
|
this.linkGit.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
this.linkGit.LinkArea = new System.Windows.Forms.LinkArea(5, 46);
|
this.linkGit.LinkArea = new System.Windows.Forms.LinkArea(5, 46);
|
||||||
this.linkGit.LinkColor = System.Drawing.SystemColors.HotTrack;
|
this.linkGit.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||||
this.linkGit.Location = new System.Drawing.Point(12, 151);
|
this.linkGit.LinkColor = System.Drawing.Color.DarkRed;
|
||||||
|
this.linkGit.Location = new System.Drawing.Point(0, 166);
|
||||||
this.linkGit.Name = "linkGit";
|
this.linkGit.Name = "linkGit";
|
||||||
this.linkGit.Size = new System.Drawing.Size(267, 17);
|
this.linkGit.Size = new System.Drawing.Size(357, 30);
|
||||||
this.linkGit.TabIndex = 7;
|
this.linkGit.TabIndex = 2;
|
||||||
this.linkGit.TabStop = true;
|
this.linkGit.TabStop = true;
|
||||||
this.linkGit.Text = "GIT: https://bitbucket.org/FuketsuBaka/clearcache1c";
|
this.linkGit.Text = "GIT: https://bitbucket.org/FuketsuBaka/clearcache1c";
|
||||||
this.linkGit.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
this.linkGit.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
@ -122,26 +128,42 @@
|
|||||||
this.linkGit.VisitedLinkColor = System.Drawing.SystemColors.WindowFrame;
|
this.linkGit.VisitedLinkColor = System.Drawing.SystemColors.WindowFrame;
|
||||||
this.linkGit.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkGit_LinkClicked);
|
this.linkGit.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkGit_LinkClicked);
|
||||||
//
|
//
|
||||||
// label4
|
// linkContact
|
||||||
//
|
//
|
||||||
this.label4.AutoSize = true;
|
this.linkContact.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
this.label4.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
|
this.linkContact.LinkArea = new System.Windows.Forms.LinkArea(20, 15);
|
||||||
this.label4.Location = new System.Drawing.Point(149, 175);
|
this.linkContact.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||||
this.label4.Name = "label4";
|
this.linkContact.LinkColor = System.Drawing.Color.DarkRed;
|
||||||
this.label4.Size = new System.Drawing.Size(42, 13);
|
this.linkContact.Location = new System.Drawing.Point(0, 136);
|
||||||
this.label4.TabIndex = 9;
|
this.linkContact.Name = "linkContact";
|
||||||
this.label4.Text = "2018 г.";
|
this.linkContact.Size = new System.Drawing.Size(357, 30);
|
||||||
|
this.linkContact.TabIndex = 3;
|
||||||
|
this.linkContact.TabStop = true;
|
||||||
|
this.linkContact.Text = "Автор: FuketsuBaka (ai@ai-frame.net)";
|
||||||
|
this.linkContact.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
this.linkContact.UseCompatibleTextRendering = true;
|
||||||
|
this.linkContact.VisitedLinkColor = System.Drawing.SystemColors.WindowFrame;
|
||||||
|
this.linkContact.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkContact_LinkClicked);
|
||||||
|
//
|
||||||
|
// labelYear
|
||||||
|
//
|
||||||
|
this.labelYear.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.labelYear.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||||
|
this.labelYear.Location = new System.Drawing.Point(0, 198);
|
||||||
|
this.labelYear.Name = "labelYear";
|
||||||
|
this.labelYear.Size = new System.Drawing.Size(357, 21);
|
||||||
|
this.labelYear.TabIndex = 4;
|
||||||
|
this.labelYear.Text = "-2018 г.-";
|
||||||
|
this.labelYear.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
//
|
//
|
||||||
// FormAbout
|
// FormAbout
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.ClientSize = new System.Drawing.Size(357, 219);
|
||||||
this.ClientSize = new System.Drawing.Size(356, 196);
|
this.Controls.Add(this.labelYear);
|
||||||
this.Controls.Add(this.label4);
|
|
||||||
this.Controls.Add(this.linkGit);
|
this.Controls.Add(this.linkGit);
|
||||||
this.Controls.Add(this.linkContact);
|
this.Controls.Add(this.linkContact);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.pictureBoxAi);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
@ -150,23 +172,25 @@
|
|||||||
this.ShowIcon = false;
|
this.ShowIcon = false;
|
||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
this.Text = "About";
|
this.Text = "О программе";
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAi)).EndInit();
|
this.Load += new System.EventHandler(this.FormAbout_Load);
|
||||||
this.panel1.ResumeLayout(false);
|
this.panel1.ResumeLayout(false);
|
||||||
this.panel1.PerformLayout();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAi)).EndInit();
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.PictureBox pictureBoxAi;
|
|
||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.TextBox textBoxInfo;
|
private System.Windows.Forms.PictureBox pictureBoxAi;
|
||||||
|
private System.Windows.Forms.Label lInfo;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private System.Windows.Forms.LinkLabel linkContact;
|
|
||||||
private System.Windows.Forms.LinkLabel linkGit;
|
private System.Windows.Forms.LinkLabel linkGit;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.LinkLabel linkContact;
|
||||||
|
private System.Windows.Forms.Label labelYear;
|
||||||
|
private System.Windows.Forms.Label labelVersion;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -8,17 +8,26 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
// using
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace ClearCache1C
|
namespace ClearCache1C
|
||||||
{
|
{
|
||||||
public partial class FormAbout : Form
|
public partial class FormAbout : Form
|
||||||
{
|
{
|
||||||
public FormAbout()
|
public FormAbout()
|
||||||
{
|
{
|
||||||
StartPosition = FormStartPosition.CenterScreen;
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
private void FormAbout_Load(object sender, EventArgs e)
|
||||||
private void LinkContact_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
{
|
||||||
|
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||||
|
FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
|
||||||
|
string version = fileVersionInfo.ProductVersion;
|
||||||
|
labelVersion.Text = "Версия: " + version;
|
||||||
|
}
|
||||||
|
private void linkContact_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
{
|
{
|
||||||
string url;
|
string url;
|
||||||
if (e.Link.LinkData != null)
|
if (e.Link.LinkData != null)
|
||||||
@ -47,7 +56,6 @@ namespace ClearCache1C
|
|||||||
System.Diagnostics.Process.Start(url);
|
System.Diagnostics.Process.Start(url);
|
||||||
linkGit.LinkVisited = true;
|
linkGit.LinkVisited = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void pictureBoxAi_Click(object sender, EventArgs e)
|
private void pictureBoxAi_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
System.Diagnostics.Process.Start("http://ai-frame.net/");
|
System.Diagnostics.Process.Start("http://ai-frame.net/");
|
460
ClearCache1C/FormMain.Designer.cs
generated
Normal file
@ -0,0 +1,460 @@
|
|||||||
|
namespace ClearCache1C
|
||||||
|
{
|
||||||
|
partial class FormMain
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Обязательная переменная конструктора.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Освободить все используемые ресурсы.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Код, автоматически созданный конструктором форм Windows
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Требуемый метод для поддержки конструктора — не изменяйте
|
||||||
|
/// содержимое этого метода с помощью редактора кода.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
|
||||||
|
this.BaseDataView = new System.Windows.Forms.DataGridView();
|
||||||
|
this.panBtnsBaseGrid = new System.Windows.Forms.Panel();
|
||||||
|
this.cbInfo = new System.Windows.Forms.CheckBox();
|
||||||
|
this.btnRefresh = new System.Windows.Forms.Button();
|
||||||
|
this.btnUnselect = new System.Windows.Forms.Button();
|
||||||
|
this.btnSelectAll = new System.Windows.Forms.Button();
|
||||||
|
this.btnSelectCache = new System.Windows.Forms.Button();
|
||||||
|
this.btnAbout = new System.Windows.Forms.Button();
|
||||||
|
this.panBtnsBaseSubmit = new System.Windows.Forms.Panel();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.cbOptSettingsUser = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cbOptCacheProgram = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cbOptCacheUser = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cbOptAll = new System.Windows.Forms.CheckBox();
|
||||||
|
this.btnClear = new System.Windows.Forms.Button();
|
||||||
|
this.tbInfo = new System.Windows.Forms.TextBox();
|
||||||
|
this.panMain = new System.Windows.Forms.Panel();
|
||||||
|
this.splitMain = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.panSearch = new System.Windows.Forms.Panel();
|
||||||
|
this.tbSearch = new System.Windows.Forms.TextBox();
|
||||||
|
this.lSearch = new System.Windows.Forms.Label();
|
||||||
|
this.btnDropSearch = new System.Windows.Forms.Button();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.BaseDataView)).BeginInit();
|
||||||
|
this.panBtnsBaseGrid.SuspendLayout();
|
||||||
|
this.panBtnsBaseSubmit.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.panMain.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitMain)).BeginInit();
|
||||||
|
this.splitMain.Panel1.SuspendLayout();
|
||||||
|
this.splitMain.Panel2.SuspendLayout();
|
||||||
|
this.splitMain.SuspendLayout();
|
||||||
|
this.panSearch.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// BaseDataView
|
||||||
|
//
|
||||||
|
this.BaseDataView.AllowUserToAddRows = false;
|
||||||
|
this.BaseDataView.AllowUserToDeleteRows = false;
|
||||||
|
this.BaseDataView.AllowUserToOrderColumns = true;
|
||||||
|
this.BaseDataView.AllowUserToResizeRows = false;
|
||||||
|
this.BaseDataView.BackgroundColor = System.Drawing.Color.White;
|
||||||
|
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||||
|
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||||
|
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.Color.Yellow;
|
||||||
|
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.Color.Black;
|
||||||
|
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||||
|
this.BaseDataView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
|
||||||
|
this.BaseDataView.ColumnHeadersHeight = 38;
|
||||||
|
this.BaseDataView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
|
||||||
|
this.BaseDataView.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.BaseDataView.GridColor = System.Drawing.Color.LightGray;
|
||||||
|
this.BaseDataView.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.BaseDataView.MinimumSize = new System.Drawing.Size(400, 0);
|
||||||
|
this.BaseDataView.Name = "BaseDataView";
|
||||||
|
this.BaseDataView.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
|
||||||
|
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||||
|
dataGridViewCellStyle5.BackColor = System.Drawing.Color.White;
|
||||||
|
dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||||
|
dataGridViewCellStyle5.SelectionBackColor = System.Drawing.Color.LightYellow;
|
||||||
|
dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||||
|
this.BaseDataView.RowHeadersDefaultCellStyle = dataGridViewCellStyle5;
|
||||||
|
this.BaseDataView.RowHeadersVisible = false;
|
||||||
|
this.BaseDataView.RowHeadersWidth = 20;
|
||||||
|
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.Color.LightYellow;
|
||||||
|
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
this.BaseDataView.RowsDefaultCellStyle = dataGridViewCellStyle6;
|
||||||
|
this.BaseDataView.RowTemplate.DefaultCellStyle.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.BaseDataView.RowTemplate.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.LightYellow;
|
||||||
|
this.BaseDataView.RowTemplate.DefaultCellStyle.SelectionForeColor = System.Drawing.Color.Black;
|
||||||
|
this.BaseDataView.RowTemplate.Height = 18;
|
||||||
|
this.BaseDataView.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||||
|
this.BaseDataView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
|
this.BaseDataView.ShowEditingIcon = false;
|
||||||
|
this.BaseDataView.Size = new System.Drawing.Size(564, 411);
|
||||||
|
this.BaseDataView.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// panBtnsBaseGrid
|
||||||
|
//
|
||||||
|
this.panBtnsBaseGrid.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.panBtnsBaseGrid.Controls.Add(this.cbInfo);
|
||||||
|
this.panBtnsBaseGrid.Controls.Add(this.btnRefresh);
|
||||||
|
this.panBtnsBaseGrid.Controls.Add(this.btnUnselect);
|
||||||
|
this.panBtnsBaseGrid.Controls.Add(this.btnSelectAll);
|
||||||
|
this.panBtnsBaseGrid.Controls.Add(this.btnSelectCache);
|
||||||
|
this.panBtnsBaseGrid.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panBtnsBaseGrid.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panBtnsBaseGrid.Name = "panBtnsBaseGrid";
|
||||||
|
this.panBtnsBaseGrid.Padding = new System.Windows.Forms.Padding(3, 3, 3, 0);
|
||||||
|
this.panBtnsBaseGrid.Size = new System.Drawing.Size(564, 35);
|
||||||
|
this.panBtnsBaseGrid.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// cbInfo
|
||||||
|
//
|
||||||
|
this.cbInfo.Appearance = System.Windows.Forms.Appearance.Button;
|
||||||
|
this.cbInfo.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.cbInfo.FlatAppearance.BorderSize = 0;
|
||||||
|
this.cbInfo.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ButtonFace;
|
||||||
|
this.cbInfo.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.cbInfo.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.cbInfo.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
|
this.cbInfo.Image = global::ClearCache1C.Properties.Resources.arrows_16_R;
|
||||||
|
this.cbInfo.Location = new System.Drawing.Point(534, 3);
|
||||||
|
this.cbInfo.Name = "cbInfo";
|
||||||
|
this.cbInfo.Size = new System.Drawing.Size(27, 32);
|
||||||
|
this.cbInfo.TabIndex = 7;
|
||||||
|
this.cbInfo.UseVisualStyleBackColor = true;
|
||||||
|
this.cbInfo.CheckedChanged += new System.EventHandler(this.CbInfo_CheckedChanged);
|
||||||
|
//
|
||||||
|
// btnRefresh
|
||||||
|
//
|
||||||
|
this.btnRefresh.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.btnRefresh.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btnRefresh.FlatAppearance.BorderSize = 0;
|
||||||
|
this.btnRefresh.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.btnRefresh.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.btnRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
|
this.btnRefresh.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
this.btnRefresh.Image = global::ClearCache1C.Properties.Resources.icon_refresh_24;
|
||||||
|
this.btnRefresh.Location = new System.Drawing.Point(453, 3);
|
||||||
|
this.btnRefresh.Name = "btnRefresh";
|
||||||
|
this.btnRefresh.Size = new System.Drawing.Size(36, 32);
|
||||||
|
this.btnRefresh.TabIndex = 4;
|
||||||
|
this.btnRefresh.UseVisualStyleBackColor = true;
|
||||||
|
this.btnRefresh.Click += new System.EventHandler(this.BtnRefresh_Click);
|
||||||
|
//
|
||||||
|
// btnUnselect
|
||||||
|
//
|
||||||
|
this.btnUnselect.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.btnUnselect.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btnUnselect.Image = ((System.Drawing.Image)(resources.GetObject("btnUnselect.Image")));
|
||||||
|
this.btnUnselect.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
this.btnUnselect.Location = new System.Drawing.Point(303, 3);
|
||||||
|
this.btnUnselect.Name = "btnUnselect";
|
||||||
|
this.btnUnselect.Size = new System.Drawing.Size(150, 32);
|
||||||
|
this.btnUnselect.TabIndex = 3;
|
||||||
|
this.btnUnselect.Text = "Снять выделение";
|
||||||
|
this.btnUnselect.UseVisualStyleBackColor = true;
|
||||||
|
this.btnUnselect.Click += new System.EventHandler(this.BtnUnselect_Click);
|
||||||
|
//
|
||||||
|
// btnSelectAll
|
||||||
|
//
|
||||||
|
this.btnSelectAll.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.btnSelectAll.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btnSelectAll.Image = global::ClearCache1C.Properties.Resources.icon_select_16;
|
||||||
|
this.btnSelectAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
this.btnSelectAll.Location = new System.Drawing.Point(153, 3);
|
||||||
|
this.btnSelectAll.Name = "btnSelectAll";
|
||||||
|
this.btnSelectAll.Size = new System.Drawing.Size(150, 32);
|
||||||
|
this.btnSelectAll.TabIndex = 2;
|
||||||
|
this.btnSelectAll.Text = "Выделить все";
|
||||||
|
this.btnSelectAll.UseVisualStyleBackColor = true;
|
||||||
|
this.btnSelectAll.Click += new System.EventHandler(this.BtnSelectAll_Click);
|
||||||
|
//
|
||||||
|
// btnSelectCache
|
||||||
|
//
|
||||||
|
this.btnSelectCache.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.btnSelectCache.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btnSelectCache.Image = global::ClearCache1C.Properties.Resources.icon_smart_select_16;
|
||||||
|
this.btnSelectCache.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
this.btnSelectCache.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.btnSelectCache.Name = "btnSelectCache";
|
||||||
|
this.btnSelectCache.Size = new System.Drawing.Size(150, 32);
|
||||||
|
this.btnSelectCache.TabIndex = 1;
|
||||||
|
this.btnSelectCache.Text = "Выделить с кэшем";
|
||||||
|
this.btnSelectCache.UseVisualStyleBackColor = true;
|
||||||
|
this.btnSelectCache.Click += new System.EventHandler(this.BtnSelectCache_Click);
|
||||||
|
//
|
||||||
|
// btnAbout
|
||||||
|
//
|
||||||
|
this.btnAbout.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.btnAbout.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.btnAbout.FlatAppearance.BorderSize = 0;
|
||||||
|
this.btnAbout.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.btnAbout.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.btnAbout.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
|
this.btnAbout.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.btnAbout.ForeColor = System.Drawing.Color.DimGray;
|
||||||
|
this.btnAbout.Location = new System.Drawing.Point(514, 3);
|
||||||
|
this.btnAbout.Name = "btnAbout";
|
||||||
|
this.btnAbout.Size = new System.Drawing.Size(47, 48);
|
||||||
|
this.btnAbout.TabIndex = 14;
|
||||||
|
this.btnAbout.Text = "?";
|
||||||
|
this.btnAbout.UseVisualStyleBackColor = true;
|
||||||
|
this.btnAbout.Click += new System.EventHandler(this.BtnAbout_Click);
|
||||||
|
//
|
||||||
|
// panBtnsBaseSubmit
|
||||||
|
//
|
||||||
|
this.panBtnsBaseSubmit.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.panBtnsBaseSubmit.Controls.Add(this.panel1);
|
||||||
|
this.panBtnsBaseSubmit.Controls.Add(this.btnAbout);
|
||||||
|
this.panBtnsBaseSubmit.Controls.Add(this.cbOptAll);
|
||||||
|
this.panBtnsBaseSubmit.Controls.Add(this.btnClear);
|
||||||
|
this.panBtnsBaseSubmit.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.panBtnsBaseSubmit.Location = new System.Drawing.Point(0, 472);
|
||||||
|
this.panBtnsBaseSubmit.Name = "panBtnsBaseSubmit";
|
||||||
|
this.panBtnsBaseSubmit.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.panBtnsBaseSubmit.Size = new System.Drawing.Size(564, 54);
|
||||||
|
this.panBtnsBaseSubmit.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.Controls.Add(this.cbOptSettingsUser);
|
||||||
|
this.panel1.Controls.Add(this.cbOptCacheProgram);
|
||||||
|
this.panel1.Controls.Add(this.cbOptCacheUser);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(283, 3);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(231, 48);
|
||||||
|
this.panel1.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// cbOptSettingsUser
|
||||||
|
//
|
||||||
|
this.cbOptSettingsUser.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.cbOptSettingsUser.Location = new System.Drawing.Point(0, 34);
|
||||||
|
this.cbOptSettingsUser.Name = "cbOptSettingsUser";
|
||||||
|
this.cbOptSettingsUser.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
|
this.cbOptSettingsUser.Size = new System.Drawing.Size(231, 17);
|
||||||
|
this.cbOptSettingsUser.TabIndex = 13;
|
||||||
|
this.cbOptSettingsUser.Text = "Настройки пользователя";
|
||||||
|
this.cbOptSettingsUser.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbOptCacheProgram
|
||||||
|
//
|
||||||
|
this.cbOptCacheProgram.Checked = true;
|
||||||
|
this.cbOptCacheProgram.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.cbOptCacheProgram.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.cbOptCacheProgram.Location = new System.Drawing.Point(0, 17);
|
||||||
|
this.cbOptCacheProgram.Name = "cbOptCacheProgram";
|
||||||
|
this.cbOptCacheProgram.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
|
this.cbOptCacheProgram.Size = new System.Drawing.Size(231, 17);
|
||||||
|
this.cbOptCacheProgram.TabIndex = 12;
|
||||||
|
this.cbOptCacheProgram.Text = "Кэш приложения";
|
||||||
|
this.cbOptCacheProgram.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbOptCacheUser
|
||||||
|
//
|
||||||
|
this.cbOptCacheUser.Checked = true;
|
||||||
|
this.cbOptCacheUser.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.cbOptCacheUser.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.cbOptCacheUser.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.cbOptCacheUser.Name = "cbOptCacheUser";
|
||||||
|
this.cbOptCacheUser.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
|
this.cbOptCacheUser.Size = new System.Drawing.Size(231, 17);
|
||||||
|
this.cbOptCacheUser.TabIndex = 11;
|
||||||
|
this.cbOptCacheUser.Text = "Кэш пользователя";
|
||||||
|
this.cbOptCacheUser.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbOptAll
|
||||||
|
//
|
||||||
|
this.cbOptAll.AutoSize = true;
|
||||||
|
this.cbOptAll.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.cbOptAll.Location = new System.Drawing.Point(223, 3);
|
||||||
|
this.cbOptAll.Name = "cbOptAll";
|
||||||
|
this.cbOptAll.Padding = new System.Windows.Forms.Padding(15, 0, 0, 0);
|
||||||
|
this.cbOptAll.Size = new System.Drawing.Size(60, 48);
|
||||||
|
this.cbOptAll.TabIndex = 10;
|
||||||
|
this.cbOptAll.Text = "Все";
|
||||||
|
this.cbOptAll.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// btnClear
|
||||||
|
//
|
||||||
|
this.btnClear.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btnClear.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.btnClear.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.btnClear.Name = "btnClear";
|
||||||
|
this.btnClear.Size = new System.Drawing.Size(220, 48);
|
||||||
|
this.btnClear.TabIndex = 9;
|
||||||
|
this.btnClear.Text = "Очистить";
|
||||||
|
this.btnClear.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClear.Click += new System.EventHandler(this.BtnClear_Click);
|
||||||
|
//
|
||||||
|
// tbInfo
|
||||||
|
//
|
||||||
|
this.tbInfo.BackColor = System.Drawing.SystemColors.Info;
|
||||||
|
this.tbInfo.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tbInfo.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.tbInfo.MinimumSize = new System.Drawing.Size(400, 4);
|
||||||
|
this.tbInfo.Multiline = true;
|
||||||
|
this.tbInfo.Name = "tbInfo";
|
||||||
|
this.tbInfo.ReadOnly = true;
|
||||||
|
this.tbInfo.Size = new System.Drawing.Size(400, 100);
|
||||||
|
this.tbInfo.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// panMain
|
||||||
|
//
|
||||||
|
this.panMain.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.panMain.Controls.Add(this.splitMain);
|
||||||
|
this.panMain.Controls.Add(this.panSearch);
|
||||||
|
this.panMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panMain.Location = new System.Drawing.Point(0, 35);
|
||||||
|
this.panMain.Name = "panMain";
|
||||||
|
this.panMain.Size = new System.Drawing.Size(564, 437);
|
||||||
|
this.panMain.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// splitMain
|
||||||
|
//
|
||||||
|
this.splitMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.splitMain.Location = new System.Drawing.Point(0, 26);
|
||||||
|
this.splitMain.MinimumSize = new System.Drawing.Size(550, 0);
|
||||||
|
this.splitMain.Name = "splitMain";
|
||||||
|
//
|
||||||
|
// splitMain.Panel1
|
||||||
|
//
|
||||||
|
this.splitMain.Panel1.AutoScroll = true;
|
||||||
|
this.splitMain.Panel1.Controls.Add(this.BaseDataView);
|
||||||
|
//
|
||||||
|
// splitMain.Panel2
|
||||||
|
//
|
||||||
|
this.splitMain.Panel2.Controls.Add(this.tbInfo);
|
||||||
|
this.splitMain.Panel2Collapsed = true;
|
||||||
|
this.splitMain.Size = new System.Drawing.Size(564, 411);
|
||||||
|
this.splitMain.SplitterDistance = 282;
|
||||||
|
this.splitMain.SplitterWidth = 6;
|
||||||
|
this.splitMain.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// panSearch
|
||||||
|
//
|
||||||
|
this.panSearch.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.panSearch.Controls.Add(this.tbSearch);
|
||||||
|
this.panSearch.Controls.Add(this.lSearch);
|
||||||
|
this.panSearch.Controls.Add(this.btnDropSearch);
|
||||||
|
this.panSearch.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panSearch.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panSearch.Name = "panSearch";
|
||||||
|
this.panSearch.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.panSearch.Size = new System.Drawing.Size(564, 26);
|
||||||
|
this.panSearch.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// tbSearch
|
||||||
|
//
|
||||||
|
this.tbSearch.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tbSearch.Location = new System.Drawing.Point(48, 3);
|
||||||
|
this.tbSearch.Name = "tbSearch";
|
||||||
|
this.tbSearch.Size = new System.Drawing.Size(486, 20);
|
||||||
|
this.tbSearch.TabIndex = 5;
|
||||||
|
this.tbSearch.TextChanged += new System.EventHandler(this.TbSearch_TextChanged);
|
||||||
|
//
|
||||||
|
// lSearch
|
||||||
|
//
|
||||||
|
this.lSearch.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.lSearch.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.lSearch.Name = "lSearch";
|
||||||
|
this.lSearch.Size = new System.Drawing.Size(45, 20);
|
||||||
|
this.lSearch.TabIndex = 1;
|
||||||
|
this.lSearch.Text = "Поиск:";
|
||||||
|
this.lSearch.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// btnDropSearch
|
||||||
|
//
|
||||||
|
this.btnDropSearch.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.btnDropSearch.FlatAppearance.BorderSize = 0;
|
||||||
|
this.btnDropSearch.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.btnDropSearch.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.btnDropSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
|
this.btnDropSearch.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.btnDropSearch.Image = global::ClearCache1C.Properties.Resources.x_mark_16;
|
||||||
|
this.btnDropSearch.Location = new System.Drawing.Point(534, 3);
|
||||||
|
this.btnDropSearch.Name = "btnDropSearch";
|
||||||
|
this.btnDropSearch.Size = new System.Drawing.Size(27, 20);
|
||||||
|
this.btnDropSearch.TabIndex = 6;
|
||||||
|
this.btnDropSearch.UseVisualStyleBackColor = true;
|
||||||
|
this.btnDropSearch.Click += new System.EventHandler(this.BtnDropSearch_Click);
|
||||||
|
//
|
||||||
|
// FormMain
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(564, 526);
|
||||||
|
this.Controls.Add(this.panMain);
|
||||||
|
this.Controls.Add(this.panBtnsBaseSubmit);
|
||||||
|
this.Controls.Add(this.panBtnsBaseGrid);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.KeyPreview = true;
|
||||||
|
this.MinimumSize = new System.Drawing.Size(550, 39);
|
||||||
|
this.Name = "FormMain";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "Чистка кэша 1C";
|
||||||
|
this.Load += new System.EventHandler(this.FormMain_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.BaseDataView)).EndInit();
|
||||||
|
this.panBtnsBaseGrid.ResumeLayout(false);
|
||||||
|
this.panBtnsBaseSubmit.ResumeLayout(false);
|
||||||
|
this.panBtnsBaseSubmit.PerformLayout();
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panMain.ResumeLayout(false);
|
||||||
|
this.splitMain.Panel1.ResumeLayout(false);
|
||||||
|
this.splitMain.Panel2.ResumeLayout(false);
|
||||||
|
this.splitMain.Panel2.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitMain)).EndInit();
|
||||||
|
this.splitMain.ResumeLayout(false);
|
||||||
|
this.panSearch.ResumeLayout(false);
|
||||||
|
this.panSearch.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.DataGridView BaseDataView;
|
||||||
|
private System.Windows.Forms.Button btnSelectCache;
|
||||||
|
private System.Windows.Forms.Button btnSelectAll;
|
||||||
|
private System.Windows.Forms.Button btnUnselect;
|
||||||
|
private System.Windows.Forms.Panel panBtnsBaseGrid;
|
||||||
|
private System.Windows.Forms.Panel panBtnsBaseSubmit;
|
||||||
|
private System.Windows.Forms.Button btnClear;
|
||||||
|
private System.Windows.Forms.CheckBox cbOptSettingsUser;
|
||||||
|
private System.Windows.Forms.CheckBox cbOptCacheProgram;
|
||||||
|
private System.Windows.Forms.CheckBox cbOptCacheUser;
|
||||||
|
private System.Windows.Forms.CheckBox cbOptAll;
|
||||||
|
private System.Windows.Forms.TextBox tbInfo;
|
||||||
|
private System.Windows.Forms.CheckBox cbInfo;
|
||||||
|
private System.Windows.Forms.Panel panMain;
|
||||||
|
private System.Windows.Forms.SplitContainer splitMain;
|
||||||
|
private System.Windows.Forms.Button btnRefresh;
|
||||||
|
private System.Windows.Forms.Panel panSearch;
|
||||||
|
private System.Windows.Forms.TextBox tbSearch;
|
||||||
|
private System.Windows.Forms.Label lSearch;
|
||||||
|
private System.Windows.Forms.Button btnDropSearch;
|
||||||
|
private System.Windows.Forms.Button btnAbout;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
805
ClearCache1C/FormMain.cs
Normal file
@ -0,0 +1,805 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
// Using
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace ClearCache1C
|
||||||
|
{
|
||||||
|
public partial class FormMain : Form
|
||||||
|
{
|
||||||
|
// *********************************************************************************************
|
||||||
|
// LVARS START
|
||||||
|
// Data table
|
||||||
|
private BaseData baseData;
|
||||||
|
private string[] V8iContent;
|
||||||
|
// LVARS END
|
||||||
|
// *********************************************************************************************
|
||||||
|
|
||||||
|
// *********************************************************************************************
|
||||||
|
// TABLE INIT START
|
||||||
|
private void InitDataTable()
|
||||||
|
{
|
||||||
|
baseData = new BaseData();
|
||||||
|
}
|
||||||
|
private void InitDataGridView()
|
||||||
|
{
|
||||||
|
//BindingSource bs = new BindingSource();
|
||||||
|
//bs.DataSource = BaseData;
|
||||||
|
BaseDataView.DataSource = baseData.dataTable;
|
||||||
|
BaseDataView.Columns[baseData.col_Index.ColumnName].Visible = false;
|
||||||
|
BaseDataView.Columns[baseData.col_Id.ColumnName].Visible = false;
|
||||||
|
BaseDataView.Columns[baseData.col_ConnectString.ColumnName].Visible = false;
|
||||||
|
BaseDataView.Columns[baseData.col_LastEnteredUser.ColumnName].Visible = false;
|
||||||
|
|
||||||
|
// Formatting
|
||||||
|
BaseDataView.Columns[baseData.col_SizeCacheUser.ColumnName].DefaultCellStyle.Format = "0.00";
|
||||||
|
BaseDataView.Columns[baseData.col_SizeCacheProgram.ColumnName].DefaultCellStyle.Format = "0.00";
|
||||||
|
BaseDataView.Columns[baseData.col_SizeTotal.ColumnName].DefaultCellStyle.Format = "0.00";
|
||||||
|
|
||||||
|
// Columns formating
|
||||||
|
BaseDataView.Columns[baseData.col_Check.ColumnName].Width = 22;
|
||||||
|
BaseDataView.Columns[baseData.col_Check.ColumnName].ToolTipText = "Выбрано.";
|
||||||
|
|
||||||
|
BaseDataView.Columns[baseData.col_Locked.ColumnName].Visible = false;
|
||||||
|
BaseDataView.Columns[baseData.col_Locked.ColumnName].Width = 22;
|
||||||
|
BaseDataView.Columns[baseData.col_Locked.ColumnName].ToolTipText = "Заблокировано.";
|
||||||
|
|
||||||
|
BaseDataView.Columns[baseData.col_BaseName.ColumnName].Width = 200;
|
||||||
|
BaseDataView.Columns[baseData.col_SizeCacheUser.ColumnName].Width = 55;
|
||||||
|
BaseDataView.Columns[baseData.col_SizeCacheProgram.ColumnName].Width = 55;
|
||||||
|
BaseDataView.Columns[baseData.col_SizeTotal.ColumnName].Width = 55;
|
||||||
|
|
||||||
|
// Events handling
|
||||||
|
BaseDataView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.BaseDataView_CellFormatting);
|
||||||
|
BaseDataView.CellPainting += new DataGridViewCellPaintingEventHandler(this.BaseDataView_CellPainting);
|
||||||
|
//deprecated
|
||||||
|
//BaseDataView.CellValueChanged += new DataGridViewCellEventHandler(this.BaseDataView_ValueChanged);
|
||||||
|
BaseDataView.CellClick += new DataGridViewCellEventHandler(this.BaseDataView_CellClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ReadV8iFile()
|
||||||
|
{
|
||||||
|
string PathV8i = @"%appdata%\1C\1CEStart\ibases.v8i";
|
||||||
|
V8iContent = ReadFileContent(PathV8i);
|
||||||
|
if (V8iContent is null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Не удалось найти файл ibases.v8i по указанному пути: " + PathV8i, "Ошибка чтения файла!",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void LoadBasesToData()
|
||||||
|
{
|
||||||
|
// In case we are doing a reload
|
||||||
|
baseData.dataTable.Rows.Clear();
|
||||||
|
// Check if we have any source to work with
|
||||||
|
if (V8iContent is null)
|
||||||
|
return;
|
||||||
|
// Fill Data
|
||||||
|
int i = 0;
|
||||||
|
var baseRow = new BaseRow();
|
||||||
|
foreach (string line in V8iContent)
|
||||||
|
{
|
||||||
|
/* ---------- EXAMPLE
|
||||||
|
[Торговля(Рабочая)]
|
||||||
|
Connect=Srvr="winserv";Ref="ut2014_work";
|
||||||
|
ID=f8370086-654e-4807-b79b-3f51653c3699
|
||||||
|
OrderInList = 0
|
||||||
|
Folder=/Рабочие
|
||||||
|
OrderInTree = 0
|
||||||
|
External=1
|
||||||
|
ClientConnectionSpeed=Normal
|
||||||
|
App = Auto
|
||||||
|
WA=1
|
||||||
|
Version=8.2
|
||||||
|
DefaultApp=ThickClient
|
||||||
|
-------------------- */
|
||||||
|
if (line.StartsWith("[")) // Start
|
||||||
|
{
|
||||||
|
baseRow.Name = line.Substring(1, line.Length - 2);
|
||||||
|
baseRow.Id = "";
|
||||||
|
baseRow.ConnectString = "";
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("Connect=")) // Connect string
|
||||||
|
{
|
||||||
|
baseRow.ConnectString = line.Substring(8);
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("ID=")) // ID string
|
||||||
|
{
|
||||||
|
baseRow.Id = line.Substring(3);
|
||||||
|
}
|
||||||
|
if (baseRow.Ready)
|
||||||
|
{
|
||||||
|
baseRow.Index = i;
|
||||||
|
|
||||||
|
baseRow.FillSizesInRow();
|
||||||
|
baseRow.GetLockedAndUserInfo();
|
||||||
|
|
||||||
|
object[] row = { baseRow.Check, baseRow.Locked,
|
||||||
|
baseRow.Index, baseRow.Id, baseRow.Name, baseRow.ConnectString, baseRow.LastEnteredUser,
|
||||||
|
baseRow.SizeCacheUser,
|
||||||
|
baseRow.SizeCacheProgram,
|
||||||
|
baseRow.SizeTotal };
|
||||||
|
baseData.dataTable.Rows.Add(row);
|
||||||
|
// Clear
|
||||||
|
baseRow = new BaseRow();
|
||||||
|
baseRow.Check = false;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TABLE INIT END
|
||||||
|
// *********************************************************************************************
|
||||||
|
|
||||||
|
// *********************************************************************************************
|
||||||
|
// EVENTS START
|
||||||
|
public FormMain()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
//Create DataTable with needed columns
|
||||||
|
InitDataTable();
|
||||||
|
InitDataGridView();
|
||||||
|
// Read file into string[] collection
|
||||||
|
ReadV8iFile();
|
||||||
|
// Register keypressed event
|
||||||
|
KeyPress += new KeyPressEventHandler(Control_KeyPressed);
|
||||||
|
// CheckBoxes change
|
||||||
|
cbOptAll.CheckedChanged += new System.EventHandler(this.CbOptClear_CheckedChanged);
|
||||||
|
cbOptCacheUser.CheckedChanged += new System.EventHandler(this.CbOptClear_CheckedChanged);
|
||||||
|
cbOptCacheProgram.CheckedChanged += new System.EventHandler(this.CbOptClear_CheckedChanged);
|
||||||
|
cbOptSettingsUser.CheckedChanged += new System.EventHandler(this.CbOptClear_CheckedChanged);
|
||||||
|
SetToolTips();
|
||||||
|
}
|
||||||
|
private void FormMain_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadBasesToData();
|
||||||
|
//ToggleInfoView();
|
||||||
|
}
|
||||||
|
private void BaseDataView_CellFormatting(object sender, System.Windows.Forms.DataGridViewCellFormattingEventArgs e)
|
||||||
|
{
|
||||||
|
if (BaseDataView.Columns[e.ColumnIndex].DefaultCellStyle.Format.Equals("0.00"))
|
||||||
|
if (e.Value.ToString().Equals("0"))
|
||||||
|
e.CellStyle.Format = "#.##";
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
private void BaseDataView_ValueChanged(object sender, DataGridViewCellEventArgs e)
|
||||||
|
{
|
||||||
|
if (BaseDataView.Rows[e.RowIndex].DefaultCellStyle.BackColor == Color.LightCoral)
|
||||||
|
return;
|
||||||
|
|
||||||
|
bool isChecked = Convert.ToBoolean(BaseDataView.Rows[e.RowIndex].Cells[baseData.col_Check.ColumnName].Value);
|
||||||
|
|
||||||
|
if (isChecked)
|
||||||
|
BaseDataView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.PaleGreen;
|
||||||
|
else
|
||||||
|
BaseDataView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
private void BaseDataView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
|
||||||
|
{
|
||||||
|
if(e.RowIndex >= 0)
|
||||||
|
{
|
||||||
|
bool isLocked = Convert.ToBoolean(BaseDataView.Rows[e.RowIndex].Cells[baseData.col_Locked.ColumnName].Value);
|
||||||
|
if (isLocked)
|
||||||
|
{
|
||||||
|
BaseDataView.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.DarkRed;
|
||||||
|
//BaseDataView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.MistyRose;
|
||||||
|
BaseDataView.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = Color.MistyRose;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isChecked = Convert.ToBoolean(BaseDataView.Rows[e.RowIndex].Cells[baseData.col_Check.ColumnName].Value);
|
||||||
|
if (isChecked && !isLocked)
|
||||||
|
BaseDataView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.PaleGreen;
|
||||||
|
else if (!isLocked)
|
||||||
|
BaseDataView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void BaseDataView_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.RowIndex >= 0)
|
||||||
|
ShowRowInfo();
|
||||||
|
}
|
||||||
|
private void Control_KeyPressed(object sender, KeyPressEventArgs e)
|
||||||
|
{
|
||||||
|
if (tbSearch.Focused)
|
||||||
|
return;
|
||||||
|
// toggle selection in datagrid on spacebar
|
||||||
|
if (e.KeyChar == ' ')
|
||||||
|
BaseDataView.Focus();
|
||||||
|
ToggleCheck_Selected();
|
||||||
|
}
|
||||||
|
private void BtnRefresh_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BaseDataView_Refresh();
|
||||||
|
}
|
||||||
|
private void BtnSelectCache_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleCheck(true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnSelectAll_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleCheck(true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnUnselect_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleCheck(false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggle InfoView
|
||||||
|
private void CbInfo_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleInfoView();
|
||||||
|
}
|
||||||
|
|
||||||
|
// CheckBoxes
|
||||||
|
private void CbOptClear_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!cbOptAll.Checked && cbOptCacheUser.Checked && cbOptCacheProgram.Checked && cbOptSettingsUser.Checked)
|
||||||
|
{
|
||||||
|
cbOptAll.Checked = true;
|
||||||
|
cbOptCacheUser.Checked = false;
|
||||||
|
cbOptCacheProgram.Checked = false;
|
||||||
|
cbOptSettingsUser.Checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
cbOptCacheUser.Enabled = !cbOptAll.Checked;
|
||||||
|
cbOptCacheProgram.Enabled = !cbOptAll.Checked;
|
||||||
|
cbOptSettingsUser.Enabled = !cbOptAll.Checked;
|
||||||
|
}
|
||||||
|
// Search field
|
||||||
|
private void TbSearch_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Searh_ApplyFilter();
|
||||||
|
}
|
||||||
|
private void BtnDropSearch_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
tbSearch.Text = "";
|
||||||
|
Searh_ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
// About
|
||||||
|
private void BtnAbout_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
FormAbout aboutForm = new FormAbout();
|
||||||
|
aboutForm.ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Button Clear Cache
|
||||||
|
private void BtnClear_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
StartClear();
|
||||||
|
}
|
||||||
|
// EVENTS END
|
||||||
|
// *********************************************************************************************
|
||||||
|
|
||||||
|
// *********************************************************************************************
|
||||||
|
// CLASSES START
|
||||||
|
class BaseData
|
||||||
|
{
|
||||||
|
public DataTable dataTable;
|
||||||
|
public DataColumn col_Check;
|
||||||
|
public DataColumn col_Locked;
|
||||||
|
public DataColumn col_Index;
|
||||||
|
public DataColumn col_Id;
|
||||||
|
public DataColumn col_BaseName;
|
||||||
|
public DataColumn col_ConnectString;
|
||||||
|
public DataColumn col_LastEnteredUser;
|
||||||
|
public DataColumn col_SizeCacheUser;
|
||||||
|
public DataColumn col_SizeCacheProgram;
|
||||||
|
public DataColumn col_SizeTotal;
|
||||||
|
public BaseData()
|
||||||
|
{
|
||||||
|
this.dataTable = new DataTable();
|
||||||
|
|
||||||
|
this.col_Check = new DataColumn("В.", typeof(Boolean));
|
||||||
|
this.col_Check.ReadOnly = false;
|
||||||
|
this.col_Locked = new DataColumn("З.", typeof(Boolean));
|
||||||
|
this.col_Locked.ReadOnly = true;
|
||||||
|
|
||||||
|
// String columns
|
||||||
|
this.col_Index = new DataColumn("#", typeof(Int32));
|
||||||
|
this.col_Index.ReadOnly = true;
|
||||||
|
this.col_Id = new DataColumn("ID", typeof(String));
|
||||||
|
this.col_Id.ReadOnly = true;
|
||||||
|
this.col_BaseName = new DataColumn("Наименование базы данных", typeof(String));
|
||||||
|
this.col_BaseName.ReadOnly = true;
|
||||||
|
this.col_ConnectString = new DataColumn("Строка подключения", typeof(String));
|
||||||
|
this.col_ConnectString.ReadOnly = true;
|
||||||
|
this.col_LastEnteredUser = new DataColumn("LastUser", typeof(String));
|
||||||
|
this.col_LastEnteredUser.ReadOnly = true;
|
||||||
|
// Numeric columns
|
||||||
|
this.col_SizeCacheUser = new DataColumn("Кэш пользов.", typeof(Decimal));
|
||||||
|
this.col_SizeCacheUser.ReadOnly = true;
|
||||||
|
this.col_SizeCacheProgram = new DataColumn("Кэш прилож.", typeof(Decimal));
|
||||||
|
this.col_SizeCacheProgram.ReadOnly = true;
|
||||||
|
this.col_SizeTotal = new DataColumn("Всего", typeof(Decimal));
|
||||||
|
this.col_SizeTotal.ReadOnly = true;
|
||||||
|
|
||||||
|
|
||||||
|
DataColumn[] dataColumns = {
|
||||||
|
col_Check,
|
||||||
|
col_Locked,
|
||||||
|
col_Index,
|
||||||
|
col_Id,
|
||||||
|
col_BaseName,
|
||||||
|
col_ConnectString,
|
||||||
|
col_LastEnteredUser,
|
||||||
|
col_SizeCacheUser,
|
||||||
|
col_SizeCacheProgram,
|
||||||
|
col_SizeTotal
|
||||||
|
};
|
||||||
|
this.dataTable.Columns.AddRange(dataColumns);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class BaseRow
|
||||||
|
{
|
||||||
|
public bool Check;
|
||||||
|
public bool Locked;
|
||||||
|
public int Index;
|
||||||
|
public string Name;
|
||||||
|
public string Id;
|
||||||
|
public string ConnectString;
|
||||||
|
public string LastEnteredUser;
|
||||||
|
public decimal SizeCacheProgram;
|
||||||
|
public decimal SizeCacheUser;
|
||||||
|
public decimal SizeTotal;
|
||||||
|
|
||||||
|
// for separate usage
|
||||||
|
public List<string> rootFolders;
|
||||||
|
public List<string> localCacheFolders;
|
||||||
|
public List<string> userCacheFolders;
|
||||||
|
|
||||||
|
public bool Ready => (!String.IsNullOrEmpty(this.Name) && !String.IsNullOrEmpty(this.Id) && !String.IsNullOrEmpty(this.ConnectString));
|
||||||
|
|
||||||
|
public void FillSizesInRow()
|
||||||
|
{
|
||||||
|
string basePathLocal = Environment.ExpandEnvironmentVariables(@"%LOCALAPPDATA%\1C\1cv8\" + this.Id);
|
||||||
|
string basePathRoaming = Environment.ExpandEnvironmentVariables(@"%APPDATA%\1C\1cv8\" + this.Id);
|
||||||
|
this.rootFolders = new List<string>();
|
||||||
|
this.localCacheFolders = new List<string>();
|
||||||
|
this.userCacheFolders = new List<string>();
|
||||||
|
if (Directory.Exists(basePathLocal))
|
||||||
|
{
|
||||||
|
rootFolders.Add(basePathLocal);
|
||||||
|
string[] filterSearch = { "Config", "ConfigSave", "SICache", "vrs-cache" };
|
||||||
|
localCacheFolders.AddRange(GetFoldersById(basePathLocal, filterSearch));
|
||||||
|
if (localCacheFolders.Count() > 0)
|
||||||
|
foreach (string _Path in localCacheFolders)
|
||||||
|
this.SizeCacheProgram += DirSize(new DirectoryInfo(_Path), "");
|
||||||
|
}
|
||||||
|
if (Directory.Exists(basePathRoaming))
|
||||||
|
{
|
||||||
|
rootFolders.Add(basePathRoaming);
|
||||||
|
string[] filterSearch = { "vrs-cache" };
|
||||||
|
userCacheFolders.AddRange(GetFoldersById(basePathRoaming, filterSearch));
|
||||||
|
if (userCacheFolders.Count() > 0)
|
||||||
|
foreach (string _Path in userCacheFolders)
|
||||||
|
this.SizeCacheUser += DirSize(new DirectoryInfo(_Path), "");
|
||||||
|
}
|
||||||
|
this.SizeTotal += DirSize(new DirectoryInfo(basePathLocal), "");
|
||||||
|
this.SizeTotal += DirSize(new DirectoryInfo(basePathRoaming), "");
|
||||||
|
|
||||||
|
// Format to Mb
|
||||||
|
this.SizeCacheProgram = this.SizeCacheProgram / 1024 / 1024;
|
||||||
|
this.SizeCacheUser = this.SizeCacheUser / 1024 / 1024;
|
||||||
|
this.SizeTotal = this.SizeTotal / 1024 / 1024;
|
||||||
|
}
|
||||||
|
public void GetLockedAndUserInfo()
|
||||||
|
{
|
||||||
|
string basePathRoaming = Environment.ExpandEnvironmentVariables(@"%APPDATA%\1C\1cv8\" + this.Id);
|
||||||
|
if (Directory.Exists(basePathRoaming))
|
||||||
|
{
|
||||||
|
// Locked then file exists (1Cv8.lck)
|
||||||
|
this.Locked = File.Exists(basePathRoaming + "\\1Cv8.lck");
|
||||||
|
// Last entered user info (def.usr)
|
||||||
|
this.LastEnteredUser = "";
|
||||||
|
if (File.Exists(basePathRoaming + "\\def.usr"))
|
||||||
|
{
|
||||||
|
string[] lines = ReadFileContent(basePathRoaming + "\\def.usr");
|
||||||
|
if (lines != null)
|
||||||
|
if (lines.Count() > 0)
|
||||||
|
this.LastEnteredUser = lines[0].Substring(2, lines[0].Length - 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private string[] GetFoldersById(string _Path, string[] _Filter)
|
||||||
|
{
|
||||||
|
List<string> foundFolders = new List<string>();
|
||||||
|
foreach (string f in _Filter)
|
||||||
|
{
|
||||||
|
foundFolders.AddRange(Directory.GetDirectories(_Path, f, SearchOption.AllDirectories).ToList());
|
||||||
|
}
|
||||||
|
return foundFolders.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class DeleteResults
|
||||||
|
{
|
||||||
|
public bool isError;
|
||||||
|
public double sizeDeleted;
|
||||||
|
public List<string> listErrors;
|
||||||
|
}
|
||||||
|
// CLASSES END
|
||||||
|
// *********************************************************************************************
|
||||||
|
|
||||||
|
// *********************************************************************************************
|
||||||
|
// CLEAR START
|
||||||
|
private void StartClear()
|
||||||
|
{
|
||||||
|
var checkedRows = from DataGridViewRow row in BaseDataView.Rows
|
||||||
|
where Convert.ToBoolean(row.Cells[baseData.col_Check.ColumnName].Value) == true
|
||||||
|
select row;
|
||||||
|
if (checkedRows.Count() == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Ничего не выбрано.", "Meh...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!cbOptAll.Checked && !cbOptCacheUser.Checked && !cbOptCacheProgram.Checked && !cbOptSettingsUser.Checked)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Не указано, что очищать.", "Meh...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cbOptAll.Checked || cbOptSettingsUser.Checked)
|
||||||
|
{
|
||||||
|
DialogResult dialogResult = MessageBox.Show("Это удалит все локальные настройки пользователя в выбранных базах. \r\nВы уверены, что хотите этого?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||||
|
if (dialogResult != DialogResult.Yes)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int successfullyDeleted = 0;
|
||||||
|
int errorsOnDelete = 0;
|
||||||
|
double totalSizeDeleted = 0;
|
||||||
|
|
||||||
|
List<string> listSuccess = new List<string>();
|
||||||
|
List<string> listError = new List<string>();
|
||||||
|
List<string> listExceptions = new List<string>();
|
||||||
|
|
||||||
|
foreach (DataGridViewRow row in checkedRows)
|
||||||
|
{
|
||||||
|
BaseRow baseRow = new BaseRow();
|
||||||
|
baseRow.Id = row.Cells[baseData.col_Id.ColumnName].Value.ToString();
|
||||||
|
baseRow.Name = row.Cells[baseData.col_BaseName.ColumnName].Value.ToString();
|
||||||
|
baseRow.ConnectString = row.Cells[baseData.col_ConnectString.ColumnName].Value.ToString();
|
||||||
|
|
||||||
|
baseRow.FillSizesInRow();
|
||||||
|
baseRow.GetLockedAndUserInfo();
|
||||||
|
|
||||||
|
if (cbOptAll.Checked) // Delete All
|
||||||
|
{
|
||||||
|
DeleteResults deleteResults = DeleteFoldersContent(baseRow.rootFolders, "");
|
||||||
|
if (!deleteResults.isError)
|
||||||
|
{
|
||||||
|
successfullyDeleted++;
|
||||||
|
listSuccess.Add("[Полное] - " + baseRow.Name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
errorsOnDelete++;
|
||||||
|
listError.Add("[Полное] - " + baseRow.Name);
|
||||||
|
listExceptions.AddRange(deleteResults.listErrors);
|
||||||
|
}
|
||||||
|
totalSizeDeleted += deleteResults.sizeDeleted;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cbOptCacheProgram.Checked) // Delete ProgramCache
|
||||||
|
{
|
||||||
|
DeleteResults deleteResults = DeleteFoldersContent(baseRow.localCacheFolders, "");
|
||||||
|
if (!deleteResults.isError)
|
||||||
|
{
|
||||||
|
successfullyDeleted++;
|
||||||
|
listSuccess.Add("[Кэш приложения] - " + baseRow.Name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
errorsOnDelete++;
|
||||||
|
listError.Add("[Кэш приложения] - " + baseRow.Name);
|
||||||
|
listExceptions.AddRange(deleteResults.listErrors);
|
||||||
|
}
|
||||||
|
totalSizeDeleted += deleteResults.sizeDeleted;
|
||||||
|
}
|
||||||
|
if (cbOptCacheUser.Checked) // Delete UserCache
|
||||||
|
{
|
||||||
|
DeleteResults deleteResults = DeleteFoldersContent(baseRow.userCacheFolders, "");
|
||||||
|
if (!deleteResults.isError)
|
||||||
|
{
|
||||||
|
successfullyDeleted++;
|
||||||
|
listSuccess.Add("[Кэш пользователя] - " + baseRow.Name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
errorsOnDelete++;
|
||||||
|
listError.Add("[Кэш пользователя] - " + baseRow.Name);
|
||||||
|
listExceptions.AddRange(deleteResults.listErrors);
|
||||||
|
}
|
||||||
|
totalSizeDeleted += deleteResults.sizeDeleted;
|
||||||
|
}
|
||||||
|
if (cbOptSettingsUser.Checked) // Delete UserSettings
|
||||||
|
{
|
||||||
|
DeleteResults deleteResults = DeleteFoldersContent(baseRow.rootFolders, "*.pfl");
|
||||||
|
if (!deleteResults.isError)
|
||||||
|
{
|
||||||
|
successfullyDeleted++;
|
||||||
|
listSuccess.Add("[Настройки пользователя] - " + baseRow.Name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
errorsOnDelete++;
|
||||||
|
listError.Add("[Настройки пользователя] - " + baseRow.Name);
|
||||||
|
listExceptions.AddRange(deleteResults.listErrors);
|
||||||
|
}
|
||||||
|
totalSizeDeleted += deleteResults.sizeDeleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show results of operation
|
||||||
|
FormResults resultForm = new FormResults();
|
||||||
|
resultForm.SetResults(successfullyDeleted, errorsOnDelete, totalSizeDeleted,
|
||||||
|
listSuccess, listError, listExceptions);
|
||||||
|
resultForm.ShowDialog();
|
||||||
|
|
||||||
|
BaseDataView_Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private DeleteResults DeleteFoldersContent(List<string> ListOfFolders, string filterMask)
|
||||||
|
{
|
||||||
|
DeleteResults deleteResults = new DeleteResults();
|
||||||
|
|
||||||
|
deleteResults.isError = false;
|
||||||
|
deleteResults.sizeDeleted = 0;
|
||||||
|
deleteResults.listErrors = new List<string>();
|
||||||
|
foreach (string folderPath in ListOfFolders)
|
||||||
|
{
|
||||||
|
double folderSize = Convert.ToDouble(DirSize(new DirectoryInfo(folderPath), filterMask));
|
||||||
|
|
||||||
|
if (filterMask.Equals("")) // Clear by dirs
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Directory.Delete(folderPath, true);
|
||||||
|
deleteResults.sizeDeleted += folderSize;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
deleteResults.isError = true;
|
||||||
|
deleteResults.listErrors.Add(e.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else // Clear by Files
|
||||||
|
{
|
||||||
|
var filesFound = Directory.EnumerateFiles(folderPath, filterMask, SearchOption.AllDirectories);
|
||||||
|
foreach (var fi in filesFound)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
new FileInfo(fi).Delete();
|
||||||
|
deleteResults.sizeDeleted += folderSize;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
deleteResults.isError = true;
|
||||||
|
deleteResults.listErrors.Add(e.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteResults.sizeDeleted = deleteResults.sizeDeleted / 1024 / 1024;
|
||||||
|
return deleteResults;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CLEAR END
|
||||||
|
// *********************************************************************************************
|
||||||
|
|
||||||
|
private void Searh_ApplyFilter()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string queryString = String.Format("[{1}] LIKE '%{0}%' OR [{2}] LIKE '%{0}%'",
|
||||||
|
EscapeLikeValue(tbSearch.Text), baseData.col_BaseName.ColumnName, baseData.col_ConnectString.ColumnName);
|
||||||
|
baseData.dataTable.DefaultView.RowFilter = queryString;
|
||||||
|
}
|
||||||
|
catch { };
|
||||||
|
}
|
||||||
|
private void ToggleInfoView()
|
||||||
|
{
|
||||||
|
int currentSize = Size.Width;
|
||||||
|
int expandWidth = new int[] { tbInfo.MinimumSize.Width, tbInfo.Size.Width }.Max() + 20;
|
||||||
|
int collpaseWidth = splitMain.SplitterDistance + splitMain.SplitterWidth;
|
||||||
|
|
||||||
|
splitMain.Panel2Collapsed = !cbInfo.Checked;
|
||||||
|
cbInfo.Image = cbInfo.Checked ? Properties.Resources.arrows_16_L: Properties.Resources.arrows_16_R;
|
||||||
|
|
||||||
|
int widthInfo = tbInfo.Size.Width;
|
||||||
|
// Adapt sizing
|
||||||
|
if (WindowState != FormWindowState.Maximized)
|
||||||
|
{
|
||||||
|
if(cbInfo.Checked) // Show
|
||||||
|
{
|
||||||
|
Size = new System.Drawing.Size(currentSize + expandWidth, Size.Height);
|
||||||
|
splitMain.SplitterDistance = currentSize - splitMain.SplitterWidth;
|
||||||
|
ShowRowInfo();
|
||||||
|
}
|
||||||
|
else // Hide
|
||||||
|
{
|
||||||
|
Size = new System.Drawing.Size(collpaseWidth, Size.Height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void ShowRowInfo()
|
||||||
|
{
|
||||||
|
if (splitMain.Panel2Collapsed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
DataGridViewRow row = BaseDataView.CurrentRow;
|
||||||
|
|
||||||
|
tbInfo.ResetText();
|
||||||
|
if (row is null)
|
||||||
|
return;
|
||||||
|
BaseRow baseRow = new BaseRow();
|
||||||
|
baseRow.Id = row.Cells[baseData.col_Id.ColumnName].Value.ToString();
|
||||||
|
baseRow.FillSizesInRow();
|
||||||
|
baseRow.GetLockedAndUserInfo();
|
||||||
|
|
||||||
|
tbInfo.AppendText("--- Информация о базе ---");
|
||||||
|
tbInfo.AppendText("\r\nИмя: " + row.Cells[baseData.col_BaseName.ColumnName].Value);
|
||||||
|
tbInfo.AppendText("\r\nID: " + row.Cells[baseData.col_Id.ColumnName].Value);
|
||||||
|
tbInfo.AppendText("\r\nСтрока подключения: " + row.Cells[baseData.col_ConnectString.ColumnName].Value);
|
||||||
|
|
||||||
|
tbInfo.AppendText("\r\n");
|
||||||
|
tbInfo.AppendText("\r\nЗаблокировано (база открыта?): " + (baseRow.Locked ? "Да" : "Нет"));
|
||||||
|
tbInfo.AppendText("\r\nИмя пользователя при входе: " + (String.IsNullOrEmpty(baseRow.LastEnteredUser) ? "нет данных" : baseRow.LastEnteredUser));
|
||||||
|
|
||||||
|
double _SizeCacheUser = Convert.ToDouble(row.Cells[baseData.col_SizeCacheUser.ColumnName].Value);
|
||||||
|
double _SizeCacheProgram = Convert.ToDouble(row.Cells[baseData.col_SizeCacheProgram.ColumnName].Value);
|
||||||
|
double _SizeTotal = Convert.ToDouble(row.Cells[baseData.col_SizeTotal.ColumnName].Value);
|
||||||
|
tbInfo.AppendText("\r\n");
|
||||||
|
tbInfo.AppendText("\r\nКэш пользователя: " + baseRow.SizeCacheUser.ToString("0.00") + " Mb");
|
||||||
|
tbInfo.AppendText("\r\nКэш приложения: " + baseRow.SizeCacheProgram.ToString("0.00") + " Mb");
|
||||||
|
tbInfo.AppendText("\r\nРазмер всего: " + baseRow.SizeTotal.ToString("0.00") + " Mb");
|
||||||
|
|
||||||
|
tbInfo.AppendText("\r\n");
|
||||||
|
tbInfo.AppendText("\r\nКорневые каталоги: ");
|
||||||
|
foreach (string s in baseRow.rootFolders)
|
||||||
|
tbInfo.AppendText("\r\n > " + s);
|
||||||
|
|
||||||
|
tbInfo.AppendText("\r\n");
|
||||||
|
tbInfo.AppendText("\r\nКаталоги кэша приложения: ");
|
||||||
|
foreach (string s in baseRow.localCacheFolders)
|
||||||
|
tbInfo.AppendText("\r\n > " + s);
|
||||||
|
|
||||||
|
tbInfo.AppendText("\r\n");
|
||||||
|
tbInfo.AppendText("\r\nКаталоги кэша пользователя: ");
|
||||||
|
foreach (string s in baseRow.userCacheFolders)
|
||||||
|
tbInfo.AppendText("\r\n > " + s);
|
||||||
|
|
||||||
|
tbInfo.AppendText("\r\n");
|
||||||
|
}
|
||||||
|
private void BaseDataView_Refresh()
|
||||||
|
{
|
||||||
|
ReadV8iFile();
|
||||||
|
LoadBasesToData();
|
||||||
|
ShowRowInfo();
|
||||||
|
}
|
||||||
|
private static string[] ReadFileContent(string pathToFile)
|
||||||
|
{
|
||||||
|
string fullPathToFile = Environment.ExpandEnvironmentVariables(pathToFile);
|
||||||
|
if (!File.Exists(fullPathToFile))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return System.IO.File.ReadAllLines(fullPathToFile);
|
||||||
|
}
|
||||||
|
private static long DirSize(DirectoryInfo d, string filterMask)
|
||||||
|
{
|
||||||
|
long size = 0;
|
||||||
|
if (filterMask.Equals(""))
|
||||||
|
filterMask = "*.*";
|
||||||
|
// Add file sizes.
|
||||||
|
if (!Directory.Exists(d.FullName))
|
||||||
|
return size;
|
||||||
|
var filesFound = Directory.EnumerateFiles(d.FullName, filterMask, SearchOption.AllDirectories);
|
||||||
|
foreach (var fi in filesFound)
|
||||||
|
size += new FileInfo(fi).Length;
|
||||||
|
/*
|
||||||
|
FileInfo[] fis = d.GetFiles();
|
||||||
|
foreach (FileInfo fi in fis)
|
||||||
|
{
|
||||||
|
size += fi.Length;
|
||||||
|
}
|
||||||
|
// Add subdirectory sizes.
|
||||||
|
DirectoryInfo[] dis = d.GetDirectories();
|
||||||
|
foreach (DirectoryInfo di in dis)
|
||||||
|
{
|
||||||
|
size += DirSize(di, filterMask);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
private void ToggleCheck(bool checkState, bool cacheOnly)
|
||||||
|
{
|
||||||
|
foreach (DataGridViewRow row in BaseDataView.Rows)
|
||||||
|
{
|
||||||
|
if (checkState && cacheOnly) // Select only cache
|
||||||
|
row.Cells[baseData.col_Check.ColumnName].Value = Convert.ToDecimal(row.Cells[baseData.col_SizeCacheUser.ColumnName].Value) > 0;
|
||||||
|
else if (!cacheOnly) // Select/deselect all
|
||||||
|
row.Cells[baseData.col_Check.ColumnName].Value = checkState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void ToggleCheck_Selected()
|
||||||
|
{
|
||||||
|
var selectedRows = BaseDataView.SelectedRows;
|
||||||
|
bool nextState = true;
|
||||||
|
// Check the number of Cheked rows. If equals all - uncheck them
|
||||||
|
int checkedRows = 0;
|
||||||
|
foreach (DataGridViewRow row in selectedRows)
|
||||||
|
if (Convert.ToBoolean(row.Cells[baseData.col_Check.ColumnName].Value))
|
||||||
|
checkedRows++;
|
||||||
|
if (checkedRows == selectedRows.Count)
|
||||||
|
nextState = false;
|
||||||
|
// do the stuff
|
||||||
|
foreach (DataGridViewRow row in selectedRows)
|
||||||
|
row.Cells[baseData.col_Check.ColumnName].Value = nextState;
|
||||||
|
}
|
||||||
|
private static string EscapeLikeValue(string valueWithoutWildcards)
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int i = 0; i < valueWithoutWildcards.Length; i++)
|
||||||
|
{
|
||||||
|
char c = valueWithoutWildcards[i];
|
||||||
|
if (c == '*' || c == '%' || c == '[' || c == ']')
|
||||||
|
sb.Append("[").Append(c).Append("]");
|
||||||
|
else if (c == '\'')
|
||||||
|
sb.Append("''");
|
||||||
|
else
|
||||||
|
sb.Append(c);
|
||||||
|
}
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
private void SetToolTips()
|
||||||
|
{
|
||||||
|
ToolTip toolTip = new ToolTip();
|
||||||
|
|
||||||
|
string ClearCacheUser_ToolTip = "Для выбранных баз - удаляет только файлы кэша пользователя.\r\nПользовательские настройки сохраняются.";
|
||||||
|
string ClearCacheProgram_ToolTip = "Для выбранных баз - удаляет только файлы кэша приложения.\r\nПользовательские настройки сохраняются.";
|
||||||
|
string ClearSettingsUser_ToolTip = "Для выбранных баз - удаляет только файлы настроек пользователя.\r\nФайлы кэша сохраняются.";
|
||||||
|
string PurgeAll_ToolTip = "Для выбранных баз - удаляет все найденные в корневых каталогах файлы.\r\nПользовательские настройки будут удалены.";
|
||||||
|
string SmartSelect_ToolTip = "Выбрать только базы, в которых есть локальный кэш пользователя.";
|
||||||
|
string SelectAll_ToolTip = "Выбрать все базы в списке.";
|
||||||
|
string RemoveSelection_ToolTip = "Убрать выбор со всех баз в списке.";
|
||||||
|
|
||||||
|
string Search_ToolTip = "Поиск по совпадению в имени базы или в строке подключения.";
|
||||||
|
string DropSearch_ToolTip = "Сбросить поиск.";
|
||||||
|
string Refresh_ToolTip = "Перезаполнить список баз.";
|
||||||
|
string Expand_ToolTip = "Показать\\Скрыть окно информации о выделенной строке.";
|
||||||
|
|
||||||
|
string About_ToolTip = "О программе...";
|
||||||
|
|
||||||
|
toolTip.SetToolTip(cbOptCacheUser, ClearCacheUser_ToolTip);
|
||||||
|
toolTip.SetToolTip(cbOptCacheProgram, ClearCacheProgram_ToolTip);
|
||||||
|
toolTip.SetToolTip(cbOptSettingsUser, ClearSettingsUser_ToolTip);
|
||||||
|
toolTip.SetToolTip(cbOptAll, PurgeAll_ToolTip);
|
||||||
|
toolTip.SetToolTip(btnSelectCache, SmartSelect_ToolTip);
|
||||||
|
toolTip.SetToolTip(btnSelectAll, SelectAll_ToolTip);
|
||||||
|
toolTip.SetToolTip(btnUnselect, RemoveSelection_ToolTip);
|
||||||
|
|
||||||
|
toolTip.SetToolTip(tbSearch, Search_ToolTip);
|
||||||
|
toolTip.SetToolTip(btnDropSearch, DropSearch_ToolTip);
|
||||||
|
toolTip.SetToolTip(btnRefresh, Refresh_ToolTip);
|
||||||
|
toolTip.SetToolTip(cbInfo, Expand_ToolTip);
|
||||||
|
|
||||||
|
toolTip.SetToolTip(btnAbout, About_ToolTip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -118,27 +118,15 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="btnRemoveSelection.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btnUnselect.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGeYUxB9wAAAO1pQ0NQUGhv
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGeYUxB9wAAAO1pQ0NQUGhv
|
||||||
dG9zaG9wIElDQyBwcm9maWxlAAAoz2NgYJzh6OLkyiTAwJCbV1LkHuQYGREZpcB+noGNgZkBDBKTiwsc
|
dG9zaG9wIElDQyBwcm9maWxlAAAoz2NgYJzh6OLkyiTAwJCbV1LkHuQYGREZpcB+noGNgZkBDBKTiwsc
|
||||||
AwJ8QOy8/LxUBlTAyMDw7RqIZGC4rAsyi4E0wJpcUFQCpA8AsVFKanEykP4CxJnlJQVAccYEIFskKRvM
|
AwJ8QOy8/LxUBlTAyMDw7RqIZGC4rAsyi4E0wJpcUFQCpA8AsVFKanEykP4CxJnlJQVAccYEIFskKRvM
|
||||||
BqkTyQ4JcgayO4BsvpLUCpAYg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoK
|
BqkTyQ4JcgayO4BsvpLUCpAYg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoK
|
||||||
UC3UDhDgdy9KrFRwT8zNTVQw0jNioDoAhSWE9TkEHEaMYucRYgiQXFpUBgtPJmMGBgBLGzgw6GaaaQAA
|
UC3UDhDgdy9KrFRwT8zNTVQw0jNioDoAhSWE9TkEHEaMYucRYgiQXFpUBgtPJmMGBgBLGzgw6GaaaQAA
|
||||||
AAlwSFlzAAALEwAACxMBAJqcGAAAACBJREFUOE9jAIL/FGKG/+SCUQNGDQCBUQOoaQD5mOE/ALwPSOI5
|
AAlwSFlzAAALEwAACxMBAJqcGAAAACJJREFUOE9jUFBQ+E8JBhtALhg1YNQAEBg1gJoGkI8V/gMAfgFf
|
||||||
CblOAAAAAElFTkSuQmCC
|
Yj42DjoAAAAASUVORK5CYII=
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSelectAll.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGeYUxB9wAAAO1pQ0NQUGhv
|
|
||||||
dG9zaG9wIElDQyBwcm9maWxlAAAoz2NgYJzh6OLkyiTAwJCbV1LkHuQYGREZpcB+noGNgZkBDBKTiwsc
|
|
||||||
AwJ8QOy8/LxUBlTAyMDw7RqIZGC4rAsyi4E0wJpcUFQCpA8AsVFKanEykP4CxJnlJQVAccYEIFskKRvM
|
|
||||||
BqkTyQ4JcgayO4BsvpLUCpAYg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoK
|
|
||||||
UC3UDhDgdy9KrFRwT8zNTVQw0jNioDoAhSWE9TkEHEaMYucRYgiQXFpUBgtPJmMGBgBLGzgw6GaaaQAA
|
|
||||||
AAlwSFlzAAALEwAACxMBAJqcGAAAAFxJREFUOE/VjEsOgDAIBVlx/xujTYYqWPzUjU7yFjxgZMVeRmyW
|
|
||||||
Hwp4YHoo8GfPrjsYmTa8z3vmYOtxqr5BVx/nZOiH1hBVZRthX5p7KtiPD66eG6eCO3xIMB+xBcMg0V0g
|
|
||||||
dEfYAAAAAElFTkSuQmCC
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
@ -1,6 +1,6 @@
|
|||||||
namespace ClearCache1C
|
namespace ClearCache1C
|
||||||
{
|
{
|
||||||
partial class FormResult
|
partial class FormResults
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required designer variable.
|
/// Required designer variable.
|
||||||
@ -28,32 +28,36 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.InfoResult = new System.Windows.Forms.TextBox();
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormResults));
|
||||||
|
this.tbResults = new System.Windows.Forms.TextBox();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// InfoResult
|
// tbResults
|
||||||
//
|
//
|
||||||
this.InfoResult.BackColor = System.Drawing.SystemColors.Info;
|
this.tbResults.BackColor = System.Drawing.SystemColors.Info;
|
||||||
this.InfoResult.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.tbResults.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.InfoResult.Location = new System.Drawing.Point(0, 0);
|
this.tbResults.Location = new System.Drawing.Point(0, 0);
|
||||||
this.InfoResult.Multiline = true;
|
this.tbResults.Multiline = true;
|
||||||
this.InfoResult.Name = "InfoResult";
|
this.tbResults.Name = "tbResults";
|
||||||
this.InfoResult.ReadOnly = true;
|
this.tbResults.ReadOnly = true;
|
||||||
this.InfoResult.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
this.tbResults.Size = new System.Drawing.Size(454, 499);
|
||||||
this.InfoResult.Size = new System.Drawing.Size(464, 461);
|
this.tbResults.TabIndex = 0;
|
||||||
this.InfoResult.TabIndex = 0;
|
|
||||||
//
|
//
|
||||||
// FormResult
|
// FormResults
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(464, 461);
|
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
this.Controls.Add(this.InfoResult);
|
this.ClientSize = new System.Drawing.Size(454, 499);
|
||||||
this.Name = "FormResult";
|
this.Controls.Add(this.tbResults);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "FormResults";
|
||||||
this.ShowIcon = false;
|
this.ShowIcon = false;
|
||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
this.Text = "Результат удаления";
|
this.Text = "Результат удаления";
|
||||||
this.Load += new System.EventHandler(this.FormResult_Load);
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
@ -61,6 +65,6 @@
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.TextBox InfoResult;
|
private System.Windows.Forms.TextBox tbResults;
|
||||||
}
|
}
|
||||||
}
|
}
|
44
ClearCache1C/FormResults.cs
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ClearCache1C
|
||||||
|
{
|
||||||
|
public partial class FormResults : Form
|
||||||
|
{
|
||||||
|
public FormResults()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetResults(int successfullyDeleted, int errorsOnDelete, double totalSizeDeleted,
|
||||||
|
List<string> listSuccess, List<string> listError, List<string> listExceptions)
|
||||||
|
{
|
||||||
|
tbResults.ResetText();
|
||||||
|
tbResults.AppendText("--- Итоги ---");
|
||||||
|
tbResults.AppendText("\r\nВыполнено успешно: " + successfullyDeleted);
|
||||||
|
tbResults.AppendText("\r\nВыполнено с ошибками: " + errorsOnDelete);
|
||||||
|
tbResults.AppendText("\r\nВсего удалено: " + totalSizeDeleted.ToString("0.00") + " Mb");
|
||||||
|
tbResults.AppendText("\r\n");
|
||||||
|
tbResults.AppendText("\r\n--- Список обработанных успешно ---");
|
||||||
|
foreach (string s in listSuccess)
|
||||||
|
tbResults.AppendText("\r\n > " + s);
|
||||||
|
tbResults.AppendText("\r\n");
|
||||||
|
tbResults.AppendText("\r\n--- Список обработанных с ошибками ---");
|
||||||
|
foreach (string s in listError)
|
||||||
|
{
|
||||||
|
tbResults.AppendText("\r\n > " + s);
|
||||||
|
}
|
||||||
|
tbResults.AppendText("\r\n");
|
||||||
|
tbResults.AppendText("\r\n--- Лог ошибок ---");
|
||||||
|
foreach (string s in listExceptions)
|
||||||
|
tbResults.AppendText("\r\n > " + s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
418
ClearCache1C/FormResults.resx
Normal file
@ -0,0 +1,418 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
|
||||||
|
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMW
|
||||||
|
IRATFiFAFBciIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKSoyMCosNDAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMW
|
||||||
|
If8TFiH/ExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMWIf8TFiGAAAAAAAAA
|
||||||
|
AAAAAAAAExYhEBMWIc8UFyH/Fhkj7xgbJTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKjKfKiwz/ywu
|
||||||
|
Nf8uMDePAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMW
|
||||||
|
If8TFiH/ExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMWIf8TFiH/ExYh/xMW
|
||||||
|
If8TFiFgAAAAAAAAAAATFiEQExYhzxQXIf8WGSP/GBsl/xodJ+8cHygwAAAAAAAAAAAAAAAAAAAAACgq
|
||||||
|
Mp8qLDP/LC41/y4wN/8wMjj/MjQ6gAAAAAAAAAAAAAAAAAAAAAAAAAAAFBci/xQXIv8UFyL/FBci/xQX
|
||||||
|
Iv8UFyL/FBci/xQXIv8UFyL/FBci/xQXIv8UFyL/FBci/xQXIv8UFyL/FBci/xQXIv8UFyL/FBci/xQX
|
||||||
|
Iv8UFyL/FBci/xQXIWAAAAAAAAAAAAAAAAATFiFAFBch/xYZI/8YGyX/Gh0n/xwfKP8fISrvISMsMAAA
|
||||||
|
AAAAAAAAKCoynyosM/8sLjX/LjA3/zAyOP8zNDr/NTY87wAAAAAAAAAAAAAAAAAAAAAAAAAAFRgj/xUY
|
||||||
|
I/8VGCP/FRgj/xUYI/8VGCP/FRgj/xUYI/8VGCP/FRgj/xUYI/8VGCP/FRgj/xUYI/8VGCP/FRgj/xUY
|
||||||
|
I/8VGCP/FRgj/xUYI/8VGCP/FRgjvwAAAAAAAAAAAAAAAAAAAAAUFyIgFhkj7xgbJf8aHSf/HB8o/x8h
|
||||||
|
Kv8hIyz/IyUu7yUnMDAoKjKfKiwz/ywuNf8uMDf/MDI4/zM0Ov81Njz/Nzg9rwAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAFxkk/xcZJP8XGST/Fxkk/xcZJP8XGST/Fxkk/xcZJP8XGST/Fxkk/xcZJP8XGST/Fxkk/xcZ
|
||||||
|
JP8XGST/Fxkk/xcZJP8XGST/Fxkk/xcZJP8XGST/Fxkk/xcZJJ8AAAAAAAAAAAAAAAAAAAAAGBslMBod
|
||||||
|
J+8cHyj/HyEq/yEjLP8jJS7/JScw/ycpMf8qLDP/LC41/y4wN/8wMjj/MzQ6/zU2PP83OD3PODk+EAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAGBsl/xgbJf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgb
|
||||||
|
Jf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgbJf8YGyWfAAAAAAAA
|
||||||
|
AAAAAAAAAAAAABwfKDAfISrvISMs/yMlLv8lJzD/Jykx/yosM/8sLjX/LjA3/zAyOP8zNDr/NTY8/zc4
|
||||||
|
Pc84OT4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRwm/xkcJv8ZHCb/GRwm/xkcJv8ZHCb/GRwm/xkc
|
||||||
|
Jv8ZHCb/GRwm/xkcJv8ZHCb/GRwm/xkcJv8ZHCb/GRwm/xkcJv8ZHCb/GRwm/xkcJv8ZHCb/GRwm/xkc
|
||||||
|
Jv8ZHCb/GRwmnwAAAAAAAAAAAAAAAAAAAAAhIywwIyUu7yUnMP8nKTH/Kiwz/ywuNf8uMDf/MDI4/zM0
|
||||||
|
Ov81Njz/Nzg9zzg5PhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx0n/xsdJ/8bHSf/Gx0n/xsd
|
||||||
|
J/8bHSf/Gx0n/xsdJ/8bHSf/Gx0n/xsdJ/8bHSf/Gx0n/xsdJ/8bHSf/Gx0n/xsdJ/8bHSf/Gx0n/xsd
|
||||||
|
J/8bHSf/Gx0n/xsdJ/8bHSf/Gx0n/xsdJ58AAAAAAAAAAAAAAAAAAAAAJScwMCcpMf8qLDP/LC41/y4w
|
||||||
|
N/8wMjj/MzQ6/zU2PP83OD3PODk+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHB8o/xwf
|
||||||
|
KP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwf
|
||||||
|
KP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyiPAAAAAAAAAAAAAAAAKCoynyos
|
||||||
|
M/8sLjX/LjA3/zAyOP8zNDr/NTY8/zc4Pv85Oj/vOzxBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAHSAp/x0gKf8dICn/HSAp/x0gKf8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwf
|
||||||
|
KP8cHyj/HB8o/xwfKP8cHyj/HB8o/x0gKf8dICn/HSAp/x0gKf8dICn/HSAp/x0fKe8dHykwAAAAAAAA
|
||||||
|
AAAoKjKfKiwz/ywuNf8uMDf/MDI4/zM0Ov81Njz/Nzg+/zk6P/87PEH/Pj5D70BBRTAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAHyEq/x8hKv8fISr/HyEq/x8hKv8cHyj/HB8o/xwfKP8cHyj/HB8o/xwf
|
||||||
|
KP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/x8hKv8fISr/HyEq/x8hKv8fISr/HiEq7x4g
|
||||||
|
KjAAAAAAAAAAACgqMp8qLDP/LC41/y4wN/8wMjj/MzQ6/zU2PP83OD7/OTo//zs8Qf8+PkP/QEFF/0JD
|
||||||
|
Ru9ERUgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICIr/yAiK/8gIiv/ICIr/yAiK/8cHyj/HB8o/xwf
|
||||||
|
KP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8cHyj/HB8o/yAiK/8gIiv/ICIr/yAi
|
||||||
|
K/8gIivvHyIrMAAAAAAAAAAAKCoynyosM/8sLjX/LjA3/zAyOP8zNDr/NTY8/zc4Pc85Oj/vOzxB/z4+
|
||||||
|
Q/9AQUX/QkNG/0RFSP9GR0rvSUlMMAAAAAAAAAAAAAAAAAAAAAAAAAAAISQs/yEkLP8hJCz/ISQs/yEk
|
||||||
|
LP8hJCz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISQs/yEkLP8hJCz/ISQs/yEk
|
||||||
|
LP8hJCz/ISQs/yEjLO8hIywwAAAAAAAAAAApKjIwKiwz/ywuNf8uMDf/MDI4/zM0Ov81Njz/Nzg9zzg5
|
||||||
|
PhA7PEEwPj5D70BBRf9CQ0b/REVI/0ZHSv9JSUz/S0tOzwAAAAAAAAAAAAAAAAAAAAAAAAAAIyUt/yMl
|
||||||
|
Lf8jJS3/IyUt/yMlLf8jJS3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyUt/yMl
|
||||||
|
Lf8jJS3/IyUt/yMlLf8jJS3/IiUt7yIkLTAAAAAAAAAAAAAAAAAqLDQwLC41/y4wN/8wMjj/MzQ6/zU2
|
||||||
|
PP83OD3PODk+EAAAAAAAAAAAQEFFMEJDRu9ERUj/RkdK/0lJTP9LS07/TU1PzwAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAJCYv/yQmL/8kJi//JCYv/yQmL/8kJi//JCYv/yQmL/8kJi//JCYv/yQmL/8kJi//JCYv/yQm
|
||||||
|
L/8kJi//JCYv/yQmL/8kJi//JCYv/yQmL/8kJi//JCYv7yQmLzAAAAAAAAAAAAAAAAAAAAAALjA3nzAy
|
||||||
|
OP8zNDr/NTY8/zc4Pc84OT4QAAAAAAAAAAAAAAAAAAAAAERFSDBGR0rvSUlM/0tLTv9NTU/vTk5QMAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAJScw/yUnMP8lJzD/JScw/yUnMP8lJzD/JScw/yUnMP8lJzD/JScw/yUn
|
||||||
|
MP8lJzD/JScw/yUnMP8lJzD/JScw/yUnMP8lJzD/JScw/yUnMP8lJzD/JScw/yUnMO8mKDAwAAAAAAAA
|
||||||
|
AAAAAAAAAAAAADI0Oo81NjzvNzg9rzg5PhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJSUwwS0tO301N
|
||||||
|
T99OTlAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJykx/ycpMf8nKTH/Jykx/ycpMf8nKTH/Jykx/ycp
|
||||||
|
Mf8nKTH/Jykx/ycpMf8nKTH/Jykx/ycpMf8nKTH/Jykx/ycpMf8nKTH/Jykx/ycpMf8nKTH/Jykx/ycp
|
||||||
|
Mf8nKTHvJykxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcpMTAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCoy/ygqMv8oKjL/KCoy/ygq
|
||||||
|
Mv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygq
|
||||||
|
Mv8oKjL/KCoy/ygqMv8oKjL/KCoy7ygqMjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCoyYCgq
|
||||||
|
Mr8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKSsz/ykr
|
||||||
|
M/8pKzP/KSsz/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygq
|
||||||
|
Mv8oKjL/KCoy/ykrM/8pKzP/KSsz/ykrM/8pKzP/KSsz/ykrM+8qLDMwAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAqLDNgKSsz/ykrM78AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAKy00/ystNP8rLTT/Ky00/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygqMv8oKjL/KCoy/ygq
|
||||||
|
Mv8oKjL/KCoy/ygqMv8oKjL/KCoy/ystNP8rLTT/Ky00/ystNP8rLTT/Ky00/ystNP8rLTTvKy00MAAA
|
||||||
|
AAAAAAAAAAAAACstNGArLTT/Ky00/ystNL8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAALC41/ywuNf8sLjX/LC41/ywuNf8sLjX/AAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAALC41/ywuNf8sLjX/LC41/ywuNf8sLjX/LC41/ywuNf8sLjX/LC41/ywu
|
||||||
|
Nf8sLjX/LC417ywuNTAAAAAALC41YCwuNf8sLjX/LC41/ywuNb8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS82/y0vNv8tLzb/LS82/y0vNv8tLzb/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS82/y0vNv8tLzb/LS82/y0vNv8tLzb/LS82/y0v
|
||||||
|
Nv8tLzb/LS82/y0vNv8tLzb/LS82/y0vNu8uLzaALS82/y0vNv8tLzb/LS82/y0vNr8AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzA3/y8wN/8vMDf/LzA3/y8w
|
||||||
|
N/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8w
|
||||||
|
N/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8wN/8vMDf/LzA3/y8w
|
||||||
|
N78AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDI4/zAy
|
||||||
|
OP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAy
|
||||||
|
OP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAy
|
||||||
|
OP8wMjj/MDI4/zAyOL8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAMTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEz
|
||||||
|
Of8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEz
|
||||||
|
Of8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOb8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAMzQ6/zM0Ov8zNDr/MzQ6/zM0Ov8zNDr/MTM5/zEzOf8xMzn/MTM5/zEz
|
||||||
|
Of8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zM0Ov8zNDr/MzQ6/zM0
|
||||||
|
Ov8zNDr/MzQ6/zM0Ov8zNDr/MzQ6/zM0Ov8zNDr/MzQ6/zM0Or8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDU7/zQ1O/80NTv/NDU7/zQ1O/80NTv/MTM5/zEz
|
||||||
|
Of8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zQ1
|
||||||
|
O/80NTv/NDU7/zQ1O/80NTv/NDU7/zQ1O/80NTv/NDU7/zQ1O/80NTv/NDU7/zQ1O78AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTc8/zU3PP81Nzz/NTc8/zU3
|
||||||
|
PP81Nzz/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEzOf8xMzn/MTM5/zEz
|
||||||
|
Of8xMzn/MTM5/zU3PP81Nzz/NTc8/zU3PP81Nzz/NTc8/zU3PP81Nzz/NTc8/zU3PP81Nzz/NTc8/zU3
|
||||||
|
PL8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzg+/zc4
|
||||||
|
Pv83OD7/Nzg+/zc4Pv83OD7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAANzg+/zc4Pv83OD7/Nzg+/zc4Pv83OD7/Nzg+/zc4Pv83OD7/Nzg+/zc4
|
||||||
|
Pv83OD7/Nzg+/zc4Pr8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAODk//zg5P/84OT//ODk//zg5P/84OT//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODk//zg5P/84OT//ODk//zg5P/84OT//ODk//zg5
|
||||||
|
P/84OT//ODk//zg5P/84OT//ODk//zg5P78AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAOjtA/zo7QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7
|
||||||
|
QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7
|
||||||
|
QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7QP86O0D/OjtA/zo7QL8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8
|
||||||
|
Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8
|
||||||
|
Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qb8AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPD1C/zw9Qv88PUL/PD1C/zw9
|
||||||
|
Qv88PUL/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8Qf87PEH/OzxB/zs8
|
||||||
|
Qf87PEH/OzxB/zw9Qv88PUL/PD1Cvzw9Qr88PUK/PD1Cvzw9Qr88PUK/PD1Cvzw9Qr88PUK/PD1Cvzw9
|
||||||
|
Qo8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj5D/z4+
|
||||||
|
Q/8+PkP/Pj5D/z4+Q/8+PkP/PD1C/zw9Qv88PUL/PD1C/zw9Qv88PUL/PD1C/zw9Qv88PUL/PD1C/zw9
|
||||||
|
Qv88PUL/PD1C/zw9Qv88PUL/PD1C/z4+Q/8+PkP/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAP0BE/z9ARP8/QET/P0BE/z9ARP8/QET/PT1C/z09Qv89PUL/PT1C/z09Qv89PUL/PT1C/z09
|
||||||
|
Qv89PUL/PT1C/z09Qv89PUL/PT1C/z09Qv89PUL/PT1C/z9ARP8/QET/AAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAQEFF/0BBRf9AQUX/QEFF/0BBRf9AQUX/Pj5D/z4+Q/8+PkP/Pj5D/z4+
|
||||||
|
Q/8+PkP/Pj5D/z4+Q/8+PkP/Pj5D/z4+Q/8+PkP/Pj5D/z4+Q/8+PkP/Pj5D/0BBRf9AQUX/AAAAAAAA
|
||||||
|
AABAQUXXQEFFv0BBRb9AQUW/QEFFv0BBRb9AQUW/QEFFr0BBRRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQkJG/0JCRv9CQkb/QkJG/0JCRv9CQkb/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQkJG/0JC
|
||||||
|
Rv9CQkb/AAAAAAAAAABCQkb/QkJG/0JCRv9CQkb/QkJG/0JCRv9CQkb/QUJGYAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ0NH/0NDR/9DQ0f/Q0NH/0ND
|
||||||
|
R/9DQ0f/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAQ0NH/0NDR/9DQ0f/AAAAAAAAAABDQ0f/Q0NH/0NDR/9DQ0f/Q0NH/0NDR/9DQ0efAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAREVI/0RF
|
||||||
|
SP9ERUj/REVI/0RFSP9ERUj/REVI/0RFSP9ERUj/REVI/0RFSP9ERUj/REVI/0RFSP9ERUj/REVI/0RF
|
||||||
|
SP9ERUj/REVI/0RFSP9ERUj/REVI/0RFSP9ERUj/AAAAAAAAAABERUj/REVI/0RFSP9ERUj/REVI/0RE
|
||||||
|
SM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAARkZJ/0ZGSf9GRkn/RkZJ/0ZGSf9GRkn/RkZJ/0ZGSf9GRkn/RkZJ/0ZGSf9GRkn/RkZJ/0ZG
|
||||||
|
Sf9GRkn/RkZJ/0ZGSf9GRkn/RkZJ/0ZGSf9GRkn/RkZJ/0ZGSf9GRkn/AAAAAAAAAABGRkn/RkZJ/0ZG
|
||||||
|
Sf9GRkn/RUZJ70VGSSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAR0dK/0dHSv9HR0r/R0dK/0dHSv9HR0r/R0dK/0dHSv9HR0r/R0dK/0dH
|
||||||
|
Sv9HR0r/R0dK/0dHSv9HR0r/R0dK/0dHSv9HR0r/R0dK/0dHSv9HR0r/R0dK/0dHSv9HR0r/AAAAAAAA
|
||||||
|
AABHR0r/R0dK/0dHSv9HR0r/R0dKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASElL/0hJS/9ISUv/SElL/0hJS/9ISUv/SElL/0hJ
|
||||||
|
S/9ISUv/SElL/0hJS/9ISUv/SElL/0hJS/9ISUv/SElL/0hJS/9ISUv/SElL/0hJS/9ISUv/SElL/0hJ
|
||||||
|
S/9ISUv/AAAAAAAAAABISUv/SElL/0hJS/9ISEuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASkpN/0pKTf9KSk3/SkpN/0pK
|
||||||
|
Tf9KSk3/SkpN/0pKTf9KSk3/SkpN/0pKTf9KSk3/SkpN/0pKTf9KSk3/SkpN/0pKTf9KSk3/SkpN/0pK
|
||||||
|
Tf9KSk3/SkpN/0pKTf9KSk3/AAAAAAAAAABKSk3/SkpN/0lKTK8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0tO/0tL
|
||||||
|
Tv9LS07/S0tO/0tLTv9LS07/S0tO/0tLTv9LS07/S0tO/0tLTv9LS07/S0tO/0tLTv9LS07/S0tO/0tL
|
||||||
|
Tv9LS07/S0tO/0tLTv9LS07/S0tO/0tLTv9LS07/AAAAAAAAAABLS03vS0tN30pKTRAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAATExP/0xMT/9MTE//TExP/0xMT/9MTE//TExP/0xMT/9MTE//TExP/0xMT/9MTE//TExP/0xM
|
||||||
|
T/9MTE//TExP/0xMT/9MTE//TExP/0xMT/9MTE//TExP/0xMT/9MTE//AAAAAAAAAABMTE+ATExOMAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAATk5Q/05OUP9OTlD/Tk5Q/05OUP9OTlD/Tk5Q/05OUP9OTlD/Tk5Q/05O
|
||||||
|
UP9OTlD/Tk5Q/05OUP9OTlD/Tk5Q/05OUP9OTlD/Tk5Q/05OUP9OTlD/Tk5Q/05OUP9OTlD/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP////j/PwAAgAAAcH4fAACAAABgPA8AAIAA
|
||||||
|
AOAYDwAAgAAB4AAPAACAAADwAA8AAIAAAHgAHwAAgAAAPAA/AACAAAAeAH8AAIAAAA4AfwAAgAAADAA/
|
||||||
|
AACAAAAYAB8AAIAAADAADwAAgf8AYAAPAACB/wDgGA8AAIAAAPA8DwAAgAAAeH4fAACAAAA/7/8AAIAA
|
||||||
|
AB/P/wAAgAAAD4//AACAAAAHD/8AAIH/AAIP/wAAgf8AAA//AACAAAAAD/8AAIAAAAAP/wAAgAAAAA//
|
||||||
|
AACAAAAAD/8AAIAAAAAP/wAAgAAAAA//AACB//wAD/8AAIH//AAP/wAAgAAAAA//AACAAAAAD/8AAIAA
|
||||||
|
AAAP/wAAgAAAf///AACAAAB///8AAIAAAGAP/wAAgf/8YB//AACB//xgP/8AAIAAAGB//wAAgAAAYH//
|
||||||
|
AACAAABg//8AAIAAAGH//wAAgAAAY///AACAAABj//8AAIAAAGf//wAAgAAAf///AAAoAAAAIAAAAEAA
|
||||||
|
AAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYZIwMXGiQRHB4oAwAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAoKjIFKiw0EAAAAAAAAAAAAAAAAAAAAAATFiH+ExYh/xMWIf4TFiH+ExYh/hMW
|
||||||
|
If4TFiH+ExYh/hMWIf4TFiH+ExYh/hMWIf4TFiH+ExYh/hMWIf4TFiHmFRciNwAAAAAWGSMDExYhYxQX
|
||||||
|
IbcYGyVOAAAAAAAAAAAAAAAAJykxASgqMoMqLDS4LS82PwAAAAAAAAAAAAAAABMWIf4TFiH/ExYh/hMW
|
||||||
|
If4TFiH+ExYh/hMWIf4TFiH+ExYh/hMWIf4TFiH+ExYh/hMWIf4TFiH+ExYh/RMWIdkVGCMqAAAAABMW
|
||||||
|
IV4UFyHyFxoj/hodJvUfISpPJCYuBSYoMBEoKjKQKy00/S4vNv4wMjjfMTI4NwAAAAAAAAAAFBci/xQX
|
||||||
|
Iv8UFyL/FBci/xQXIv8UFyL/FBci/xQXIv8UFyL/FBci/xQXIv8UFyL/FBci/xQXIv4UFyLvFRgjXBga
|
||||||
|
JAEAAAAAFBchbBYZI/kaHCb+HR8o/iEjLN8kJi9QKCoxkSosM/MuLzb+MTI4/jQ1OukzNDpBAAAAAAAA
|
||||||
|
AAAWGSP/Fhkj/xYZI/8WGSP/Fhkj/xYZI/8WGSP/Fhkj/xYZI/8WGSP/Fhkj/xYZI/8WGSP/Fhkj/hYZ
|
||||||
|
I/4XGSTTGBslIwAAAAAbHScKGh0nfx0fKfogIiv+IyUu/icpMf4qLDP+Li82/jEyOP40NTrzNjc8YzQ1
|
||||||
|
OwMAAAAAAAAAABgbJf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgbJf8YGyX/GBsl/xgb
|
||||||
|
Jf8YGyX/GBsl/hgbJf4ZHCa3Gx4nIwAAAAAeISoKICMsmiMlLvonKTH+Kiwz/y0vNv8xMjj+NDU68zY3
|
||||||
|
PH41NjwDAAAAAAAAAAAAAAAAGh0m/xodJv8aHSb/Gh0m/xodJv8aHSb/Gh0m/xodJv8aHSb/Gh0m/xod
|
||||||
|
Jv8aHSb/Gh0m/xodJv8aHSb/Gh0m/hodJ/4bHSfSHiApHwAAAAAjJi4dJykxxiosM/4tLzb/MTI4/zQ1
|
||||||
|
O/43OD2aNTc8CQAAAAAAAAAAAAAAAAAAAAAcHyj/Gx4n/xseJ/4bHif+Gx4n/hseJ/4bHif+Gx4n/hse
|
||||||
|
J/4bHif+Gx4n/hseJ/4bHif+HB8o/xwfKP8cHyj+HB8o/hwfKPUeICo1IyUtAScpMJAqLDPzLS82/jEy
|
||||||
|
OP40NTv+Nzg+/jo7QN87PEFPAAAAAAAAAAAAAAAAAAAAAB4hKf8dICj/HB8o/xwfKP8cHyj/HB8o/xwf
|
||||||
|
KP8cHyj/HB8o/xwfKP8cHyj/HB8o/xwfKP8eISn/HiAp/h4gKf4eISrfHyEqTyMlLRImKDCQKiwz/i0v
|
||||||
|
Nv4xMjj+NDU78zc4Pfo7PED+Pj5D/kFCRfVBQkVPOzxBBQAAAAAAAAAAICMr/yAiK/8gIiv+ICIr/gAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICMr/iAjK/4gIiv+ICIr9SEjLE8jJS0GJygwXyos
|
||||||
|
M/ItLzb+MTI4/jQ1OvM2Nzx/OjtAmz0+QvpBQkb+REVI/kdIS9dAQUUzAAAAAAAAAAAiJC3/IiQt/yIk
|
||||||
|
Lf4iJC3+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiJC3+IiQt/iIkLfgiJC1vIyUtAQAA
|
||||||
|
AAApKzJeLS818jAyOP40NTrzNTY8YzM1OwQ3OD0LP0BEf0RFSPpHSEv+S0tN10JDRzMAAAAAAAAAACQm
|
||||||
|
L/8kJi//JCYv/iQmL/4kJi/+JCYv/iQmL/4kJi/+JCYv/iQmL/4kJi/+JCYv/iQmL/4kJi/+JCYv/CQm
|
||||||
|
L8clJy8WAAAAACgqMhEuMDaINDU65DY3PHcxMzkDAAAAAAAAAAA4Oj8KR0hLl0pKTedJSUtPQEFFBQAA
|
||||||
|
AAAAAAAAJigw/yYoMP8mKDD/Jigw/yYoMP8mKDD/Jigw/yYoMP8mKDD/Jigw/yYoMP8mKDD/Jigw/yYo
|
||||||
|
MP4mKDD+Jigw/iYoMMcnKTEvAAAAAAAAAAAAAAAAAAAAAC4wNgopKzNJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAoKjL/KCoy/ygqMv4oKjL+KCoy/igqMv4oKjL+KCoy/igqMv4oKjL+KCoy/igq
|
||||||
|
Mv4oKjL+KCoy/ygqMv8oKjL+KCoy/CgqMscqLDMWAAAAAAAAAAAAAAAAKyw0bSgqMsAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACosM/8qLDP/Kiwz/iosM/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAACosM/4qLDP/Kiwz/yosM/4qLDP+Kiwz/istNMcsLTQvLS41CywuNW4rLTT9Ky000jQ1
|
||||||
|
OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALC41/ywuNf8sLjX+LC41/gAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAALC41/iwuNf8sLjX/LC41/ywuNf8sLjX+LC41/CwuNcctLjV8LC417Cwu
|
||||||
|
Nf4sLjXTMzQ6AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuMDb/LjA2/y4wNv4uMDb+LjA2/i4w
|
||||||
|
Nv0uMDb9LjA2/S4wNv0uMDb9LjA2/i4wNv4uMDb+LjA2/y4wNv8uMDb/LjA2/y4wNv4uMDb+LjA2/i4w
|
||||||
|
Nv4uMDb+LjA2/i8wN9MxMzkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAyOP8wMjj/MDI4/zAy
|
||||||
|
OP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAyOP8wMjj/MDI4/zAy
|
||||||
|
OP8wMjj/MDI4/zAyOP8wMjj+MDI40zEzOQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjQ5/zIz
|
||||||
|
Of8yMzn+MjM5/jIzOf4yMzn+MjM5/jIzOf4yMzn+MjM5/jIzOf4yMzn+MjM5/jIzOf4yMzn+MjM5/jI0
|
||||||
|
Of4yNDn/MjQ5/zI0Of8yNDn/MjQ5/zI0Of4yMznTMjM5AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAA0Njv/NDU7/zQ1O/40NTv+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAA0NTv2NDY7/jQ2O/80Njv/NDY7/zQ2O/80Njv/NDY7/jQ1O9MzNDoBAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAADY4Pf82Nz3/Njc9/jY3Pf4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAADY3Peo2OD3+Njg9/zY4Pf82OD3/Njg9/zY4Pf82OD3+Njc90zU2PAEAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAOTo//zo6P/87O0D/OztA/zs7QP87O0D/OztA/zs7QP87O0D/OztA/zs7
|
||||||
|
QP87O0D/OztA/zs7QP87O0D/ODo/+Dk6P/45Oj/+OTo//jk6P/45Oj/+OTo//jk6P/44OT7SNjc9AQAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7O0D/OztA/zs7QP47O0D+OztA/js7QP47O0D+OztA/js7
|
||||||
|
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
|
||||||
|
AAAA/wAAAI8AAD6PAAAAnwAAAL8AAA==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
|
|||||||
// Общие сведения об этой сборке предоставляются следующим набором
|
// Общие сведения об этой сборке предоставляются следующим набором
|
||||||
// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
|
// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
|
||||||
// связанные со сборкой.
|
// связанные со сборкой.
|
||||||
[assembly: AssemblyTitle("Чистка кэша 1С")]
|
[assembly: AssemblyTitle("ClearCache1C")]
|
||||||
[assembly: AssemblyDescription("Чистка кэша 1С")]
|
[assembly: AssemblyDescription("Чистка кэша 1С")]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("ClearCache1C")]
|
[assembly: AssemblyProduct("ClearCache1C")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2018")]
|
[assembly: AssemblyCopyright("GNU GPL v3")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
|
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
|
||||||
[assembly: Guid("ca37faa9-7c77-4c16-81a4-3bbd93f235a1")]
|
[assembly: Guid("2d3ea215-f5c4-435b-922e-f985af0065cb")]
|
||||||
|
|
||||||
// Сведения о версии сборки состоят из следующих четырех значений:
|
// Сведения о версии сборки состоят из следующих четырех значений:
|
||||||
//
|
//
|
||||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||||||
// Можно задать все значения или принять номер сборки и номер редакции по умолчанию.
|
// Можно задать все значения или принять номер сборки и номер редакции по умолчанию.
|
||||||
// используя "*", как показано ниже:
|
// используя "*", как показано ниже:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.1.0")]
|
[assembly: AssemblyVersion("1.0.2.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.1.0")]
|
[assembly: AssemblyFileVersion("1.0.2.0")]
|
||||||
|
44
ClearCache1C/Properties/Resources.Designer.cs
generated
@ -63,9 +63,29 @@ namespace ClearCache1C.Properties {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static System.Drawing.Bitmap ai_full_logo___clean {
|
internal static System.Drawing.Bitmap ai_logo {
|
||||||
get {
|
get {
|
||||||
object obj = ResourceManager.GetObject("ai-full logo - clean", resourceCulture);
|
object obj = ResourceManager.GetObject("ai_logo", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap arrows_16_L {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("arrows_16_L", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap arrows_16_R {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("arrows_16_R", resourceCulture);
|
||||||
return ((System.Drawing.Bitmap)(obj));
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,6 +100,16 @@ namespace ClearCache1C.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icon_refresh_24 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icon_refresh_24", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -99,5 +129,15 @@ namespace ClearCache1C.Properties {
|
|||||||
return ((System.Drawing.Bitmap)(obj));
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap x_mark_16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("x-mark_16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,16 +118,28 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="icon_select_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon_smart_select_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon_select_16.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon_smart_select_16.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icon_refresh_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icon_refresh_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icon_deselect_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon_deselect_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon_deselect_16.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon_deselect_16.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icon_smart_select_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon_select_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon_smart_select_16.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon_select_16.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ai-full logo - clean" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="arrows_16_L" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\ai-full logo - clean.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\arrows_16_L.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ai_logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ai-logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="arrows_16_R" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\arrows_16_R.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="x-mark_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\x-mark_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
22
ClearCache1C/Properties/Settings.Designer.cs
generated
@ -1,28 +1,24 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// Этот код создан программой.
|
||||||
// Runtime Version:4.0.30319.42000
|
// Исполняемая версия:4.0.30319.42000
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||||
// the code is regenerated.
|
// повторной генерации кода.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace ClearCache1C.Properties
|
namespace ClearCache1C.Properties {
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
{
|
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
public static Settings Default
|
public static Settings Default {
|
||||||
{
|
get {
|
||||||
get
|
|
||||||
{
|
|
||||||
return defaultInstance;
|
return defaultInstance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<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
|
|
||||||
Если вы хотите изменить уровень контроля учетных записей Windows, замените узел
|
|
||||||
requestedExecutionLevel на один из следующих.
|
|
||||||
|
|
||||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
|
||||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
|
||||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
|
||||||
|
|
||||||
При указании элемента requestedExecutionLevel будет отключена виртуализация файлов и реестра.
|
|
||||||
Удалите этот элемент, если виртуализация требуется приложению для обратной
|
|
||||||
совместимости.
|
|
||||||
-->
|
|
||||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
|
||||||
</requestedPrivileges>
|
|
||||||
<applicationRequestMinimum>
|
|
||||||
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
|
|
||||||
<defaultAssemblyRequest permissionSetReference="Custom" />
|
|
||||||
</applicationRequestMinimum>
|
|
||||||
</security>
|
|
||||||
</trustInfo>
|
|
||||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
|
||||||
<application>
|
|
||||||
<!-- Список версий Windows, на которых это приложение было протестировано
|
|
||||||
и будет работать. Раскомментируйте соответствующие элементы, чтобы ОС Windows
|
|
||||||
автоматически выбрала наиболее совместимое окружение. -->
|
|
||||||
<!-- Windows Vista -->
|
|
||||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
|
||||||
<!-- Windows 7 -->
|
|
||||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
|
||||||
<!-- Windows 8 -->
|
|
||||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
|
||||||
<!-- Windows 8.1 -->
|
|
||||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
|
||||||
<!-- Windows 10 -->
|
|
||||||
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
|
||||||
</application>
|
|
||||||
</compatibility>
|
|
||||||
<!-- Указывает, что приложение поддерживает определение DPI и не будет автоматически масштабироваться Windows при более высоких
|
|
||||||
значениях DPI. Приложения Windows Presentation Foundation (WPF) по умолчанию поддерживают определение DPI, им не нужно
|
|
||||||
специально включать параметр для этого. Для приложений Windows Forms на платформе .NET Framework 4.6, для которых задан этот параметр, необходимо
|
|
||||||
также задать для "EnableWindowsFormsHighDpiAutoResizing" значение "true" в файле app.config.-->
|
|
||||||
<!--
|
|
||||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
|
||||||
<windowsSettings>
|
|
||||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
|
||||||
</windowsSettings>
|
|
||||||
</application>
|
|
||||||
-->
|
|
||||||
<!-- Включите темы для общих элементов управления и диалоговых окон Windows (Windows XP и более поздние версии) -->
|
|
||||||
<!--
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity
|
|
||||||
type="win32"
|
|
||||||
name="Microsoft.Windows.Common-Controls"
|
|
||||||
version="6.0.0.0"
|
|
||||||
processorArchitecture="*"
|
|
||||||
publicKeyToken="6595b64144ccf1df"
|
|
||||||
language="*"
|
|
||||||
/>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
-->
|
|
||||||
</assembly>
|
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
BIN
ClearCache1C/Resources/arrows_16_L.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
ClearCache1C/Resources/arrows_16_R.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 415 B After Width: | Height: | Size: 420 B |
BIN
ClearCache1C/Resources/icon_refresh_24.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
ClearCache1C/Resources/x-mark_16.png
Normal file
After Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<packages>
|
|
||||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
|
|
||||||
</packages>
|
|