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; } + } +}