diff --git a/JewelryStore/FormComponents.cs b/JewelryStore/FormComponents.cs
index 76cf58a..6071dc4 100644
--- a/JewelryStore/FormComponents.cs
+++ b/JewelryStore/FormComponents.cs
@@ -32,25 +32,18 @@ namespace JewelryStore
}
private void LoadData()
{
- try
- {
- var list = _logic.ReadList(null);
- if (list != null)
- {
- dataGridView.DataSource = list;
- dataGridView.Columns["Id"].Visible = false;
- dataGridView.Columns["ComponentName"].AutoSizeMode =
- DataGridViewAutoSizeColumnMode.Fill;
- }
- _logger.LogInformation("Загрузка компонентов");
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки компонентов");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
- MessageBoxIcon.Error);
- }
- }
+ try
+ {
+ DataGridView.FillAndConfigGrid(_logic.ReadList(null));
+ _logger.LogInformation("Загрузка компонентов");
+
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки компонентов");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
private void buttonAdd_Click(object sender, EventArgs e)
{
diff --git a/JewelryStore/FormImplementers.cs b/JewelryStore/FormImplementers.cs
index 22fa746..5970a0c 100644
--- a/JewelryStore/FormImplementers.cs
+++ b/JewelryStore/FormImplementers.cs
@@ -96,25 +96,17 @@ namespace JewelryStore
private void LoadData()
{
- try
- {
- var list = _logic.ReadList(null);
-
- if (list != null)
- {
- DataGridView.DataSource = list;
- DataGridView.Columns["Id"].Visible = false;
- DataGridView.Columns["ImplementerFIO"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- }
-
- _logger.LogInformation("Загрузка исполнителей");
- }
-
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки исполнителей");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
+ try
+ {
+ dataGridView.FillAndConfigGrid(_logic.ReadList(null));
+ _logger.LogInformation("Загрузка исполнителей");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки исполнителей");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
}
}
diff --git a/JewelryStore/FormJewels.cs b/JewelryStore/FormJewels.cs
index 5f5f06f..fd2ffe0 100644
--- a/JewelryStore/FormJewels.cs
+++ b/JewelryStore/FormJewels.cs
@@ -27,28 +27,18 @@ namespace JewelryStore
private void LoadData()
{
- try
- {
- var list = _logic.ReadList(null);
+ try
+ {
+ DataGridView.FillAndConfigGrid(_logic.ReadList(null));
+ _logger.LogInformation("Загрузка изделий");
- if (list != null)
- {
- DataGridView.DataSource = list;
- DataGridView.Columns["Id"].Visible = false;
- DataGridView.Columns["JewelName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- DataGridView.Columns["JewelComponents"].Visible = false;
-
- }
-
- _logger.LogInformation("Загрузка компонентов");
-
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки компонентов");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки изделий");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
private void AddButton_Click(object sender, EventArgs e)
{
diff --git a/JewelryStore/FormMails.cs b/JewelryStore/FormMails.cs
index 5e37d56..6e44a70 100644
--- a/JewelryStore/FormMails.cs
+++ b/JewelryStore/FormMails.cs
@@ -29,15 +29,8 @@ namespace JewelryStore
{
try
{
- var list = _logic.ReadList(null);
- if (list != null)
- {
- DataGridView.DataSource = list;
- DataGridView.Columns["ClientId"].Visible = false;
- DataGridView.Columns["MessageId"].Visible = false;
- DataGridView.Columns["Body"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- }
- _logger.LogInformation("Загрузка писем");
+ dataGridView.FillAndConfigGrid(_logic.ReadList(null));
+ _logger.LogInformation("Загрузка списка писем");
}
catch (Exception ex)
{
diff --git a/JewelryStore/FormMain.cs b/JewelryStore/FormMain.cs
index 702f776..a7a23e1 100644
--- a/JewelryStore/FormMain.cs
+++ b/JewelryStore/FormMain.cs
@@ -42,27 +42,18 @@ namespace JewelryStore
}
private void LoadData()
{
- _logger.LogInformation("Загрузка заказов");
- try
- {
- var list = _orderLogic.ReadList(null);
-
- if (list != null)
- {
- dataGridView.DataSource = list;
- dataGridView.Columns["JewelId"].Visible = false;
- dataGridView.Columns["ClientId"].Visible = false;
- dataGridView.Columns["ImplementerId"].Visible = false;
- }
-
- _logger.LogInformation("Загрузка заказов");
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки заказов");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
+ try
+ {
+ DataGridView.FillAndConfigGrid(_orderLogic.ReadList(null));
+ _logger.LogInformation("Загрузка заказов");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки заказов");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
private void компонентыToolStripMenuItem_Click(object sender, EventArgs e)
{
diff --git a/JewelryStore/Program.cs b/JewelryStore/Program.cs
index 81d36ba..1856df7 100644
--- a/JewelryStore/Program.cs
+++ b/JewelryStore/Program.cs
@@ -11,95 +11,83 @@ using JewelryStoreBusinessLogic.OfficePackage;
using JewelryStoreBusinessLogic.OfficePackage.Implements;
using JewelryStoreBusinessLogic.MailWorker;
using JewelryStoreContracts.BindingModels;
+using JewelryStoreContracts.DI;
namespace JewelryStore
{
internal static class Program
{
- private static ServiceProvider? _serviceProvider;
- public static ServiceProvider? ServiceProvider => _serviceProvider;
+
///
/// 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();
- var services = new ServiceCollection();
- ConfigureServices(services);
- _serviceProvider = services.BuildServiceProvider();
- try
- {
- var mailSender = _serviceProvider.GetService();
- mailSender?.MailConfig(new MailConfigBindingModel
- {
- MailLogin = System.Configuration.ConfigurationManager.AppSettings["MailLogin"] ?? string.Empty,
- MailPassword = System.Configuration.ConfigurationManager.AppSettings["MailPassword"] ?? string.Empty,
- SmtpClientHost = System.Configuration.ConfigurationManager.AppSettings["SmtpClientHost"] ?? string.Empty,
- SmtpClientPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SmtpClientPort"]),
- PopHost = System.Configuration.ConfigurationManager.AppSettings["PopHost"] ?? string.Empty,
- PopPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["PopPort"])
- });
+ ApplicationConfiguration.Initialize();
+ InitDependency();
+ try
+ {
+ var mailSender = DependencyManager.Instance.Resolve(); mailSender?.MailConfig(new MailConfigBindingModel
+ {
+ MailLogin = System.Configuration.ConfigurationManager.AppSettings["MailLogin"] ?? string.Empty,
+ MailPassword = System.Configuration.ConfigurationManager.AppSettings["MailPassword"] ?? string.Empty,
+ SmtpClientHost = System.Configuration.ConfigurationManager.AppSettings["SmtpClientHost"] ?? string.Empty,
+ SmtpClientPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SmtpClientPort"]),
+ PopHost = System.Configuration.ConfigurationManager.AppSettings["PopHost"] ?? string.Empty,
+ PopPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["PopPort"])
+ });
- //
- var timer = new System.Threading.Timer(new TimerCallback(MailCheck!), null, 0, 100000);
- }
- catch (Exception ex)
- {
- var logger = _serviceProvider.GetService();
- logger?.LogError(ex, " ");
- }
- Application.Run(_serviceProvider.GetRequiredService());
- }
- private static void ConfigureServices(ServiceCollection services)
- {
- services.AddLogging(option =>
- {
- option.SetMinimumLevel(LogLevel.Information);
- option.AddNLog("nlog.config");
- });
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
+ var timer = new System.Threading.Timer(new TimerCallback(MailCheck!), null, 0, 100000);
+ }
+ catch (Exception ex)
+ {
+ var logger = DependencyManager.Instance.Resolve();
+ logger?.LogError(ex, "<22><> <20><> <20> <20><>");
+ }
+ Application.Run(DependencyManager.Instance.Resolve());
+ }
- services.AddTransient();
- services.AddSingleton();
+ private static void InitDependency()
+ {
+ DependencyManager.InitDependency();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
+ DependencyManager.Instance.AddLogging(option =>
+ {
+ option.SetMinimumLevel(LogLevel.Information);
+ option.AddNLog("nlog.config");
+ });
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType(true);
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- services.AddTransient();
- }
- private static void MailCheck(object obj) => ServiceProvider?.GetService()?.MailCheck();
- }
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ }
+ private static void MailCheck(object obj) => DependencyManager.Instance.Resolve()?.MailCheck();
+ }
}
\ No newline at end of file
diff --git a/JewelryStoreContracts/DI/ServiceDependencyContainer.cs b/JewelryStoreContracts/DI/ServiceDependencyContainer.cs
new file mode 100644
index 0000000..6723d24
--- /dev/null
+++ b/JewelryStoreContracts/DI/ServiceDependencyContainer.cs
@@ -0,0 +1,62 @@
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JewelryStoreContracts.DI
+{
+ public class ServiceDependencyContainer : IDependencyContainer
+ {
+ private ServiceProvider? _serviceProvider;
+
+ private readonly ServiceCollection _serviceCollection;
+
+ public ServiceDependencyContainer()
+ {
+ _serviceCollection = new ServiceCollection();
+ }
+
+ public void AddLogging(Action configure)
+ {
+ _serviceCollection.AddLogging(configure);
+ }
+
+ public void RegisterType(bool isSingle) where U : class, T where T : class
+ {
+ if (isSingle)
+ {
+ _serviceCollection.AddSingleton();
+ }
+ else
+ {
+ _serviceCollection.AddTransient();
+ }
+ _serviceProvider = null;
+ }
+
+ public void RegisterType(bool isSingle) where T : class
+ {
+ if (isSingle)
+ {
+ _serviceCollection.AddSingleton();
+ }
+ else
+ {
+ _serviceCollection.AddTransient();
+ }
+ _serviceProvider = null;
+ }
+
+ public T Resolve()
+ {
+ if (_serviceProvider == null)
+ {
+ _serviceProvider = _serviceCollection.BuildServiceProvider();
+ }
+ return _serviceProvider.GetService()!;
+ }
+ }
+}
diff --git a/JewelryStoreContracts/DI/UnityDependencyContainer.cs b/JewelryStoreContracts/DI/UnityDependencyContainer.cs
new file mode 100644
index 0000000..e83532e
--- /dev/null
+++ b/JewelryStoreContracts/DI/UnityDependencyContainer.cs
@@ -0,0 +1,42 @@
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Unity;
+using Unity.Microsoft.Logging;
+namespace JewelryStoreContracts.DI
+{
+ public class UnityDependencyContainer : IDependencyContainer
+ {
+ private readonly IUnityContainer _container;
+
+ public UnityDependencyContainer()
+ {
+ _container = new UnityContainer();
+ }
+
+ public void AddLogging(Action configure)
+ {
+ var factory = LoggerFactory.Create(configure);
+ _container.AddExtension(new LoggingExtension(factory));
+ }
+
+ public void RegisterType(bool isSingle) where T : class
+ {
+ _container.RegisterType(isSingle ? TypeLifetime.Singleton : TypeLifetime.Transient);
+
+ }
+
+ public T Resolve()
+ {
+ return _container.Resolve();
+ }
+
+ void IDependencyContainer.RegisterType(bool isSingle)
+ {
+ _container.RegisterType(isSingle ? TypeLifetime.Singleton : TypeLifetime.Transient);
+ }
+ }
+}
diff --git a/JewelryStoreContracts/JewelryStoreContracts.csproj b/JewelryStoreContracts/JewelryStoreContracts.csproj
index a196f49..0d7edcf 100644
--- a/JewelryStoreContracts/JewelryStoreContracts.csproj
+++ b/JewelryStoreContracts/JewelryStoreContracts.csproj
@@ -9,6 +9,7 @@
+
diff --git a/JewelryStoreContracts/ViewModels/ClientViewModel.cs b/JewelryStoreContracts/ViewModels/ClientViewModel.cs
index 504ee45..9ea58da 100644
--- a/JewelryStoreContracts/ViewModels/ClientViewModel.cs
+++ b/JewelryStoreContracts/ViewModels/ClientViewModel.cs
@@ -1,4 +1,5 @@
-using JewelryStoreDataModels.Models;
+using JewelryStoreContracts.Attributes;
+using JewelryStoreDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -10,9 +11,13 @@ namespace JewelryStoreContracts.ViewModels
{
public class ClientViewModel : IClientModel
{
- public int Id { get; set; }
- public string ClientFIO { get; set; } = string.Empty;
- public string Email { get; set; } = string.Empty;
- public string Password { get; set; } = string.Empty;
+ [Column(visible: false)]
+ public int Id { get; set; }
+ [Column("ФИО клиента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
+ public string ClientFIO { get; set; } = string.Empty;
+ [Column("Логин (эл. почта)", width: 150)]
+ public string Email { get; set; } = string.Empty;
+ [Column("Пароль", width: 150)]
+ public string Password { get; set; } = string.Empty;
}
}
diff --git a/JewelryStoreContracts/ViewModels/ComponentViewModel.cs b/JewelryStoreContracts/ViewModels/ComponentViewModel.cs
index dcd3252..dd85e89 100644
--- a/JewelryStoreContracts/ViewModels/ComponentViewModel.cs
+++ b/JewelryStoreContracts/ViewModels/ComponentViewModel.cs
@@ -1,4 +1,5 @@
-using JewelryStoreDataModels.Models;
+using JewelryStoreContracts.Attributes;
+using JewelryStoreDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -10,10 +11,11 @@ namespace JewelryStoreContracts.ViewModels
{
public class ComponentViewModel : IComponentModel
{
- public int Id { get; set; }
- [DisplayName("Название компонента")]
- public string ComponentName { get; set; } = string.Empty;
- [DisplayName("Цена")]
- public double Cost { get; set; }
+ [Column(visible: false)]
+ public int Id { get; set; }
+ [Column("Название компонента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
+ public string ComponentName { get; set; } = string.Empty;
+ [Column("Цена", width: 80)]
+ public double Cost { get; set; }
}
}
diff --git a/JewelryStoreContracts/ViewModels/ImplementerViewModel.cs b/JewelryStoreContracts/ViewModels/ImplementerViewModel.cs
index f84e6f7..b14ca61 100644
--- a/JewelryStoreContracts/ViewModels/ImplementerViewModel.cs
+++ b/JewelryStoreContracts/ViewModels/ImplementerViewModel.cs
@@ -1,4 +1,5 @@
-using JewelryStoreDataModels.Models;
+using JewelryStoreContracts.Attributes;
+using JewelryStoreDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -10,18 +11,16 @@ namespace JewelryStoreContracts.ViewModels
{
public class ImplementerViewModel : IImplementerModel
{
- public int Id { get; set; }
+ [Column(visible: false)]
+ public int Id { get; set; }
+ [Column("ФИО исполнителя", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
+ public string ImplementerFIO { get; set; } = string.Empty;
+ [Column("Пароль", width: 150)]
- [DisplayName("ФИО исполнителя")]
- public string ImplementerFIO { get; set; } = string.Empty;
-
- [DisplayName("Пароль")]
- public string Password { get; set; } = string.Empty;
-
- [DisplayName("Стаж работы")]
- public int WorkExperience { get; set; }
-
- [DisplayName("Квалификация")]
- public int Qualification { get; set; }
+ public string Password { get; set; } = string.Empty;
+ [Column("Стаж работы", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
+ public int WorkExperience { get; set; }
+ [Column("Квалификация", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
+ public int Qualification { get; set; }
}
}
diff --git a/JewelryStoreContracts/ViewModels/JewelViewModel.cs b/JewelryStoreContracts/ViewModels/JewelViewModel.cs
index f09420f..bae786d 100644
--- a/JewelryStoreContracts/ViewModels/JewelViewModel.cs
+++ b/JewelryStoreContracts/ViewModels/JewelViewModel.cs
@@ -11,9 +11,7 @@ namespace JewelryStoreContracts.ViewModels
public class JewelViewModel : IJewelModel
{
public int Id { get; set; }
- [DisplayName("Название драгоценности")]
public string JewelName { get; set; } = string.Empty;
- [DisplayName("Цена")]
public double Price { get; set; }
public Dictionary JewelComponents
{
diff --git a/JewelryStoreContracts/ViewModels/MessageInfoViewModel.cs b/JewelryStoreContracts/ViewModels/MessageInfoViewModel.cs
index caadf29..766c416 100644
--- a/JewelryStoreContracts/ViewModels/MessageInfoViewModel.cs
+++ b/JewelryStoreContracts/ViewModels/MessageInfoViewModel.cs
@@ -1,4 +1,5 @@
-using JewelryStoreDataModels.Models;
+using JewelryStoreContracts.Attributes;
+using JewelryStoreDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -10,20 +11,17 @@ namespace JewelryStoreContracts.ViewModels
{
public class MessageInfoViewModel : IMessageInfoModel
{
+ [Column(visible: false)]
public string MessageId { get; set; } = string.Empty;
-
+ [Column(visible: false)]
public int? ClientId { get; set; }
-
- [DisplayName("Имя отправителя")]
+ [Column("Отправитель", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)]
public string SenderName { get; set; } = string.Empty;
-
- [DisplayName("Дата отправления")]
+ [Column("Дата письма", width: 100)]
public DateTime DateDelivery { get; set; }
-
- [DisplayName("Тема")]
+ [Column("Заголовок", width: 150)]
public string Subject { get; set; } = string.Empty;
-
- [DisplayName("Содержание")]
+ [Column("Текст", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string Body { get; set; } = string.Empty;
}
}
diff --git a/JewelryStoreContracts/ViewModels/OrderViewModel.cs b/JewelryStoreContracts/ViewModels/OrderViewModel.cs
index fcb9cce..1eb4cc7 100644
--- a/JewelryStoreContracts/ViewModels/OrderViewModel.cs
+++ b/JewelryStoreContracts/ViewModels/OrderViewModel.cs
@@ -1,4 +1,5 @@
-using JewelryStoreDataModels.Enums;
+using JewelryStoreContracts.Attributes;
+using JewelryStoreDataModels.Enums;
using JewelryStoreDataModels.Models;
using System;
using System.Collections.Generic;
@@ -11,32 +12,32 @@ namespace JewelryStoreContracts.ViewModels
{
public class OrderViewModel : IOrderModel
{
- [DisplayName("Номер")]
- public int Id { get; set; }
- public int JewelId { get; set; }
- public int ClientId { get; set; }
- [DisplayName("Драгоценность")]
- public string JewelName { get; set; } = string.Empty;
+ [Column("Номер", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
+ public int Id { get; set; }
- [DisplayName("ФИО исполнителя")]
- public string ImplementerFIO { get; set; } = string.Empty;
-
- [DisplayName("Клиент")]
- public string ClientFIO { get; set; } = string.Empty;
-
- [DisplayName("Количество")]
- public int Count { get; set; }
-
- [DisplayName("Сумма")]
- public double Sum { get; set; }
- [DisplayName("Статус")]
- public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
- [DisplayName("Дата создания")]
- public DateTime DateCreate { get; set; } = DateTime.Now;
- [DisplayName("Дата выполнения")]
- public DateTime? DateImplement { get; set; }
- public int? ImplementerId { get; set; }
+ [Column(visible: false)]
+ public int JewelId { get; set; }
+ [Column(visible: false)]
+ public int ClientId { get; set; }
+ [Column("Изделие", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
+ public string JewelName { get; set; } = string.Empty;
+ [Column("Фамилия исполнителя", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
+ public string ImplementerFIO { get; set; } = string.Empty;
+ [Column("Фамилия клиента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
+ public string ClientFIO { get; set; } = string.Empty;
+ [Column("Количество", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
+ public int Count { get; set; }
+ [Column("Сумма", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
+ public double Sum { get; set; }
+ [Column("Статус", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
+ public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
+ [Column("Дата создания", width: 100)]
+ public DateTime DateCreate { get; set; } = DateTime.Now;
+ [Column("Дата выполнения", width: 100)]
+ public DateTime? DateImplement { get; set; }
+ [Column(visible: false)]
+ public int? ImplementerId { get; set; }
}
diff --git a/JewelryStoreDatabaseImplement/DatabaseImplementationExtension.cs b/JewelryStoreDatabaseImplement/DatabaseImplementationExtension.cs
new file mode 100644
index 0000000..fe52687
--- /dev/null
+++ b/JewelryStoreDatabaseImplement/DatabaseImplementationExtension.cs
@@ -0,0 +1,28 @@
+using JewelryStoreContracts.DI;
+using JewelryStoreContracts.StoragesContracts;
+using JewelryStoreDatabaseImplement.Implements;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JewelryStoreDatabaseImplement
+{
+ public class DatabaseImplementationExtension : IImplementationExtension
+ {
+ public int Priority => 2;
+
+ public void RegisterServices()
+ {
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ }
+
+ }
+}
diff --git a/JewelryStoreDatabaseImplement/Models/Client.cs b/JewelryStoreDatabaseImplement/Models/Client.cs
index b3248da..f405e0c 100644
--- a/JewelryStoreDatabaseImplement/Models/Client.cs
+++ b/JewelryStoreDatabaseImplement/Models/Client.cs
@@ -8,18 +8,25 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Runtime.Serialization;
namespace JewelryStoreDatabaseImplement.Models
{
- public class Client : IClientModel
+ [DataContract]
+
+ public class Client : IClientModel
{
- public int Id { get; private set; }
+ [DataMember]
+ public int Id { get; private set; }
[Required]
- public string ClientFIO { get; set; } = string.Empty;
+ [DataMember]
+ public string ClientFIO { get; set; } = string.Empty;
[Required]
- public string Email { get; set; } = string.Empty;
+ [DataMember]
+ public string Email { get; set; } = string.Empty;
[Required]
- public string Password { get; set; } = string.Empty;
+ [DataMember]
+ public string Password { get; set; } = string.Empty;
[ForeignKey("ClientId")]
public virtual List Orders { get; set; } = new();
diff --git a/JewelryStoreDatabaseImplement/Models/Component.cs b/JewelryStoreDatabaseImplement/Models/Component.cs
index 3e9d653..5be17c4 100644
--- a/JewelryStoreDatabaseImplement/Models/Component.cs
+++ b/JewelryStoreDatabaseImplement/Models/Component.cs
@@ -4,18 +4,24 @@ using JewelryStoreDatabaseImplement.Models;
using JewelryStoreDataModels.Models;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
+using System.Runtime.Serialization;
namespace JewelryStoreDatabaseImplement.Models
{
- public class Component : IComponentModel
+ [DataContract]
+
+ public class Component : IComponentModel
{
- public int Id { get; private set; }
+ [DataMember]
+ public int Id { get; private set; }
[Required]
- public string ComponentName { get; private set; } = string.Empty;
+ [DataMember]
+ public string ComponentName { get; private set; } = string.Empty;
[Required]
- public double Cost { get; set; }
+ [DataMember]
+ public double Cost { get; set; }
[ForeignKey("ComponentId")]
public virtual List JewelComponents { get; set; } = new();
diff --git a/JewelryStoreDatabaseImplement/Models/Implementer.cs b/JewelryStoreDatabaseImplement/Models/Implementer.cs
index 71b05b5..8301312 100644
--- a/JewelryStoreDatabaseImplement/Models/Implementer.cs
+++ b/JewelryStoreDatabaseImplement/Models/Implementer.cs
@@ -8,24 +8,32 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Runtime.Serialization;
namespace JewelryStoreDatabaseImplement.Models
{
- public class Implementer : IImplementerModel
+ [DataContract]
+
+ public class Implementer : IImplementerModel
{
[Required]
- public string ImplementerFIO { get; private set; } = string.Empty;
+ [DataMember]
+ public string ImplementerFIO { get; private set; } = string.Empty;
[Required]
- public string Password { get; private set; } = string.Empty;
+ [DataMember]
+ public string Password { get; private set; } = string.Empty;
[Required]
- public int WorkExperience { get; private set; }
+ [DataMember]
+ public int WorkExperience { get; private set; }
[Required]
- public int Qualification { get; private set; }
+ [DataMember]
+ public int Qualification { get; private set; }
- public int Id { get; private set; }
+ [DataMember]
+ public int Id { get; private set; }
[ForeignKey("ImplementerId")]
public virtual List Orders { get; private set; } = new();
diff --git a/JewelryStoreDatabaseImplement/Models/Jewel.cs b/JewelryStoreDatabaseImplement/Models/Jewel.cs
index 0d01025..a2d6055 100644
--- a/JewelryStoreDatabaseImplement/Models/Jewel.cs
+++ b/JewelryStoreDatabaseImplement/Models/Jewel.cs
@@ -8,23 +8,30 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Runtime.Serialization;
namespace JewelryStoreDatabaseImplement.Models
{
- public class Jewel : IJewelModel
+ [DataContract]
+
+ public class Jewel : IJewelModel
{
- public int Id { get; set; }
+ [DataMember]
+ public int Id { get; set; }
[Required]
- public string JewelName { get; set; } = string.Empty;
+ [DataMember]
+ public string JewelName { get; set; } = string.Empty;
[Required]
- public double Price { get; set; }
+ [DataMember]
+ public double Price { get; set; }
private Dictionary? _jewelComponents = null;
[NotMapped]
- public Dictionary JewelComponents
+ [DataMember]
+ public Dictionary JewelComponents
{
get
{
diff --git a/JewelryStoreDatabaseImplement/Models/JewelComponent.cs b/JewelryStoreDatabaseImplement/Models/JewelComponent.cs
index 79fa697..79b887c 100644
--- a/JewelryStoreDatabaseImplement/Models/JewelComponent.cs
+++ b/JewelryStoreDatabaseImplement/Models/JewelComponent.cs
@@ -2,23 +2,30 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
+using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace JewelryStoreDatabaseImplement.Models
{
- public class JewelComponent
+ [DataContract]
+
+ public class JewelComponent
{
- public int Id { get; set; }
+ [DataMember]
+ public int Id { get; set; }
[Required]
- public int JewelId { get; set; }
+ [DataMember]
+ public int JewelId { get; set; }
[Required]
- public int ComponentId { get; set; }
+ [DataMember]
+ public int ComponentId { get; set; }
[Required]
- public int Count { get; set; }
+ [DataMember]
+ public int Count { get; set; }
public virtual Component Component { get; set; } = new();
public virtual Jewel Jewel { get; set; } = new();
diff --git a/JewelryStoreDatabaseImplement/Models/Message.cs b/JewelryStoreDatabaseImplement/Models/Message.cs
index 6e9aaf3..e3ba8d4 100644
--- a/JewelryStoreDatabaseImplement/Models/Message.cs
+++ b/JewelryStoreDatabaseImplement/Models/Message.cs
@@ -5,14 +5,18 @@ using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
+using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace JewelryStoreDatabaseImplement.Models
{
+ [DataContract]
+
public class Message: IMessageInfoModel
{
[Key]
+ [DataMember]
public string MessageId { get; private set; } = string.Empty;
public int? ClientId { get; private set; }
[Required]
diff --git a/JewelryStoreDatabaseImplement/Models/Order.cs b/JewelryStoreDatabaseImplement/Models/Order.cs
index 97d4cfe..f5174e8 100644
--- a/JewelryStoreDatabaseImplement/Models/Order.cs
+++ b/JewelryStoreDatabaseImplement/Models/Order.cs
@@ -8,30 +8,37 @@ using JewelryStoreContracts.BindingModels;
using JewelryStoreDataModels.Models;
using JewelryStoreDataModels.Enums;
using System.ComponentModel.DataAnnotations;
-
+using System.Runtime.Serialization;
namespace JewelryStoreDatabaseImplement.Models
{
- public class Order : IOrderModel
+ [DataContract]
+
+ public class Order : IOrderModel
{
public int Id { get; private set; }
-
- public int JewelId { get; private set; }
+ [DataMember]
+ public int JewelId { get; private set; }
[Required]
- public int ClientId { get; set; }
- public int? ImplementerId { get; private set; }
-
- public string JewelName { get; private set; } = string.Empty;
+ [DataMember]
+ public int ClientId { get; set; }
+ [DataMember]
+ public int? ImplementerId { get; private set; }
+ [DataMember]
+ public string JewelName { get; private set; } = string.Empty;
[Required]
- public int Count { get; private set; }
+ [DataMember]
+ public int Count { get; private set; }
[Required]
- public double Sum { get; private set; }
+ [DataMember]
+ public double Sum { get; private set; }
[Required]
- public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен;
+ [DataMember]
+ public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен;
[Required]
public DateTime DateCreate { get; private set; } = DateTime.Now;
diff --git a/JewelryStoreListImplement/Implements/BackUpInfo.cs b/JewelryStoreListImplement/Implements/BackUpInfo.cs
new file mode 100644
index 0000000..a1f8e0f
--- /dev/null
+++ b/JewelryStoreListImplement/Implements/BackUpInfo.cs
@@ -0,0 +1,22 @@
+using JewelryStoreContracts.StoragesContracts;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JewelryStoreListImplement.Implements
+{
+ public class BackUpInfo : IBackUpInfo
+ {
+ public List? GetList() where T : class, new()
+ {
+ throw new NotImplementedException();
+ }
+
+ public Type? GetTypeByModelInterface(string modelInterfaceName)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/JewelryStoreListImplement/Implements/ImplementerStorage.cs b/JewelryStoreListImplement/Implements/ImplementerStorage.cs
index 42077eb..d8f37c0 100644
--- a/JewelryStoreListImplement/Implements/ImplementerStorage.cs
+++ b/JewelryStoreListImplement/Implements/ImplementerStorage.cs
@@ -1,5 +1,6 @@
using JewelryStoreContracts.BindingModels;
using JewelryStoreContracts.SearchModels;
+using JewelryStoreContracts.StoragesContracts;
using JewelryStoreContracts.ViewModels;
using JewelryStoreListImplement.Models;
using System;
@@ -10,7 +11,7 @@ using System.Threading.Tasks;
namespace JewelryStoreListImplement.Implements
{
- public class ImplementerStorage
+ public class ImplementerStorage : IImplementerStorage
{
private readonly DataListSingleton _source;
public ImplementerStorage()
diff --git a/JewelryStoreListImplement/ListImplementationExtension.cs b/JewelryStoreListImplement/ListImplementationExtension.cs
new file mode 100644
index 0000000..f91a70e
--- /dev/null
+++ b/JewelryStoreListImplement/ListImplementationExtension.cs
@@ -0,0 +1,26 @@
+using JewelryStoreContracts.DI;
+using JewelryStoreContracts.StoragesContracts;
+using JewelryStoreListImplement.Implements;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JewelryStoreListImplement
+{
+ public class ListImplementationExtension : IImplementationExtension
+ {
+ public int Priority => 0;
+ public void RegisterServices()
+ {
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ DependencyManager.Instance.RegisterType();
+ }
+ }
+}