diff --git a/COP_25/Forms/Forms.csproj b/COP_25/Forms/Forms.csproj
index 5817159..8dee84a 100644
--- a/COP_25/Forms/Forms.csproj
+++ b/COP_25/Forms/Forms.csproj
@@ -26,6 +26,7 @@
+
diff --git a/Cop_25/Cop_25.sln b/Cop_25/Cop_25.sln
index 66f1013..c551044 100644
--- a/Cop_25/Cop_25.sln
+++ b/Cop_25/Cop_25.sln
@@ -15,6 +15,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessLogic", "BusinessLo
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatabaseImplement", "DatabaseImplement\DatabaseImplement.csproj", "{D454A67C-F6F6-48AC-9BB5-DCEF7D54AFA6}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginsConventionLibrary", "PluginsConventionLibrary\PluginsConventionLibrary.csproj", "{47D0DE62-FFC5-45EB-B2C6-8A6B7E36D1CC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginApp", "PluginApp\PluginApp.csproj", "{548C4056-26BB-4DE3-BB6E-4C0BEF3CBF2C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -45,6 +49,14 @@ Global
{D454A67C-F6F6-48AC-9BB5-DCEF7D54AFA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D454A67C-F6F6-48AC-9BB5-DCEF7D54AFA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D454A67C-F6F6-48AC-9BB5-DCEF7D54AFA6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {47D0DE62-FFC5-45EB-B2C6-8A6B7E36D1CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {47D0DE62-FFC5-45EB-B2C6-8A6B7E36D1CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {47D0DE62-FFC5-45EB-B2C6-8A6B7E36D1CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {47D0DE62-FFC5-45EB-B2C6-8A6B7E36D1CC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {548C4056-26BB-4DE3-BB6E-4C0BEF3CBF2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {548C4056-26BB-4DE3-BB6E-4C0BEF3CBF2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {548C4056-26BB-4DE3-BB6E-4C0BEF3CBF2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {548C4056-26BB-4DE3-BB6E-4C0BEF3CBF2C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Cop_25/Forms/FormMain.Designer.cs b/Cop_25/Forms/FormMain.Designer.cs
index 1189c90..9b603af 100644
--- a/Cop_25/Forms/FormMain.Designer.cs
+++ b/Cop_25/Forms/FormMain.Designer.cs
@@ -41,9 +41,9 @@
редактироватьtoolStripMenuItem = new ToolStripMenuItem();
controlDataTreeTable = new ControlsLibraryNet60.Data.ControlDataTreeTable();
largeTextComponent = new Controls.LargeTextComponent(components);
- pieChartWord1 = new CustomComponents.NonViewComponents.PieChartWord(components);
- componentDocumentWithTableMultiHeaderExcel1 = new ComponentsLibraryNet60.DocumentWithTable.ComponentDocumentWithTableMultiHeaderExcel(components);
- excelHardTable1 = new NotVisualComponent.ExcelHardTable(components);
+ pieChartWord = new CustomComponents.NonViewComponents.PieChartWord(components);
+ componentDocumentWithTableMultiHeaderExcel = new ComponentsLibraryNet60.DocumentWithTable.ComponentDocumentWithTableMultiHeaderExcel(components);
+ excelHardTable = new NotVisualComponent.ExcelHardTable(components);
menuStrip1.SuspendLayout();
SuspendLayout();
//
@@ -158,8 +158,8 @@
private ToolStripMenuItem редактироватьtoolStripMenuItem;
private ControlsLibraryNet60.Data.ControlDataTreeTable controlDataTreeTable;
private Controls.LargeTextComponent largeTextComponent;
- private CustomComponents.NonViewComponents.PieChartWord pieChartWord1;
- private ComponentsLibraryNet60.DocumentWithTable.ComponentDocumentWithTableMultiHeaderExcel componentDocumentWithTableMultiHeaderExcel1;
- private NotVisualComponent.ExcelHardTable excelHardTable1;
+ private CustomComponents.NonViewComponents.PieChartWord pieChartWord;
+ private ComponentsLibraryNet60.DocumentWithTable.ComponentDocumentWithTableMultiHeaderExcel componentDocumentWithTableMultiHeaderExcel;
+ private NotVisualComponent.ExcelHardTable excelHardTable;
}
}
\ No newline at end of file
diff --git a/Cop_25/Forms/FormMain.cs b/Cop_25/Forms/FormMain.cs
index 1626ebb..ef5c01f 100644
--- a/Cop_25/Forms/FormMain.cs
+++ b/Cop_25/Forms/FormMain.cs
@@ -162,7 +162,7 @@ namespace Forms
Color = Color.FromArgb(100, 150, 200)
}
};
- pieChartWord1.CreateDiagramDocument(new PieChartData()
+ pieChartWord.CreateDiagramDocument(new PieChartData()
{
FileName = path,
DocumentTitle = "Диаграмма",
@@ -181,7 +181,7 @@ namespace Forms
string path = saveFileDialog.FileName + ".xlsx";
var list = _dlogic.ReadList(null);
- excelHardTable1.CreateDoc(new TableWithHeaderConfig
+ excelHardTable.CreateDoc(new TableWithHeaderConfig
{
FilePath = path,
Header = "Deliveryies",
diff --git a/Cop_25/Forms/FormMain.resx b/Cop_25/Forms/FormMain.resx
index 6d55eb3..778a29f 100644
--- a/Cop_25/Forms/FormMain.resx
+++ b/Cop_25/Forms/FormMain.resx
@@ -1,7 +1,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Cop_25/PluginApp/FormMain.Designer.cs b/Cop_25/PluginApp/FormMain.Designer.cs
new file mode 100644
index 0000000..4286de1
--- /dev/null
+++ b/Cop_25/PluginApp/FormMain.Designer.cs
@@ -0,0 +1,173 @@
+namespace PluginApp
+{
+ partial class FormMain
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ menuStrip = new MenuStrip();
+ ControlsStripMenuItem = new ToolStripMenuItem();
+ ActionsToolStripMenuItem = new ToolStripMenuItem();
+ ThesaurusToolStripMenuItem = new ToolStripMenuItem();
+ AddElementToolStripMenuItem = new ToolStripMenuItem();
+ UpdElementToolStripMenuItem = new ToolStripMenuItem();
+ DelElementToolStripMenuItem = new ToolStripMenuItem();
+ DocsToolStripMenuItem = new ToolStripMenuItem();
+ SimpleDocToolStripMenuItem = new ToolStripMenuItem();
+ TableDocToolStripMenuItem = new ToolStripMenuItem();
+ ChartDocToolStripMenuItem = new ToolStripMenuItem();
+ panelControl = new Panel();
+ menuStrip.SuspendLayout();
+ SuspendLayout();
+ //
+ // menuStrip
+ //
+ menuStrip.ImageScalingSize = new Size(20, 20);
+ menuStrip.Items.AddRange(new ToolStripItem[] { ControlsStripMenuItem, ActionsToolStripMenuItem, DocsToolStripMenuItem });
+ menuStrip.Location = new Point(0, 0);
+ menuStrip.Name = "menuStrip";
+ menuStrip.Padding = new Padding(7, 3, 0, 3);
+ menuStrip.Size = new Size(914, 30);
+ menuStrip.TabIndex = 0;
+ menuStrip.Text = "menuStrip1";
+ //
+ // ControlsStripMenuItem
+ //
+ ControlsStripMenuItem.Name = "ControlsStripMenuItem";
+ ControlsStripMenuItem.Size = new Size(113, 24);
+ ControlsStripMenuItem.Text = "Компоненты";
+ //
+ // ActionsToolStripMenuItem
+ //
+ ActionsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ThesaurusToolStripMenuItem, AddElementToolStripMenuItem, UpdElementToolStripMenuItem, DelElementToolStripMenuItem });
+ ActionsToolStripMenuItem.Name = "ActionsToolStripMenuItem";
+ ActionsToolStripMenuItem.Size = new Size(88, 24);
+ ActionsToolStripMenuItem.Text = "Действия";
+ //
+ // ThesaurusToolStripMenuItem
+ //
+ ThesaurusToolStripMenuItem.Name = "ThesaurusToolStripMenuItem";
+ ThesaurusToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.I;
+ ThesaurusToolStripMenuItem.Size = new Size(224, 26);
+ ThesaurusToolStripMenuItem.Text = "Справочник";
+ ThesaurusToolStripMenuItem.Click += ThesaurusToolStripMenuItem_Click;
+ //
+ // AddElementToolStripMenuItem
+ //
+ AddElementToolStripMenuItem.Name = "AddElementToolStripMenuItem";
+ AddElementToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.A;
+ AddElementToolStripMenuItem.Size = new Size(224, 26);
+ AddElementToolStripMenuItem.Text = "Добавить";
+ AddElementToolStripMenuItem.Click += AddElementToolStripMenuItem_Click;
+ //
+ // UpdElementToolStripMenuItem
+ //
+ UpdElementToolStripMenuItem.Name = "UpdElementToolStripMenuItem";
+ UpdElementToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.U;
+ UpdElementToolStripMenuItem.Size = new Size(224, 26);
+ UpdElementToolStripMenuItem.Text = "Изменить";
+ UpdElementToolStripMenuItem.Click += UpdElementToolStripMenuItem_Click;
+ //
+ // DelElementToolStripMenuItem
+ //
+ DelElementToolStripMenuItem.Name = "DelElementToolStripMenuItem";
+ DelElementToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.D;
+ DelElementToolStripMenuItem.Size = new Size(224, 26);
+ DelElementToolStripMenuItem.Text = "Удалить";
+ DelElementToolStripMenuItem.Click += DelElementToolStripMenuItem_Click;
+ //
+ // DocsToolStripMenuItem
+ //
+ DocsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { SimpleDocToolStripMenuItem, TableDocToolStripMenuItem, ChartDocToolStripMenuItem });
+ DocsToolStripMenuItem.Name = "DocsToolStripMenuItem";
+ DocsToolStripMenuItem.Size = new Size(101, 24);
+ DocsToolStripMenuItem.Text = "Документы";
+ //
+ // SimpleDocToolStripMenuItem
+ //
+ SimpleDocToolStripMenuItem.Name = "SimpleDocToolStripMenuItem";
+ SimpleDocToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.S;
+ SimpleDocToolStripMenuItem.Size = new Size(290, 26);
+ SimpleDocToolStripMenuItem.Text = "Простой документ";
+ SimpleDocToolStripMenuItem.Click += SimpleDocToolStripMenuItem_Click;
+ //
+ // TableDocToolStripMenuItem
+ //
+ TableDocToolStripMenuItem.Name = "TableDocToolStripMenuItem";
+ TableDocToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.T;
+ TableDocToolStripMenuItem.Size = new Size(290, 26);
+ TableDocToolStripMenuItem.Text = "Документ с таблицей";
+ TableDocToolStripMenuItem.Click += TableDocToolStripMenuItem_Click;
+ //
+ // ChartDocToolStripMenuItem
+ //
+ ChartDocToolStripMenuItem.Name = "ChartDocToolStripMenuItem";
+ ChartDocToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.C;
+ ChartDocToolStripMenuItem.Size = new Size(290, 26);
+ ChartDocToolStripMenuItem.Text = "Диаграмма";
+ ChartDocToolStripMenuItem.Click += ChartDocToolStripMenuItem_Click;
+ //
+ // panelControl
+ //
+ panelControl.Location = new Point(0, 36);
+ panelControl.Margin = new Padding(3, 4, 3, 4);
+ panelControl.Name = "panelControl";
+ panelControl.Size = new Size(914, 565);
+ panelControl.TabIndex = 1;
+ //
+ // FormMain
+ //
+ AutoScaleDimensions = new SizeF(8F, 20F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(914, 600);
+ Controls.Add(panelControl);
+ Controls.Add(menuStrip);
+ MainMenuStrip = menuStrip;
+ Margin = new Padding(3, 4, 3, 4);
+ Name = "FormMain";
+ Text = "Основная форма";
+ menuStrip.ResumeLayout(false);
+ menuStrip.PerformLayout();
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private MenuStrip menuStrip;
+ private ToolStripMenuItem ControlsStripMenuItem;
+ private ToolStripMenuItem ActionsToolStripMenuItem;
+ private ToolStripMenuItem DocsToolStripMenuItem;
+ private ToolStripMenuItem SimpleDocToolStripMenuItem;
+ private ToolStripMenuItem TableDocToolStripMenuItem;
+ private ToolStripMenuItem ChartDocToolStripMenuItem;
+ private Panel panelControl;
+ private ToolStripMenuItem ThesaurusToolStripMenuItem;
+ private ToolStripMenuItem AddElementToolStripMenuItem;
+ private ToolStripMenuItem UpdElementToolStripMenuItem;
+ private ToolStripMenuItem DelElementToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/Cop_25/PluginApp/FormMain.cs b/Cop_25/PluginApp/FormMain.cs
new file mode 100644
index 0000000..a0dd17e
--- /dev/null
+++ b/Cop_25/PluginApp/FormMain.cs
@@ -0,0 +1,225 @@
+using PluginsConventionLibrary;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace PluginApp
+{
+ public partial class FormMain : Form
+ {
+ private readonly Dictionary _plugins;
+ private string _selectedPlugin;
+ public FormMain()
+ {
+ InitializeComponent();
+ _selectedPlugin = string.Empty;
+ _plugins = LoadPlugins();
+ }
+ private Dictionary LoadPlugins()
+ {
+ var plugins = new Dictionary();
+ string pluginsPath = Directory.GetParent(Directory.GetCurrentDirectory())!.Parent!.Parent!.FullName + "\\plugins";
+ string[] dllFiles = Directory.GetFiles(pluginsPath, "*.dll", SearchOption.AllDirectories);
+ if (!Directory.Exists(pluginsPath))
+ {
+ MessageBox.Show($"Ошибка получения плагинов", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return plugins;
+ }
+ foreach (var dll in dllFiles)
+ {
+ try
+ {
+ Assembly asmbly = Assembly.LoadFrom(dll);
+ Type[] types = asmbly.GetTypes();
+ foreach (var type in types)
+ {
+ if (typeof(IPluginsConvention).IsAssignableFrom(type) && !type.IsInterface && !type.IsAbstract)
+ {
+ var plugin = (IPluginsConvention)Activator.CreateInstance(type)!;
+ plugins.Add(plugin.PluginName, plugin);
+ CreateStripMenuItem(plugin.PluginName);
+ }
+ }
+ }
+ catch
+ {
+ //MessageBox.Show($"Неудалось загрузить плагины", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ return plugins;
+ }
+
+ private void CreateStripMenuItem(string pluginName)
+ {
+ var menuItem = new ToolStripMenuItem(pluginName);
+ menuItem.Click += (s, e) =>
+ {
+ _selectedPlugin = pluginName;
+ IPluginsConvention plugin = _plugins![pluginName];
+ if (plugin?.GetControl == null) throw new Exception("Неудалось получить контрол");
+ UserControl userControl = plugin.GetControl;
+ panelControl.Controls.Clear();
+ plugin.ReloadData();
+ userControl.Dock = DockStyle.Fill;
+ panelControl.Controls.Add(userControl);
+ };
+ ControlsStripMenuItem.DropDownItems.Add(menuItem);
+ }
+ private void FormMain_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (string.IsNullOrEmpty(_selectedPlugin) || !_plugins.ContainsKey(_selectedPlugin))
+ {
+ return;
+ }
+ if (!e.Control)
+ {
+ return;
+ }
+ switch (e.KeyCode)
+ {
+ case Keys.I:
+ ShowThesaurus();
+ break;
+ case Keys.A:
+ AddNewElement();
+ break;
+ case Keys.U:
+ UpdateElement();
+ break;
+ case Keys.D:
+ DeleteElement();
+ break;
+ case Keys.S:
+ CreateSimpleDoc();
+ break;
+ case Keys.T:
+ CreateTableDoc();
+ break;
+ case Keys.C:
+ CreateChartDoc();
+ break;
+ }
+ }
+
+ private void ShowThesaurus()
+ {
+ _plugins[_selectedPlugin].GetThesaurus().Show();
+ }
+
+ private void AddNewElement()
+ {
+ var form = _plugins[_selectedPlugin].GetForm(null);
+ if (form != null && form.ShowDialog() == DialogResult.OK)
+ {
+ _plugins[_selectedPlugin].ReloadData();
+ }
+ }
+
+ private void UpdateElement()
+ {
+ var element = _plugins[_selectedPlugin].GetElement;
+ if (element == null)
+ {
+ MessageBox.Show("Нет выбранного элемента", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ var form = _plugins[_selectedPlugin].GetForm(element);
+ if (form != null && form.ShowDialog() == DialogResult.OK)
+ {
+ _plugins[_selectedPlugin].ReloadData();
+ }
+ }
+ private void DeleteElement()
+ {
+ if (MessageBox.Show("Удалить выбранный элемент", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
+ {
+ return;
+ }
+ var element = _plugins[_selectedPlugin].GetElement;
+ if (element == null)
+ {
+ MessageBox.Show("Нет выбранного элемента", "Ошибка",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (_plugins[_selectedPlugin].DeleteElement(element))
+ {
+ _plugins[_selectedPlugin].ReloadData();
+ }
+ }
+
+ private void CreateSimpleDoc()
+ {
+ using var dialog = new SaveFileDialog
+ {
+ Filter = "PDF Files|*.pdf"
+ };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ if (_plugins[_selectedPlugin].CreateSimpleDocument(new PluginsConventionSaveDocument() { FileName = dialog.FileName }))
+ {
+ MessageBox.Show("Документ сохранен", "Создание документа", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Ошибка при создании документа",
+ "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void CreateTableDoc()
+ {
+ using var dialog = new SaveFileDialog
+ {
+ Filter = "Excel Files|*.xlsx"
+ };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ if (_plugins[_selectedPlugin].CreateTableDocument(new PluginsConventionSaveDocument() { FileName = dialog.FileName }))
+ {
+ MessageBox.Show("Документ сохранен", "Создание документа", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Ошибка при создании документа",
+ "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ public void CreateChartDoc()
+ {
+ using var dialog = new SaveFileDialog
+ {
+ Filter = "docx|*.docx"
+ };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ if (_plugins[_selectedPlugin].CreateChartDocument(new PluginsConventionSaveDocument() { FileName = dialog.FileName }))
+ {
+ MessageBox.Show("Документ сохранен", "Создание документа", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Ошибка при создании документа",
+ "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private void ThesaurusToolStripMenuItem_Click(object sender, EventArgs e) => ShowThesaurus();
+ private void AddElementToolStripMenuItem_Click(object sender, EventArgs e) => AddNewElement();
+ private void UpdElementToolStripMenuItem_Click(object sender, EventArgs e) => UpdateElement();
+ private void DelElementToolStripMenuItem_Click(object sender, EventArgs e) => DeleteElement();
+ private void SimpleDocToolStripMenuItem_Click(object sender, EventArgs e) => CreateSimpleDoc();
+ private void TableDocToolStripMenuItem_Click(object sender, EventArgs e) => CreateTableDoc();
+ private void ChartDocToolStripMenuItem_Click(object sender, EventArgs e) => CreateChartDoc();
+ }
+}
diff --git a/Cop_25/PluginApp/FormMain.resx b/Cop_25/PluginApp/FormMain.resx
new file mode 100644
index 0000000..31084d5
--- /dev/null
+++ b/Cop_25/PluginApp/FormMain.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Cop_25/PluginApp/PluginApp.csproj b/Cop_25/PluginApp/PluginApp.csproj
new file mode 100644
index 0000000..f1b90ee
--- /dev/null
+++ b/Cop_25/PluginApp/PluginApp.csproj
@@ -0,0 +1,17 @@
+
+
+
+ WinExe
+ net8.0-windows
+ enable
+ true
+ enable
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Cop_25/PluginApp/Program.cs b/Cop_25/PluginApp/Program.cs
new file mode 100644
index 0000000..c657723
--- /dev/null
+++ b/Cop_25/PluginApp/Program.cs
@@ -0,0 +1,17 @@
+namespace PluginApp
+{
+ internal static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ // To customize application configuration such as set high DPI settings or default font,
+ // see https://aka.ms/applicationconfiguration.
+ ApplicationConfiguration.Initialize();
+ Application.Run(new FormMain());
+ }
+ }
+}
\ No newline at end of file
diff --git a/Cop_25/PluginApp/plugins/Aspose.Words.Pdf2Word.dll b/Cop_25/PluginApp/plugins/Aspose.Words.Pdf2Word.dll
new file mode 100644
index 0000000..4560923
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Aspose.Words.Pdf2Word.dll differ
diff --git a/Cop_25/PluginApp/plugins/Aspose.Words.dll b/Cop_25/PluginApp/plugins/Aspose.Words.dll
new file mode 100644
index 0000000..c92a98c
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Aspose.Words.dll differ
diff --git a/Cop_25/PluginApp/plugins/BusinessLogic.dll b/Cop_25/PluginApp/plugins/BusinessLogic.dll
new file mode 100644
index 0000000..c42d657
Binary files /dev/null and b/Cop_25/PluginApp/plugins/BusinessLogic.dll differ
diff --git a/Cop_25/PluginApp/plugins/ComponentsLibraryNet60.dll b/Cop_25/PluginApp/plugins/ComponentsLibraryNet60.dll
new file mode 100644
index 0000000..9807306
Binary files /dev/null and b/Cop_25/PluginApp/plugins/ComponentsLibraryNet60.dll differ
diff --git a/Cop_25/PluginApp/plugins/Contracts.dll b/Cop_25/PluginApp/plugins/Contracts.dll
new file mode 100644
index 0000000..b834068
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Contracts.dll differ
diff --git a/Cop_25/PluginApp/plugins/Controls.dll b/Cop_25/PluginApp/plugins/Controls.dll
new file mode 100644
index 0000000..ade49ef
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Controls.dll differ
diff --git a/Cop_25/PluginApp/plugins/ControlsLibraryNet60.dll b/Cop_25/PluginApp/plugins/ControlsLibraryNet60.dll
new file mode 100644
index 0000000..3d14013
Binary files /dev/null and b/Cop_25/PluginApp/plugins/ControlsLibraryNet60.dll differ
diff --git a/Cop_25/PluginApp/plugins/CreateVisualComponent.dll b/Cop_25/PluginApp/plugins/CreateVisualComponent.dll
new file mode 100644
index 0000000..f9d21f9
Binary files /dev/null and b/Cop_25/PluginApp/plugins/CreateVisualComponent.dll differ
diff --git a/Cop_25/PluginApp/plugins/CustomComponents.dll b/Cop_25/PluginApp/plugins/CustomComponents.dll
new file mode 100644
index 0000000..3bba7f5
Binary files /dev/null and b/Cop_25/PluginApp/plugins/CustomComponents.dll differ
diff --git a/Cop_25/PluginApp/plugins/DatabaseImplement.dll b/Cop_25/PluginApp/plugins/DatabaseImplement.dll
new file mode 100644
index 0000000..5055ad6
Binary files /dev/null and b/Cop_25/PluginApp/plugins/DatabaseImplement.dll differ
diff --git a/Cop_25/PluginApp/plugins/DocumentFormat.OpenXml.Framework.dll b/Cop_25/PluginApp/plugins/DocumentFormat.OpenXml.Framework.dll
new file mode 100644
index 0000000..895c615
Binary files /dev/null and b/Cop_25/PluginApp/plugins/DocumentFormat.OpenXml.Framework.dll differ
diff --git a/Cop_25/PluginApp/plugins/DocumentFormat.OpenXml.dll b/Cop_25/PluginApp/plugins/DocumentFormat.OpenXml.dll
new file mode 100644
index 0000000..dbc29d1
Binary files /dev/null and b/Cop_25/PluginApp/plugins/DocumentFormat.OpenXml.dll differ
diff --git a/Cop_25/PluginApp/plugins/Forms.dll b/Cop_25/PluginApp/plugins/Forms.dll
new file mode 100644
index 0000000..0248876
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Forms.dll differ
diff --git a/Cop_25/PluginApp/plugins/HarfBuzzSharp.dll b/Cop_25/PluginApp/plugins/HarfBuzzSharp.dll
new file mode 100644
index 0000000..5c4bd1c
Binary files /dev/null and b/Cop_25/PluginApp/plugins/HarfBuzzSharp.dll differ
diff --git a/Cop_25/PluginApp/plugins/Humanizer.dll b/Cop_25/PluginApp/plugins/Humanizer.dll
new file mode 100644
index 0000000..df62d3f
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Humanizer.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Data.SqlClient.dll b/Cop_25/PluginApp/plugins/Microsoft.Data.SqlClient.dll
new file mode 100644
index 0000000..0cfc4b0
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Data.SqlClient.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Abstractions.dll b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Abstractions.dll
new file mode 100644
index 0000000..3777674
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Abstractions.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Design.dll b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Design.dll
new file mode 100644
index 0000000..fdf2121
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Design.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Relational.dll b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Relational.dll
new file mode 100644
index 0000000..9e453da
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.Relational.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.SqlServer.dll b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.SqlServer.dll
new file mode 100644
index 0000000..6dcbdc7
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.SqlServer.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.dll b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.dll
new file mode 100644
index 0000000..c3a3254
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.EntityFrameworkCore.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.Caching.Abstractions.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Caching.Abstractions.dll
new file mode 100644
index 0000000..94eedf1
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Caching.Abstractions.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.Caching.Memory.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Caching.Memory.dll
new file mode 100644
index 0000000..766cf91
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Caching.Memory.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.Configuration.Abstractions.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Configuration.Abstractions.dll
new file mode 100644
index 0000000..9a24516
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Configuration.Abstractions.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.DependencyInjection.Abstractions.dll
new file mode 100644
index 0000000..b4ee93d
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.DependencyInjection.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.DependencyInjection.dll
new file mode 100644
index 0000000..6fe031c
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.DependencyInjection.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.Logging.Abstractions.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Logging.Abstractions.dll
new file mode 100644
index 0000000..64e88d0
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Logging.Abstractions.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.Logging.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Logging.dll
new file mode 100644
index 0000000..9e2d7f9
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Logging.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.Options.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Options.dll
new file mode 100644
index 0000000..604b602
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Options.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Extensions.Primitives.dll b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Primitives.dll
new file mode 100644
index 0000000..1b2c43a
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Extensions.Primitives.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.Identity.Client.dll b/Cop_25/PluginApp/plugins/Microsoft.Identity.Client.dll
new file mode 100644
index 0000000..c01fcbf
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.Identity.Client.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.JsonWebTokens.dll b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.JsonWebTokens.dll
new file mode 100644
index 0000000..70b84f2
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.JsonWebTokens.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Logging.dll b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Logging.dll
new file mode 100644
index 0000000..7ecc3be
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Logging.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
new file mode 100644
index 0000000..d925b5b
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Protocols.dll b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Protocols.dll
new file mode 100644
index 0000000..17423cc
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Protocols.dll differ
diff --git a/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Tokens.dll b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Tokens.dll
new file mode 100644
index 0000000..dd66624
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Microsoft.IdentityModel.Tokens.dll differ
diff --git a/Cop_25/PluginApp/plugins/MigraDoc.DocumentObjectModel.dll b/Cop_25/PluginApp/plugins/MigraDoc.DocumentObjectModel.dll
new file mode 100644
index 0000000..4334467
Binary files /dev/null and b/Cop_25/PluginApp/plugins/MigraDoc.DocumentObjectModel.dll differ
diff --git a/Cop_25/PluginApp/plugins/MigraDoc.Rendering-gdi.dll b/Cop_25/PluginApp/plugins/MigraDoc.Rendering-gdi.dll
new file mode 100644
index 0000000..f76d616
Binary files /dev/null and b/Cop_25/PluginApp/plugins/MigraDoc.Rendering-gdi.dll differ
diff --git a/Cop_25/PluginApp/plugins/MigraDoc.Rendering.dll b/Cop_25/PluginApp/plugins/MigraDoc.Rendering.dll
new file mode 100644
index 0000000..9c14fbe
Binary files /dev/null and b/Cop_25/PluginApp/plugins/MigraDoc.Rendering.dll differ
diff --git a/Cop_25/PluginApp/plugins/MigraDoc.RtfRendering-gdi.dll b/Cop_25/PluginApp/plugins/MigraDoc.RtfRendering-gdi.dll
new file mode 100644
index 0000000..10c59a4
Binary files /dev/null and b/Cop_25/PluginApp/plugins/MigraDoc.RtfRendering-gdi.dll differ
diff --git a/Cop_25/PluginApp/plugins/Models.dll b/Cop_25/PluginApp/plugins/Models.dll
new file mode 100644
index 0000000..d05e504
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Models.dll differ
diff --git a/Cop_25/PluginApp/plugins/NotVisualComponent2.dll b/Cop_25/PluginApp/plugins/NotVisualComponent2.dll
new file mode 100644
index 0000000..c6345a8
Binary files /dev/null and b/Cop_25/PluginApp/plugins/NotVisualComponent2.dll differ
diff --git a/Cop_25/PluginApp/plugins/Npgsql.EntityFrameworkCore.PostgreSQL.dll b/Cop_25/PluginApp/plugins/Npgsql.EntityFrameworkCore.PostgreSQL.dll
new file mode 100644
index 0000000..7fcf45f
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Npgsql.EntityFrameworkCore.PostgreSQL.dll differ
diff --git a/Cop_25/PluginApp/plugins/Npgsql.dll b/Cop_25/PluginApp/plugins/Npgsql.dll
new file mode 100644
index 0000000..658bfd6
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Npgsql.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp-gdi.dll b/Cop_25/PluginApp/plugins/PdfSharp-gdi.dll
new file mode 100644
index 0000000..b7ff608
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp-gdi.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp.Charting-gdi.dll b/Cop_25/PluginApp/plugins/PdfSharp.Charting-gdi.dll
new file mode 100644
index 0000000..8bb8f10
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp.Charting-gdi.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp.Charting.dll b/Cop_25/PluginApp/plugins/PdfSharp.Charting.dll
new file mode 100644
index 0000000..384a0f0
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp.Charting.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp.Quality-gdi.dll b/Cop_25/PluginApp/plugins/PdfSharp.Quality-gdi.dll
new file mode 100644
index 0000000..dda5371
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp.Quality-gdi.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp.Snippets-gdi.dll b/Cop_25/PluginApp/plugins/PdfSharp.Snippets-gdi.dll
new file mode 100644
index 0000000..5ddd13e
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp.Snippets-gdi.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp.System.dll b/Cop_25/PluginApp/plugins/PdfSharp.System.dll
new file mode 100644
index 0000000..e8dded5
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp.System.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp.WPFonts.dll b/Cop_25/PluginApp/plugins/PdfSharp.WPFonts.dll
new file mode 100644
index 0000000..9a7c2ca
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp.WPFonts.dll differ
diff --git a/Cop_25/PluginApp/plugins/PdfSharp.dll b/Cop_25/PluginApp/plugins/PdfSharp.dll
new file mode 100644
index 0000000..aa564e1
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PdfSharp.dll differ
diff --git a/Cop_25/PluginApp/plugins/PluginsConventionLibrary.dll b/Cop_25/PluginApp/plugins/PluginsConventionLibrary.dll
new file mode 100644
index 0000000..fbfa872
Binary files /dev/null and b/Cop_25/PluginApp/plugins/PluginsConventionLibrary.dll differ
diff --git a/Cop_25/PluginApp/plugins/SkiaSharp.dll b/Cop_25/PluginApp/plugins/SkiaSharp.dll
new file mode 100644
index 0000000..6e8e7ca
Binary files /dev/null and b/Cop_25/PluginApp/plugins/SkiaSharp.dll differ
diff --git a/Cop_25/PluginApp/plugins/Spire.Doc.dll b/Cop_25/PluginApp/plugins/Spire.Doc.dll
new file mode 100644
index 0000000..fbeafad
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Spire.Doc.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.Data.OleDb.dll b/Cop_25/PluginApp/plugins/System.Data.OleDb.dll
new file mode 100644
index 0000000..b878266
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.Data.OleDb.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.Data.SqlClient.dll b/Cop_25/PluginApp/plugins/System.Data.SqlClient.dll
new file mode 100644
index 0000000..8b1c1af
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.Data.SqlClient.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.IO.Packaging.dll b/Cop_25/PluginApp/plugins/System.IO.Packaging.dll
new file mode 100644
index 0000000..eb95db7
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.IO.Packaging.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.IdentityModel.Tokens.Jwt.dll b/Cop_25/PluginApp/plugins/System.IdentityModel.Tokens.Jwt.dll
new file mode 100644
index 0000000..efd3c61
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.IdentityModel.Tokens.Jwt.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.Runtime.Caching.dll b/Cop_25/PluginApp/plugins/System.Runtime.Caching.dll
new file mode 100644
index 0000000..6fedfab
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.Runtime.Caching.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.Web.DataVisualization.Design.dll b/Cop_25/PluginApp/plugins/System.Web.DataVisualization.Design.dll
new file mode 100644
index 0000000..2010703
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.Web.DataVisualization.Design.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.Web.DataVisualization.dll b/Cop_25/PluginApp/plugins/System.Web.DataVisualization.dll
new file mode 100644
index 0000000..d9f8d0c
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.Web.DataVisualization.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.Windows.Forms.DataVisualization.Design.dll b/Cop_25/PluginApp/plugins/System.Windows.Forms.DataVisualization.Design.dll
new file mode 100644
index 0000000..144b0f2
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.Windows.Forms.DataVisualization.Design.dll differ
diff --git a/Cop_25/PluginApp/plugins/System.Windows.Forms.DataVisualization.dll b/Cop_25/PluginApp/plugins/System.Windows.Forms.DataVisualization.dll
new file mode 100644
index 0000000..7650cf3
Binary files /dev/null and b/Cop_25/PluginApp/plugins/System.Windows.Forms.DataVisualization.dll differ
diff --git a/Cop_25/PluginApp/plugins/Xceed.Document.NET5.dll b/Cop_25/PluginApp/plugins/Xceed.Document.NET5.dll
new file mode 100644
index 0000000..62c5d81
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Xceed.Document.NET5.dll differ
diff --git a/Cop_25/PluginApp/plugins/Xceed.Words.NET5.dll b/Cop_25/PluginApp/plugins/Xceed.Words.NET5.dll
new file mode 100644
index 0000000..f345daf
Binary files /dev/null and b/Cop_25/PluginApp/plugins/Xceed.Words.NET5.dll differ
diff --git a/Cop_25/PluginsConventionLibrary/IPluginsConvention.cs b/Cop_25/PluginsConventionLibrary/IPluginsConvention.cs
new file mode 100644
index 0000000..49d42d8
--- /dev/null
+++ b/Cop_25/PluginsConventionLibrary/IPluginsConvention.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PluginsConventionLibrary
+{
+ public interface IPluginsConvention
+ {
+ ///
+ /// Название плагина
+ ///
+ string PluginName { get; }
+ ///
+ /// Получение контрола для вывода набора данных
+ ///
+ UserControl GetControl { get; }
+ ///
+ /// Получение элемента, выбранного в контроле
+ ///
+ PluginsConventionElement GetElement { get; }
+ ///
+ /// Получение формы для создания/редактирования объекта
+ ///
+ ///
+ ///
+ Form GetForm(PluginsConventionElement element);
+ ///
+ /// Получение формы для работы со справочником
+ ///
+ ///
+ Form GetThesaurus();
+ ///
+ /// Удаление элемента
+ /// ///
+ ///
+ ///
+ bool DeleteElement(PluginsConventionElement element);
+ ///
+ /// Обновление набора данных в контроле
+ ///
+ void ReloadData();
+ ///
+ /// Создание простого документа
+ ///
+ ///
+ ///
+ bool CreateSimpleDocument(PluginsConventionSaveDocument saveDocument);
+ ///
+ /// Создание простого документа
+ ///
+ ///
+ ///
+ bool CreateTableDocument(PluginsConventionSaveDocument saveDocument);
+ ///
+ /// Создание документа с диаграммой
+ ///
+ ///
+ ///
+ bool CreateChartDocument(PluginsConventionSaveDocument saveDocument);
+ }
+}
diff --git a/Cop_25/PluginsConventionLibrary/PluginsConventionElement.cs b/Cop_25/PluginsConventionLibrary/PluginsConventionElement.cs
new file mode 100644
index 0000000..775c74a
--- /dev/null
+++ b/Cop_25/PluginsConventionLibrary/PluginsConventionElement.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PluginsConventionLibrary
+{
+ public class PluginsConventionElement
+ {
+ public Guid Id { get; set; }
+ }
+}
diff --git a/Cop_25/PluginsConventionLibrary/PluginsConventionLibrary.csproj b/Cop_25/PluginsConventionLibrary/PluginsConventionLibrary.csproj
new file mode 100644
index 0000000..f692d1f
--- /dev/null
+++ b/Cop_25/PluginsConventionLibrary/PluginsConventionLibrary.csproj
@@ -0,0 +1,10 @@
+
+
+
+ net8.0-windows
+ enable
+ true
+ enable
+
+
+
diff --git a/Cop_25/PluginsConventionLibrary/PluginsConventionSaveDocument.cs b/Cop_25/PluginsConventionLibrary/PluginsConventionSaveDocument.cs
new file mode 100644
index 0000000..f902bc6
--- /dev/null
+++ b/Cop_25/PluginsConventionLibrary/PluginsConventionSaveDocument.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PluginsConventionLibrary
+{
+ public class PluginsConventionSaveDocument
+ {
+ public string FileName { get; set; }
+ }
+}