From 4fd4259f69d409bf7f06bd61cfa3ae588d6ed12e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9F=D0=BE=D1=82?=
 =?UTF-8?q?=D0=B0=D0=BF=D0=BE=D0=B2?= <ns.potapov@yandex.ru>
Date: Sun, 15 Dec 2024 00:15:02 +0400
Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20=D0=BA?=
 =?UTF-8?q?=D0=BB=D0=B0=D1=81=D1=81=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D1=80?=
 =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8?=
 =?UTF-8?q?=D0=BD=D0=BE=D0=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../PluginConventions/IPluginsConvention.cs   | 57 +++++++++++++++++++
 .../PluginConventions.csproj                  |  3 +-
 .../PluginsConventionElement.cs               |  7 +++
 .../PluginsConventionSaveDocument.cs          |  7 +++
 4 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 InternetShop/PluginConventions/IPluginsConvention.cs
 create mode 100644 InternetShop/PluginConventions/PluginsConventionElement.cs
 create mode 100644 InternetShop/PluginConventions/PluginsConventionSaveDocument.cs

diff --git a/InternetShop/PluginConventions/IPluginsConvention.cs b/InternetShop/PluginConventions/IPluginsConvention.cs
new file mode 100644
index 0000000..dc231e8
--- /dev/null
+++ b/InternetShop/PluginConventions/IPluginsConvention.cs
@@ -0,0 +1,57 @@
+namespace PluginConventions
+{
+    public interface IPluginsConvention
+    {
+        /// <summary>
+        /// Название плагина
+        /// </summary>
+        string PluginName { get; }
+        /// <summary>
+        /// Получение контрола для вывода набора данных
+        /// </summary>
+        UserControl GetControl { get; }
+        /// <summary>
+        /// Получение элемента, выбранного в контроле
+        /// </summary>
+        PluginsConventionElement GetElement { get; }
+        /// <summary>
+        /// Получение формы для создания/редактирования объекта
+        /// </summary>
+        /// <param name="element"></param>
+        /// <returns></returns>
+        Form GetForm(PluginsConventionElement element);
+        /// <summary>
+        /// Получение формы для работы со справочником
+        /// </summary>
+        /// <returns></returns>
+        Form GetThesaurus();
+        /// <summary>
+        /// Удаление элемента
+        /// /// </summary>
+        /// <param name="element"></param>
+        /// <returns></returns>
+        bool DeleteElement(PluginsConventionElement element);
+        /// <summary>
+        /// Обновление набора данных в контроле
+        /// </summary>
+        void ReloadData();
+        /// <summary>
+        /// Создание простого документа
+        /// </summary>
+        /// <param name="saveDocument"></param>
+        /// <returns></returns>
+        bool CreateSimpleDocument(PluginsConventionSaveDocument saveDocument);
+        /// <summary>
+        /// Создание простого документа
+        /// </summary>
+        /// <param name="saveDocument"></param>
+        /// <returns></returns>
+        bool CreateTableDocument(PluginsConventionSaveDocument saveDocument);
+        /// <summary>
+        /// Создание документа с диаграммой
+        /// </summary>
+        /// <param name="saveDocument"></param>
+        /// <returns></returns>
+        bool CreateChartDocument(PluginsConventionSaveDocument saveDocument);
+    }
+}
diff --git a/InternetShop/PluginConventions/PluginConventions.csproj b/InternetShop/PluginConventions/PluginConventions.csproj
index fa71b7a..9b28a9e 100644
--- a/InternetShop/PluginConventions/PluginConventions.csproj
+++ b/InternetShop/PluginConventions/PluginConventions.csproj
@@ -1,9 +1,10 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net8.0</TargetFramework>
+    <TargetFramework>net8.0-windows</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
+	<UseWindowsForms>true</UseWindowsForms>
   </PropertyGroup>
 
 </Project>
diff --git a/InternetShop/PluginConventions/PluginsConventionElement.cs b/InternetShop/PluginConventions/PluginsConventionElement.cs
new file mode 100644
index 0000000..c66c0e2
--- /dev/null
+++ b/InternetShop/PluginConventions/PluginsConventionElement.cs
@@ -0,0 +1,7 @@
+namespace PluginConventions
+{
+    public class PluginsConventionElement
+    {
+        public Guid Id { get; set; }
+    }
+}
diff --git a/InternetShop/PluginConventions/PluginsConventionSaveDocument.cs b/InternetShop/PluginConventions/PluginsConventionSaveDocument.cs
new file mode 100644
index 0000000..c3e3a64
--- /dev/null
+++ b/InternetShop/PluginConventions/PluginsConventionSaveDocument.cs
@@ -0,0 +1,7 @@
+namespace PluginConventions
+{
+    public class PluginsConventionSaveDocument
+    {
+        public string FileName { get; set; } = string.Empty;
+    }
+}