From 0b515dc8c4740fb737e8ffdcce009d584bb99406 Mon Sep 17 00:00:00 2001 From: abazov73 <92822431+abazov73@users.noreply.github.com> Date: Thu, 30 Nov 2023 19:37:39 +0400 Subject: [PATCH] Lab04: create plugins convertion library --- .gitignore | 2 + AbazovApp/AbazovApp.sln | 16 +++-- .../IPluginsConvention.cs | 65 +++++++++++++++++++ .../PluginsConventionElement.cs | 13 ++++ .../PluginsConventionLibrary.csproj | 10 +++ .../PluginsConventionSaveDocument.cs | 13 ++++ 6 files changed, 114 insertions(+), 5 deletions(-) create mode 100644 AbazovApp/PluginsConventionLibrary/IPluginsConvention.cs create mode 100644 AbazovApp/PluginsConventionLibrary/PluginsConventionElement.cs create mode 100644 AbazovApp/PluginsConventionLibrary/PluginsConventionLibrary.csproj create mode 100644 AbazovApp/PluginsConventionLibrary/PluginsConventionSaveDocument.cs diff --git a/.gitignore b/.gitignore index ca1c7a3..99b8a56 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ ## ## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore +*.dll + # User-specific files *.rsuser *.suo diff --git a/AbazovApp/AbazovApp.sln b/AbazovApp/AbazovApp.sln index 3e003a3..fc719ea 100644 --- a/AbazovApp/AbazovApp.sln +++ b/AbazovApp/AbazovApp.sln @@ -7,15 +7,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AbazovAppView", "AbazovAppV EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AbazovViewComponents", "AbazovViewComponents\AbazovViewComponents.csproj", "{070AAA71-3C9B-4E19-A89D-83372C630C6E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AccountsApp", "AccountsApp\AccountsApp.csproj", "{AFCB57A0-4332-4C32-9FB1-60548F7D7276}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AccountsApp", "AccountsApp\AccountsApp.csproj", "{AFCB57A0-4332-4C32-9FB1-60548F7D7276}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AccountsDataModels", "AccountsDataModels\AccountsDataModels.csproj", "{31DEDC68-889D-427B-ADDE-60F2ADE2C596}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AccountsDataModels", "AccountsDataModels\AccountsDataModels.csproj", "{31DEDC68-889D-427B-ADDE-60F2ADE2C596}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AccountsContracts", "AccountsContracts\AccountsContracts.csproj", "{CDA8B86A-9645-4D83-92D0-C8D2D85B734F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AccountsContracts", "AccountsContracts\AccountsContracts.csproj", "{CDA8B86A-9645-4D83-92D0-C8D2D85B734F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AccountsBusinessLogic", "AccountsBusinessLogic\AccountsBusinessLogic.csproj", "{D98A5D9F-A491-4A4B-A4A3-B1F388BAD18D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AccountsBusinessLogic", "AccountsBusinessLogic\AccountsBusinessLogic.csproj", "{D98A5D9F-A491-4A4B-A4A3-B1F388BAD18D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AccountsDataBaseImplement", "AccountsDataBaseImplement\AccountsDataBaseImplement.csproj", "{ACF95C0D-CEB3-41B9-8B7F-149BEEEE53CE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AccountsDataBaseImplement", "AccountsDataBaseImplement\AccountsDataBaseImplement.csproj", "{ACF95C0D-CEB3-41B9-8B7F-149BEEEE53CE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginsConventionLibrary", "PluginsConventionLibrary\PluginsConventionLibrary.csproj", "{B97362C6-7FB3-4696-BE00-7E42C4E40274}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +53,10 @@ Global {ACF95C0D-CEB3-41B9-8B7F-149BEEEE53CE}.Debug|Any CPU.Build.0 = Debug|Any CPU {ACF95C0D-CEB3-41B9-8B7F-149BEEEE53CE}.Release|Any CPU.ActiveCfg = Release|Any CPU {ACF95C0D-CEB3-41B9-8B7F-149BEEEE53CE}.Release|Any CPU.Build.0 = Release|Any CPU + {B97362C6-7FB3-4696-BE00-7E42C4E40274}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B97362C6-7FB3-4696-BE00-7E42C4E40274}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B97362C6-7FB3-4696-BE00-7E42C4E40274}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B97362C6-7FB3-4696-BE00-7E42C4E40274}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/AbazovApp/PluginsConventionLibrary/IPluginsConvention.cs b/AbazovApp/PluginsConventionLibrary/IPluginsConvention.cs new file mode 100644 index 0000000..b25facd --- /dev/null +++ b/AbazovApp/PluginsConventionLibrary/IPluginsConvention.cs @@ -0,0 +1,65 @@ +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/AbazovApp/PluginsConventionLibrary/PluginsConventionElement.cs b/AbazovApp/PluginsConventionLibrary/PluginsConventionElement.cs new file mode 100644 index 0000000..775c74a --- /dev/null +++ b/AbazovApp/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/AbazovApp/PluginsConventionLibrary/PluginsConventionLibrary.csproj b/AbazovApp/PluginsConventionLibrary/PluginsConventionLibrary.csproj new file mode 100644 index 0000000..2d722b9 --- /dev/null +++ b/AbazovApp/PluginsConventionLibrary/PluginsConventionLibrary.csproj @@ -0,0 +1,10 @@ + + + + net6.0-windows + enable + enable + true + + + diff --git a/AbazovApp/PluginsConventionLibrary/PluginsConventionSaveDocument.cs b/AbazovApp/PluginsConventionLibrary/PluginsConventionSaveDocument.cs new file mode 100644 index 0000000..f902bc6 --- /dev/null +++ b/AbazovApp/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; } + } +}