diff --git a/WinFormsProject/AppView/AppView.csproj b/WinFormsProject/AppView/AppView.csproj index db7c8b7..11b9c7c 100644 --- a/WinFormsProject/AppView/AppView.csproj +++ b/WinFormsProject/AppView/AppView.csproj @@ -21,7 +21,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/WinFormsProject/AppView/PluginsConvention.cs b/WinFormsProject/AppView/PluginsConvention.cs new file mode 100644 index 0000000..ee80b67 --- /dev/null +++ b/WinFormsProject/AppView/PluginsConvention.cs @@ -0,0 +1,220 @@ +using Contracts.StorageContracts; +using Contracts.ViewModels; +using ControlsLibraryNet60.Data; +using ControlsLibraryNet60.Models; +using DateBaseImplement.Implements; +using PdfFormsLibrary; +using PluginsConventionLibrary; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using WinFormsLibrary; +using WinFormsLibrary.not_visual; +using WinFormsLibrary.SupportClasses; + +namespace AppView +{ + public class PluginsConvention : IPluginsConvention + { + private readonly IProviderStorage _providerStorage; + private readonly ITypeStorage _typeStorage; + private readonly DocumentWithImage documentWithImage1; + private readonly Table2column table2column1; + private readonly Gistograma gistograma1; + private readonly ControlDataTableTable DataTable = new ControlDataTableTable(); + + public string PluginName { get; set; } = "LabWork_03_plugin"; + + public UserControl GetControl + { + get + { + ReloadData(); + return DataTable; + } + } + + public PluginsConventionElement GetElement + { + get + { + var provider = DataTable.GetSelectedObject(); + int id = -1; + if (provider != null) + { + id = Convert.ToInt32(provider.Id); + } + + byte[] bytes = new byte[16]; + + BitConverter.GetBytes(id).CopyTo(bytes, 0); + + return new() + { + Id = new Guid(bytes) + }; + } + } + + public PluginsConvention() + { + _providerStorage = new ProviderStorage(); + _typeStorage = new TypeStorage(); + documentWithImage1 = new(); + table2column1 = new(); + gistograma1 = new(); + + List columns = new List + { + new DataTableColumnConfig + { + ColumnHeader = "Id", + PropertyName = "Id", + Visible = false + }, + new DataTableColumnConfig + { + ColumnHeader = "Название", + PropertyName = "Name", + Visible = true + }, + new DataTableColumnConfig + { + ColumnHeader = "Тип изделий", + PropertyName = "Type", + Visible = true + }, + new DataTableColumnConfig + { + ColumnHeader = "Телефон", + PropertyName = "Number", + Visible = true + } + }; + + DataTable.LoadColumns(columns); + } + + public Form GetForm(PluginsConventionElement element) + { + if (element == null) + { + return new FormProvider(_providerStorage, _typeStorage); + } + else + { + FormProvider form = new FormProvider(_providerStorage, _typeStorage); + form.Id = element.Id.GetHashCode(); + return form; + } + } + + public Form GetThesaurus() + { + return new FormType(_typeStorage); + } + + public bool DeleteElement(PluginsConventionElement element) + { + _providerStorage.Delete( + new(element.Id.GetHashCode()) + ); + return true; + } + + public void ReloadData() + { + try + { + var list = _providerStorage.GetFullList(); + DataTable.Clear(); + DataTable.AddTable(list); + } + catch (Exception ex) + { + MessageBox.Show( + ex.Message, + "Ошибка", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + } + } + + public bool CreateWordDocument(PluginsConventionSaveDocument saveDocument) + { + ImageClass info = new ImageClass(); + + var images = _providerStorage.GetFullList().Select(x => x.Logo).ToList(); + + info.Title = "Images"; + info.Path = saveDocument.FileName; + info.Files = images; + + documentWithImage1.CreateDocument(info); + return true; + } + + public bool CreateTableDocument(PluginsConventionSaveDocument saveDocument) + { + System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); + + List columnDefinitionsUp = new List { + new ColumnDefinition{Header = "#", PropertyName = "Id", Weight = 30}, + new ColumnDefinition{Header = "Информация", PropertyName = "NumberType", Weight = 30}, + new ColumnDefinition{Header = "", PropertyName = "NumberType", Weight = 30}, + new ColumnDefinition{Header = "Номер телефона", PropertyName = "Number", Weight = 30}, + }; + List columnDefinitionsDown = new List { + new ColumnDefinition{Header = "#", PropertyName = "Id", Weight = 30}, + new ColumnDefinition{Header = "Название", PropertyName = "Name", Weight = 30}, + new ColumnDefinition{Header = "Тип изделия", PropertyName = "Type", Weight = 30}, + new ColumnDefinition{Header = "-", PropertyName = "Number", Weight = 30}, + }; + + var providers = _providerStorage.GetFullList(); + + List mergedColums = new() { new int[] { 1, 2 } }; + + BigTable info = new(saveDocument.FileName, "Table", columnDefinitionsUp, columnDefinitionsDown, providers, mergedColums); + + table2column1.CreateTable(info); + MessageBox.Show("Готово"); + return true; + } + + public bool CreateChartDocument(PluginsConventionSaveDocument saveDocument) + { + + var providers = _providerStorage.GetFullList(); + + var uniqueTypes = providers.Select(p => p.Type).Distinct(); + + List data = new List(); + + foreach (var uniqueType in uniqueTypes) + { + var typeProviders = providers.Where(p => p.Type == uniqueType).ToList(); + + var dataList = new List(); + + // Используем Count() для подсчета общего количества поставщиков каждого типа + int totalCount = typeProviders.Count(); + + ChartData chData = new ChartData(); + chData.SeriesName = uniqueType; + chData.Data = new double[] { totalCount }; + + data.Add(chData); + } + + gistograma1.GenerateExcelChartDocument(saveDocument.FileName, "Сводка по типам изделия.", "Количество поставщиков для товаров каждого типа", WinFormsLibrary.not_visual.LegendPosition.Bottom, data); + return true; + } + + + } +} diff --git a/WinFormsProject/Contracts/BindingModels/ProviderBindingModel.cs b/WinFormsProject/Contracts/BindingModels/ProviderBindingModel.cs index 37e4e07..8576299 100644 --- a/WinFormsProject/Contracts/BindingModels/ProviderBindingModel.cs +++ b/WinFormsProject/Contracts/BindingModels/ProviderBindingModel.cs @@ -22,5 +22,10 @@ namespace Contracts.BindingModels { Id = provider.Id; } + + public ProviderBindingModel(int id) + { + Id = id; + } } } diff --git a/WinFormsProject/Plugins/AppView.dll b/WinFormsProject/Plugins/AppView.dll new file mode 100644 index 0000000..2246454 Binary files /dev/null and b/WinFormsProject/Plugins/AppView.dll differ diff --git a/WinFormsProject/Plugins/Aspose.Words.Pdf2Word.dll b/WinFormsProject/Plugins/Aspose.Words.Pdf2Word.dll new file mode 100644 index 0000000..72d08f0 Binary files /dev/null and b/WinFormsProject/Plugins/Aspose.Words.Pdf2Word.dll differ diff --git a/WinFormsProject/Plugins/Aspose.Words.dll b/WinFormsProject/Plugins/Aspose.Words.dll new file mode 100644 index 0000000..10946f7 Binary files /dev/null and b/WinFormsProject/Plugins/Aspose.Words.dll differ diff --git a/WinFormsProject/Plugins/BouncyCastle.Cryptography.dll b/WinFormsProject/Plugins/BouncyCastle.Cryptography.dll new file mode 100644 index 0000000..637242d Binary files /dev/null and b/WinFormsProject/Plugins/BouncyCastle.Cryptography.dll differ diff --git a/WinFormsProject/Plugins/ComponentsLibraryNet60.dll b/WinFormsProject/Plugins/ComponentsLibraryNet60.dll new file mode 100644 index 0000000..9807306 Binary files /dev/null and b/WinFormsProject/Plugins/ComponentsLibraryNet60.dll differ diff --git a/WinFormsProject/Plugins/Contracts.dll b/WinFormsProject/Plugins/Contracts.dll new file mode 100644 index 0000000..88031fb Binary files /dev/null and b/WinFormsProject/Plugins/Contracts.dll differ diff --git a/WinFormsProject/Plugins/ControlsLibraryNet60.dll b/WinFormsProject/Plugins/ControlsLibraryNet60.dll new file mode 100644 index 0000000..3d14013 Binary files /dev/null and b/WinFormsProject/Plugins/ControlsLibraryNet60.dll differ diff --git a/WinFormsProject/Plugins/DataModels.dll b/WinFormsProject/Plugins/DataModels.dll new file mode 100644 index 0000000..00fe45d Binary files /dev/null and b/WinFormsProject/Plugins/DataModels.dll differ diff --git a/WinFormsProject/Plugins/DateBaseImplement.dll b/WinFormsProject/Plugins/DateBaseImplement.dll new file mode 100644 index 0000000..d1f34a7 Binary files /dev/null and b/WinFormsProject/Plugins/DateBaseImplement.dll differ diff --git a/WinFormsProject/Plugins/DocumentFormat.OpenXml.dll b/WinFormsProject/Plugins/DocumentFormat.OpenXml.dll new file mode 100644 index 0000000..ccdb81c Binary files /dev/null and b/WinFormsProject/Plugins/DocumentFormat.OpenXml.dll differ diff --git a/WinFormsProject/Plugins/EPPlus.Interfaces.dll b/WinFormsProject/Plugins/EPPlus.Interfaces.dll new file mode 100644 index 0000000..588ea51 Binary files /dev/null and b/WinFormsProject/Plugins/EPPlus.Interfaces.dll differ diff --git a/WinFormsProject/Plugins/EPPlus.System.Drawing.dll b/WinFormsProject/Plugins/EPPlus.System.Drawing.dll new file mode 100644 index 0000000..cea9325 Binary files /dev/null and b/WinFormsProject/Plugins/EPPlus.System.Drawing.dll differ diff --git a/WinFormsProject/Plugins/EPPlus.dll b/WinFormsProject/Plugins/EPPlus.dll new file mode 100644 index 0000000..e700d6e Binary files /dev/null and b/WinFormsProject/Plugins/EPPlus.dll differ diff --git a/WinFormsProject/Plugins/Enums.NET.dll b/WinFormsProject/Plugins/Enums.NET.dll new file mode 100644 index 0000000..adc8614 Binary files /dev/null and b/WinFormsProject/Plugins/Enums.NET.dll differ diff --git a/WinFormsProject/Plugins/ExcelFormsLibrary.dll b/WinFormsProject/Plugins/ExcelFormsLibrary.dll new file mode 100644 index 0000000..4a36d9c Binary files /dev/null and b/WinFormsProject/Plugins/ExcelFormsLibrary.dll differ diff --git a/WinFormsProject/Plugins/Humanizer.dll b/WinFormsProject/Plugins/Humanizer.dll new file mode 100644 index 0000000..c9a7ef8 Binary files /dev/null and b/WinFormsProject/Plugins/Humanizer.dll differ diff --git a/WinFormsProject/Plugins/ICSharpCode.SharpZipLib.dll b/WinFormsProject/Plugins/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..8a74343 Binary files /dev/null and b/WinFormsProject/Plugins/ICSharpCode.SharpZipLib.dll differ diff --git a/WinFormsProject/Plugins/MathNet.Numerics.dll b/WinFormsProject/Plugins/MathNet.Numerics.dll new file mode 100644 index 0000000..71d6b4c Binary files /dev/null and b/WinFormsProject/Plugins/MathNet.Numerics.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Abstractions.dll b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Abstractions.dll new file mode 100644 index 0000000..a5a4d91 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Abstractions.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Design.dll b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Design.dll new file mode 100644 index 0000000..de4ea40 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Design.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Relational.dll b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Relational.dll new file mode 100644 index 0000000..8681a8e Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.Relational.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.dll b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.dll new file mode 100644 index 0000000..1caeb31 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.EntityFrameworkCore.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Caching.Abstractions.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Caching.Abstractions.dll new file mode 100644 index 0000000..be73869 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Caching.Abstractions.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Caching.Memory.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Caching.Memory.dll new file mode 100644 index 0000000..561804a Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Caching.Memory.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.Abstractions.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.Abstractions.dll new file mode 100644 index 0000000..3a12ec4 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.Abstractions.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.FileExtensions.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.FileExtensions.dll new file mode 100644 index 0000000..160814d Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.FileExtensions.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.Json.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.Json.dll new file mode 100644 index 0000000..1c9ba24 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.Json.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.dll new file mode 100644 index 0000000..4c0a93b Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Configuration.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/WinFormsProject/Plugins/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..11e5f2e Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.DependencyInjection.dll b/WinFormsProject/Plugins/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 0000000..2c64257 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.DependencyModel.dll b/WinFormsProject/Plugins/Microsoft.Extensions.DependencyModel.dll new file mode 100644 index 0000000..072af1f Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.DependencyModel.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.FileProviders.Abstractions.dll b/WinFormsProject/Plugins/Microsoft.Extensions.FileProviders.Abstractions.dll new file mode 100644 index 0000000..d1045b6 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.FileProviders.Abstractions.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.FileProviders.Physical.dll b/WinFormsProject/Plugins/Microsoft.Extensions.FileProviders.Physical.dll new file mode 100644 index 0000000..e712dbe Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.FileProviders.Physical.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.FileSystemGlobbing.dll b/WinFormsProject/Plugins/Microsoft.Extensions.FileSystemGlobbing.dll new file mode 100644 index 0000000..61c4e0c Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.FileSystemGlobbing.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Logging.Abstractions.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Logging.Abstractions.dll new file mode 100644 index 0000000..03edd8f Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Logging.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Logging.dll new file mode 100644 index 0000000..c53f5d2 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Logging.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Options.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Options.dll new file mode 100644 index 0000000..3987d66 Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Options.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.Extensions.Primitives.dll b/WinFormsProject/Plugins/Microsoft.Extensions.Primitives.dll new file mode 100644 index 0000000..081abea Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.Extensions.Primitives.dll differ diff --git a/WinFormsProject/Plugins/Microsoft.IO.RecyclableMemoryStream.dll b/WinFormsProject/Plugins/Microsoft.IO.RecyclableMemoryStream.dll new file mode 100644 index 0000000..6d4515a Binary files /dev/null and b/WinFormsProject/Plugins/Microsoft.IO.RecyclableMemoryStream.dll differ diff --git a/WinFormsProject/Plugins/MigraDoc.DocumentObjectModel.dll b/WinFormsProject/Plugins/MigraDoc.DocumentObjectModel.dll new file mode 100644 index 0000000..2bf457c Binary files /dev/null and b/WinFormsProject/Plugins/MigraDoc.DocumentObjectModel.dll differ diff --git a/WinFormsProject/Plugins/MigraDoc.Rendering.dll b/WinFormsProject/Plugins/MigraDoc.Rendering.dll new file mode 100644 index 0000000..9c14fbe Binary files /dev/null and b/WinFormsProject/Plugins/MigraDoc.Rendering.dll differ diff --git a/WinFormsProject/Plugins/Mono.TextTemplating.dll b/WinFormsProject/Plugins/Mono.TextTemplating.dll new file mode 100644 index 0000000..d5a4b3c Binary files /dev/null and b/WinFormsProject/Plugins/Mono.TextTemplating.dll differ diff --git a/WinFormsProject/Plugins/NPOI.Core.dll b/WinFormsProject/Plugins/NPOI.Core.dll new file mode 100644 index 0000000..fad3f0a Binary files /dev/null and b/WinFormsProject/Plugins/NPOI.Core.dll differ diff --git a/WinFormsProject/Plugins/NPOI.OOXML.dll b/WinFormsProject/Plugins/NPOI.OOXML.dll new file mode 100644 index 0000000..166c342 Binary files /dev/null and b/WinFormsProject/Plugins/NPOI.OOXML.dll differ diff --git a/WinFormsProject/Plugins/NPOI.OpenXml4Net.dll b/WinFormsProject/Plugins/NPOI.OpenXml4Net.dll new file mode 100644 index 0000000..571415f Binary files /dev/null and b/WinFormsProject/Plugins/NPOI.OpenXml4Net.dll differ diff --git a/WinFormsProject/Plugins/NPOI.OpenXmlFormats.dll b/WinFormsProject/Plugins/NPOI.OpenXmlFormats.dll new file mode 100644 index 0000000..724ff8c Binary files /dev/null and b/WinFormsProject/Plugins/NPOI.OpenXmlFormats.dll differ diff --git a/WinFormsProject/Plugins/Npgsql.EntityFrameworkCore.PostgreSQL.dll b/WinFormsProject/Plugins/Npgsql.EntityFrameworkCore.PostgreSQL.dll new file mode 100644 index 0000000..bd22f65 Binary files /dev/null and b/WinFormsProject/Plugins/Npgsql.EntityFrameworkCore.PostgreSQL.dll differ diff --git a/WinFormsProject/Plugins/Npgsql.dll b/WinFormsProject/Plugins/Npgsql.dll new file mode 100644 index 0000000..4a8471b Binary files /dev/null and b/WinFormsProject/Plugins/Npgsql.dll differ diff --git a/WinFormsProject/Plugins/OxyPlot.WindowsForms.dll b/WinFormsProject/Plugins/OxyPlot.WindowsForms.dll new file mode 100644 index 0000000..9b2e151 Binary files /dev/null and b/WinFormsProject/Plugins/OxyPlot.WindowsForms.dll differ diff --git a/WinFormsProject/Plugins/OxyPlot.dll b/WinFormsProject/Plugins/OxyPlot.dll new file mode 100644 index 0000000..0cfbb3b Binary files /dev/null and b/WinFormsProject/Plugins/OxyPlot.dll differ diff --git a/WinFormsProject/Plugins/PdfFormsLibrary.dll b/WinFormsProject/Plugins/PdfFormsLibrary.dll new file mode 100644 index 0000000..8f09e38 Binary files /dev/null and b/WinFormsProject/Plugins/PdfFormsLibrary.dll differ diff --git a/WinFormsProject/Plugins/PdfSharp.Charting.dll b/WinFormsProject/Plugins/PdfSharp.Charting.dll new file mode 100644 index 0000000..384a0f0 Binary files /dev/null and b/WinFormsProject/Plugins/PdfSharp.Charting.dll differ diff --git a/WinFormsProject/Plugins/PdfSharp.dll b/WinFormsProject/Plugins/PdfSharp.dll new file mode 100644 index 0000000..aa564e1 Binary files /dev/null and b/WinFormsProject/Plugins/PdfSharp.dll differ diff --git a/WinFormsProject/Plugins/PluginsConventionLibrary.dll b/WinFormsProject/Plugins/PluginsConventionLibrary.dll new file mode 100644 index 0000000..e3cd04b Binary files /dev/null and b/WinFormsProject/Plugins/PluginsConventionLibrary.dll differ diff --git a/WinFormsProject/Plugins/SixLabors.Fonts.dll b/WinFormsProject/Plugins/SixLabors.Fonts.dll new file mode 100644 index 0000000..281d8a7 Binary files /dev/null and b/WinFormsProject/Plugins/SixLabors.Fonts.dll differ diff --git a/WinFormsProject/Plugins/SixLabors.ImageSharp.dll b/WinFormsProject/Plugins/SixLabors.ImageSharp.dll new file mode 100644 index 0000000..ece54a0 Binary files /dev/null and b/WinFormsProject/Plugins/SixLabors.ImageSharp.dll differ diff --git a/WinFormsProject/Plugins/SkiaSharp.dll b/WinFormsProject/Plugins/SkiaSharp.dll new file mode 100644 index 0000000..518648c Binary files /dev/null and b/WinFormsProject/Plugins/SkiaSharp.dll differ diff --git a/WinFormsProject/Plugins/System.Security.Cryptography.Pkcs.dll b/WinFormsProject/Plugins/System.Security.Cryptography.Pkcs.dll new file mode 100644 index 0000000..eedf8e6 Binary files /dev/null and b/WinFormsProject/Plugins/System.Security.Cryptography.Pkcs.dll differ diff --git a/WinFormsProject/Plugins/System.Security.Cryptography.Xml.dll b/WinFormsProject/Plugins/System.Security.Cryptography.Xml.dll new file mode 100644 index 0000000..b43ece0 Binary files /dev/null and b/WinFormsProject/Plugins/System.Security.Cryptography.Xml.dll differ diff --git a/WinFormsProject/Plugins/System.Text.Encodings.Web.dll b/WinFormsProject/Plugins/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..13a219a Binary files /dev/null and b/WinFormsProject/Plugins/System.Text.Encodings.Web.dll differ diff --git a/WinFormsProject/Plugins/System.Text.Json.dll b/WinFormsProject/Plugins/System.Text.Json.dll new file mode 100644 index 0000000..2078226 Binary files /dev/null and b/WinFormsProject/Plugins/System.Text.Json.dll differ diff --git a/WinFormsProject/Plugins/WinFormsLibraryAA.dll b/WinFormsProject/Plugins/WinFormsLibraryAA.dll new file mode 100644 index 0000000..7a748c1 Binary files /dev/null and b/WinFormsProject/Plugins/WinFormsLibraryAA.dll differ diff --git a/WinFormsProject/Plugins/libs.XSSFWookbook.dll b/WinFormsProject/Plugins/libs.XSSFWookbook.dll new file mode 100644 index 0000000..772f659 Binary files /dev/null and b/WinFormsProject/Plugins/libs.XSSFWookbook.dll differ diff --git a/WinFormsProject/PluginsConventionLibrary/IPluginsConvention.cs b/WinFormsProject/PluginsConventionLibrary/IPluginsConvention.cs new file mode 100644 index 0000000..52de76e --- /dev/null +++ b/WinFormsProject/PluginsConventionLibrary/IPluginsConvention.cs @@ -0,0 +1,23 @@ +using ControlsLibraryNet60.Data; +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 CreateWordDocument(PluginsConventionSaveDocument saveDocument); + bool CreateTableDocument(PluginsConventionSaveDocument saveDocument); + bool CreateChartDocument(PluginsConventionSaveDocument saveDocument); + } +} diff --git a/WinFormsProject/PluginsConventionLibrary/PluginsConventionElement.cs b/WinFormsProject/PluginsConventionLibrary/PluginsConventionElement.cs new file mode 100644 index 0000000..775c74a --- /dev/null +++ b/WinFormsProject/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/WinFormsProject/PluginsConventionLibrary/PluginsConventionLibrary.csproj b/WinFormsProject/PluginsConventionLibrary/PluginsConventionLibrary.csproj new file mode 100644 index 0000000..9aad2c3 --- /dev/null +++ b/WinFormsProject/PluginsConventionLibrary/PluginsConventionLibrary.csproj @@ -0,0 +1,18 @@ + + + + net6.0-windows + enable + true + enable + + + + + + + + + + + diff --git a/WinFormsProject/PluginsConventionLibrary/PluginsConventionSaveDocument.cs b/WinFormsProject/PluginsConventionLibrary/PluginsConventionSaveDocument.cs new file mode 100644 index 0000000..f902bc6 --- /dev/null +++ b/WinFormsProject/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; } + } +} diff --git a/WinFormsProject/PluginsConventionLibraryNet60/IPluginsConvention.cs b/WinFormsProject/PluginsConventionLibraryNet60/IPluginsConvention.cs new file mode 100644 index 0000000..cc07e35 --- /dev/null +++ b/WinFormsProject/PluginsConventionLibraryNet60/IPluginsConvention.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PluginsConventionLibraryNet60 +{ + 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 CreateWordDocument(PluginsConventionSaveDocument saveDocument); + bool CreateTableDocument(PluginsConventionSaveDocument saveDocument); + bool CreateChartDocument(PluginsConventionSaveDocument saveDocument); + } +} diff --git a/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionElement.cs b/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionElement.cs new file mode 100644 index 0000000..6ebd7a3 --- /dev/null +++ b/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionElement.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PluginsConventionLibraryNet60 +{ + public class PluginsConventionElement + { + public Guid Id { get; set; } + } +} diff --git a/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionLibraryNet60.csproj b/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionLibraryNet60.csproj new file mode 100644 index 0000000..b57c89e --- /dev/null +++ b/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionLibraryNet60.csproj @@ -0,0 +1,11 @@ + + + + WinExe + net6.0-windows + enable + true + enable + + + \ No newline at end of file diff --git a/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionSaveDocument.cs b/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionSaveDocument.cs new file mode 100644 index 0000000..f1ea9aa --- /dev/null +++ b/WinFormsProject/PluginsConventionLibraryNet60/PluginsConventionSaveDocument.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PluginsConventionLibraryNet60 +{ + public class PluginsConventionSaveDocument + { + public string FileName { get; set; } + } +} diff --git a/WinFormsProject/WinFormsAppByPlugins/FormMain.Designer.cs b/WinFormsProject/WinFormsAppByPlugins/FormMain.Designer.cs new file mode 100644 index 0000000..232f7d6 --- /dev/null +++ b/WinFormsProject/WinFormsAppByPlugins/FormMain.Designer.cs @@ -0,0 +1,173 @@ +namespace WinFormsAppByPlugins +{ + 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.Items.AddRange(new ToolStripItem[] { ControlsStripMenuItem, ActionsToolStripMenuItem, DocsToolStripMenuItem }); + menuStrip.Location = new Point(0, 0); + menuStrip.Name = "menuStrip"; + menuStrip.Size = new Size(800, 24); + menuStrip.TabIndex = 0; + menuStrip.Text = "Меню"; + // + // ControlsStripMenuItem + // + ControlsStripMenuItem.Name = "ControlsStripMenuItem"; + ControlsStripMenuItem.Size = new Size(90, 20); + ControlsStripMenuItem.Text = "Компоненты"; + // + // ActionsToolStripMenuItem + // + ActionsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ThesaurusToolStripMenuItem, AddElementToolStripMenuItem, UpdElementToolStripMenuItem, DelElementToolStripMenuItem }); + ActionsToolStripMenuItem.Name = "ActionsToolStripMenuItem"; + ActionsToolStripMenuItem.Size = new Size(70, 20); + ActionsToolStripMenuItem.Text = "Действия"; + // + // ThesaurusToolStripMenuItem + // + ThesaurusToolStripMenuItem.Name = "ThesaurusToolStripMenuItem"; + ThesaurusToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.I; + ThesaurusToolStripMenuItem.Size = new Size(180, 22); + ThesaurusToolStripMenuItem.Text = "Справочник"; + ThesaurusToolStripMenuItem.Click += ThesaurusToolStripMenuItem_Click; + // + // AddElementToolStripMenuItem + // + AddElementToolStripMenuItem.Name = "AddElementToolStripMenuItem"; + AddElementToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.A; + AddElementToolStripMenuItem.Size = new Size(180, 22); + AddElementToolStripMenuItem.Text = "Добавить"; + AddElementToolStripMenuItem.Click += AddElementToolStripMenuItem_Click; + // + // UpdElementToolStripMenuItem + // + UpdElementToolStripMenuItem.Name = "UpdElementToolStripMenuItem"; + UpdElementToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.U; + UpdElementToolStripMenuItem.Size = new Size(180, 22); + UpdElementToolStripMenuItem.Text = "Изменить"; + UpdElementToolStripMenuItem.Click += UpdElementToolStripMenuItem_Click; + // + // DelElementToolStripMenuItem + // + DelElementToolStripMenuItem.Name = "DelElementToolStripMenuItem"; + DelElementToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.D; + DelElementToolStripMenuItem.Size = new Size(180, 22); + DelElementToolStripMenuItem.Text = "Удалить"; + DelElementToolStripMenuItem.Click += DelElementToolStripMenuItem_Click; + // + // DocsToolStripMenuItem + // + DocsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { SimpleDocToolStripMenuItem, TableDocToolStripMenuItem, ChartDocToolStripMenuItem }); + DocsToolStripMenuItem.Name = "DocsToolStripMenuItem"; + DocsToolStripMenuItem.Size = new Size(82, 20); + DocsToolStripMenuItem.Text = "Документы"; + // + // SimpleDocToolStripMenuItem + // + SimpleDocToolStripMenuItem.Name = "SimpleDocToolStripMenuItem"; + SimpleDocToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.S; + SimpleDocToolStripMenuItem.Size = new Size(233, 22); + SimpleDocToolStripMenuItem.Text = "Простой документ"; + SimpleDocToolStripMenuItem.Click += SimpleDocToolStripMenuItem_Click; + // + // TableDocToolStripMenuItem + // + TableDocToolStripMenuItem.Name = "TableDocToolStripMenuItem"; + TableDocToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.T; + TableDocToolStripMenuItem.Size = new Size(233, 22); + TableDocToolStripMenuItem.Text = "Документ с таблицой"; + TableDocToolStripMenuItem.Click += TableDocToolStripMenuItem_Click; + // + // ChartDocToolStripMenuItem + // + ChartDocToolStripMenuItem.Name = "ChartDocToolStripMenuItem"; + ChartDocToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.C; + ChartDocToolStripMenuItem.Size = new Size(233, 22); + ChartDocToolStripMenuItem.Text = "Круговая диаграмма"; + ChartDocToolStripMenuItem.Click += ChartDocToolStripMenuItem_Click; + // + // panelControl + // + panelControl.Dock = DockStyle.Fill; + panelControl.Location = new Point(0, 24); + panelControl.Name = "panelControl"; + panelControl.Size = new Size(800, 426); + panelControl.TabIndex = 1; + // + // FormMain + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(panelControl); + Controls.Add(menuStrip); + MainMenuStrip = menuStrip; + Name = "FormMain"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Главная форма"; + WindowState = FormWindowState.Maximized; + KeyDown += FormMain_KeyDown; + menuStrip.ResumeLayout(false); + menuStrip.PerformLayout(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem ControlsStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem DocsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem SimpleDocToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem TableDocToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem ChartDocToolStripMenuItem; + private System.Windows.Forms.Panel panelControl; + private System.Windows.Forms.ToolStripMenuItem ActionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem ThesaurusToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem AddElementToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem UpdElementToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem DelElementToolStripMenuItem; + } +} \ No newline at end of file diff --git a/WinFormsProject/WinFormsAppByPlugins/FormMain.cs b/WinFormsProject/WinFormsAppByPlugins/FormMain.cs new file mode 100644 index 0000000..4fd4907 --- /dev/null +++ b/WinFormsProject/WinFormsAppByPlugins/FormMain.cs @@ -0,0 +1,229 @@ +using Contracts.StorageContracts; +using PluginsConventionLibrary; +using System.Reflection; + +namespace WinFormsAppByPlugins +{ + public partial class FormMain : Form + { + private readonly Dictionary _plugins; + private string _selectedPlugin; + + public FormMain() + { + InitializeComponent(); + _plugins = new(); + LoadPlugins(); + _selectedPlugin = string.Empty; + } + + private void LoadPlugins() + { + List pluginsList = GetPlugins(); + + foreach (var plugin in pluginsList) + { + _plugins[plugin.PluginName] = plugin; + CreateMenuItem(plugin.PluginName); + } + } + + private List GetPlugins() + { + string currentDir = Environment.CurrentDirectory; + string pluginsDir = Directory.GetParent(currentDir).Parent.Parent.Parent.FullName + "\\Plugins"; // + string[] dllFiles = Directory.GetFiles( // - + pluginsDir, + "*.dll", + SearchOption.AllDirectories + ); + List plugins = new(); + foreach (string dllFile in dllFiles) + { + try + { + Assembly assembly = Assembly.LoadFrom(dllFile); // dll + Type[] types = assembly.GetTypes(); // , .. , .. dll + foreach (Type type in types) // + { + if (typeof(IPluginsConvention).IsAssignableFrom(type) && !type.IsInterface) // IPluginsConvention( ) + { + if (Activator.CreateInstance(type) is IPluginsConvention plugin) // ( ) + { + plugins.Add(plugin); // + } + } + } + } + catch (Exception ex) + { + MessageBox.Show( + ex.Message + ); + } + } + return plugins; + } + + private void CreateMenuItem(string pluginName) + { + ToolStripMenuItem menuItem = new(pluginName); + menuItem.Click += (object? sender, EventArgs e) => + { + UserControl userControl = _plugins[pluginName].GetControl; + if (userControl != null) + { + panelControl.Controls.Clear(); + userControl.Dock = DockStyle.Fill; + _plugins[pluginName].ReloadData(); + _selectedPlugin = pluginName; + 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() + { + SaveFileDialog saveFileDialog = new() + { + Filter = "Word Files|*.docx" + }; + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + _plugins[_selectedPlugin].CreateWordDocument(new PluginsConventionSaveDocument() { FileName = saveFileDialog.FileName }); + + } + } + private void CreateTableDoc() + { + SaveFileDialog saveFileDialog = new() + { + Filter = "PDF Files|*.pdf" + }; + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + _plugins[_selectedPlugin].CreateTableDocument(new PluginsConventionSaveDocument() { FileName = saveFileDialog.FileName }); + + } + } + private void CreateChartDoc() + { + SaveFileDialog saveFileDialog = new() + { + Filter = "Excel Files|*.xlsx" + }; + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + _plugins[_selectedPlugin].CreateChartDocument(new PluginsConventionSaveDocument() { FileName = saveFileDialog.FileName }); + } + } + + 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(); + + } +} \ No newline at end of file diff --git a/WinFormsProject/WinFormsAppByPlugins/FormMain.resx b/WinFormsProject/WinFormsAppByPlugins/FormMain.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/WinFormsProject/WinFormsAppByPlugins/FormMain.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/WinFormsProject/WinFormsAppByPlugins/Program.cs b/WinFormsProject/WinFormsAppByPlugins/Program.cs new file mode 100644 index 0000000..24ce584 --- /dev/null +++ b/WinFormsProject/WinFormsAppByPlugins/Program.cs @@ -0,0 +1,17 @@ +namespace WinFormsAppByPlugins +{ + 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/WinFormsProject/WinFormsAppByPlugins/WinFormsAppByPlugins.csproj b/WinFormsProject/WinFormsAppByPlugins/WinFormsAppByPlugins.csproj new file mode 100644 index 0000000..8c2f882 --- /dev/null +++ b/WinFormsProject/WinFormsAppByPlugins/WinFormsAppByPlugins.csproj @@ -0,0 +1,15 @@ + + + + WinExe + net6.0-windows + enable + true + enable + + + + + + + \ No newline at end of file diff --git a/WinFormsProject/WinFormsProject.sln b/WinFormsProject/WinFormsProject.sln index f05fbb7..71329e7 100644 --- a/WinFormsProject/WinFormsProject.sln +++ b/WinFormsProject/WinFormsProject.sln @@ -15,6 +15,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DateBaseImplement", "DateBa EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppView", "AppView\AppView.csproj", "{294B81DD-546F-40AD-9BCE-0F51F1D17D1A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsAppByPlugins", "WinFormsAppByPlugins\WinFormsAppByPlugins.csproj", "{30A92893-83E6-4BB4-94B4-1C4B63C4D34D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginsConventionLibrary", "PluginsConventionLibrary\PluginsConventionLibrary.csproj", "{82A002B5-7103-462D-9415-DC56CB552353}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,6 +49,14 @@ Global {294B81DD-546F-40AD-9BCE-0F51F1D17D1A}.Debug|Any CPU.Build.0 = Debug|Any CPU {294B81DD-546F-40AD-9BCE-0F51F1D17D1A}.Release|Any CPU.ActiveCfg = Release|Any CPU {294B81DD-546F-40AD-9BCE-0F51F1D17D1A}.Release|Any CPU.Build.0 = Release|Any CPU + {30A92893-83E6-4BB4-94B4-1C4B63C4D34D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30A92893-83E6-4BB4-94B4-1C4B63C4D34D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30A92893-83E6-4BB4-94B4-1C4B63C4D34D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30A92893-83E6-4BB4-94B4-1C4B63C4D34D}.Release|Any CPU.Build.0 = Release|Any CPU + {82A002B5-7103-462D-9415-DC56CB552353}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82A002B5-7103-462D-9415-DC56CB552353}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82A002B5-7103-462D-9415-DC56CB552353}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82A002B5-7103-462D-9415-DC56CB552353}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE