Data attributes have been placed in storage models.

This commit is contained in:
Yuee Shiness 2023-04-23 17:13:21 +04:00
parent 8abe0bbfb2
commit 29dc43b467
17 changed files with 198 additions and 15 deletions

View File

@ -36,7 +36,7 @@ namespace DressAtelierBusinessLogic.BusinessLogic
public List<MessageInfoViewModel>? ReadList(MessageInfoSearchModel? model) public List<MessageInfoViewModel>? ReadList(MessageInfoSearchModel? model)
{ {
_logger.LogInformation("ReadList. ClientID:{ClientID}. ID:{ ID}", model?.ClientID, model?.ID); _logger.LogInformation("ReadList. ClientID:{ClientID}. ID:{ ID}", model?.ClientID, model?.MessageID);
var list = model == null ? _messageStorage.GetFullList() : _messageStorage.GetFilteredList(model); var list = model == null ? _messageStorage.GetFullList() : _messageStorage.GetFilteredList(model);

View File

@ -7,20 +7,29 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace DressAtelierDatabaseImplement.Models namespace DressAtelierDatabaseImplement.Models
{ {
[DataContract]
public class Client : IClientModel public class Client : IClientModel
{ {
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
[Required] [Required]
[DataMember]
public string FullName { get; private set; } = string.Empty; public string FullName { get; private set; } = string.Empty;
[Required] [Required]
[DataMember]
public string Email { get; private set; } = string.Empty; public string Email { get; private set; } = string.Empty;
[Required] [Required]
[DataMember]
public string Password { get; private set; } = string.Empty; public string Password { get; private set; } = string.Empty;
[ForeignKey("ClientID")] [ForeignKey("ClientID")]

View File

@ -6,24 +6,31 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace DressAtelierDatabaseImplementation.Models namespace DressAtelierDatabaseImplementation.Models
{ {
[DataContract]
public class Dress : IDressModel public class Dress : IDressModel
{ {
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
[Required] [Required]
[DataMember]
public string DressName { get; private set; } = string.Empty; public string DressName { get; private set; } = string.Empty;
[Required] [Required]
[DataMember]
public double Price { get; private set; } public double Price { get; private set; }
private Dictionary<int, (IMaterialModel, int)>? _dressMaterials = null; private Dictionary<int, (IMaterialModel, int)>? _dressMaterials = null;
[NotMapped] [NotMapped]
[DataMember]
public Dictionary<int, (IMaterialModel, int)> DressComponents public Dictionary<int, (IMaterialModel, int)> DressComponents
{ {
get get

View File

@ -9,19 +9,30 @@ using System.Threading.Tasks;
using DressAtelierDatabaseImplementation.Models; using DressAtelierDatabaseImplementation.Models;
using DressAtelierContracts.ViewModels; using DressAtelierContracts.ViewModels;
using DressAtelierContracts.BindingModels; using DressAtelierContracts.BindingModels;
using System.Runtime.Serialization;
namespace DressAtelierDatabaseImplement.Models namespace DressAtelierDatabaseImplement.Models
{ {
[DataContract]
public class Employee : IEmployeeModel public class Employee : IEmployeeModel
{ {
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
[Required] [Required]
[DataMember]
public string FullName { get; private set; } = string.Empty; public string FullName { get; private set; } = string.Empty;
[Required] [Required]
[DataMember]
public int WorkExperience { get; private set; } public int WorkExperience { get; private set; }
[Required] [Required]
[DataMember]
public string Password { get; private set; } = string.Empty; public string Password { get; private set; } = string.Empty;
[Required] [Required]
[DataMember]
public int Qualification { get; private set; } public int Qualification { get; private set; }
[ForeignKey("EmployeeID")] [ForeignKey("EmployeeID")]

View File

@ -5,17 +5,22 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace DressAtelierDatabaseImplementation.Models namespace DressAtelierDatabaseImplementation.Models
{ {
[DataContract]
public class Material : IMaterialModel public class Material : IMaterialModel
{ {
[DataMember]
public string ComponentName { get; private set; } = string.Empty; public string ComponentName { get; private set; } = string.Empty;
[DataMember]
public double Cost { get; private set; } public double Cost { get; private set; }
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
[ForeignKey("MaterialID")] [ForeignKey("MaterialID")]

View File

@ -4,23 +4,31 @@ using DressAtelierDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace DressAtelierDatabaseImplement.Models namespace DressAtelierDatabaseImplement.Models
{ {
[DataContract]
public class MessageInfo : IMessageInfoModel public class MessageInfo : IMessageInfoModel
{ {
[DataMember]
public string MessageID { get; private set; } = string.Empty; public string MessageID { get; private set; } = string.Empty;
[DataMember]
public int? ClientID { get; private set; } public int? ClientID { get; private set; }
[DataMember]
public string SenderName { get; private set; } = string.Empty; public string SenderName { get; private set; } = string.Empty;
[DataMember]
public DateTime DeliveryDate { get; private set; } public DateTime DeliveryDate { get; private set; }
[DataMember]
public string Subject { get; private set; } = string.Empty; public string Subject { get; private set; } = string.Empty;
[DataMember]
public string Body { get; private set; } = string.Empty; public string Body { get; private set; } = string.Empty;
public virtual Client? Client { get; private set; } public virtual Client? Client { get; private set; }

View File

@ -9,6 +9,7 @@ using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
@ -17,26 +18,37 @@ namespace DressAtelierDatabaseImplementation.Models
{ {
public class Order : IOrderModel public class Order : IOrderModel
{ {
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
[Required] [Required]
[DataMember]
public int DressID { get; private set; } public int DressID { get; private set; }
[Required] [Required]
[DataMember]
public int ClientID { get; private set; } public int ClientID { get; private set; }
[DataMember]
public int? EmployeeID { get; private set; } public int? EmployeeID { get; private set; }
[Required] [Required]
[DataMember]
public int Count { get; private set; } public int Count { get; private set; }
[Required] [Required]
[DataMember]
public double Sum { get; private set; } public double Sum { get; private set; }
[Required] [Required]
[DataMember]
public OrderStatus Status { get; private set; } = OrderStatus.Unknown; public OrderStatus Status { get; private set; } = OrderStatus.Unknown;
[Required] [Required]
[DataMember]
public DateTime DateCreate { get; private set; } = DateTime.Now; public DateTime DateCreate { get; private set; } = DateTime.Now;
[DataMember]
public DateTime? DateImplement { get; private set; } public DateTime? DateImplement { get; private set; }
public virtual Dress Dress { get; set; } public virtual Dress Dress { get; set; }

View File

@ -0,0 +1,47 @@
using DressAtelierContracts.StorageContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace DressAtelierFileImplement.Implements
{
public class BackupInfo : IBackupInfo
{
public List<T>? GetList<T>() where T : class, new()
{
List<T>? list = new();
var source = DataFileSingleton.GetInstance();
Type typeRequired = typeof(T);
Type typeSource = source.GetType();
foreach(var property in typeSource.GetProperties())
{
if (property.PropertyType.IsGenericType && property.PropertyType.GetGenericArguments()[0] == typeRequired)
{
list.Add((T)property.GetValue(source));
}
}
return list;
}
public Type? GetTypeByModelInterface(string modelInterfaceName)
{
var assembly = typeof(BackupInfo).Assembly;
var types = assembly.GetTypes();
foreach (var type in types)
{
if (type.IsClass && type.GetInterface(modelInterfaceName) != null)
{
return type;
}
}
return null;
}
}
}

View File

@ -4,19 +4,26 @@ using DressAtelierDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace DressAtelierFileImplement.Models namespace DressAtelierFileImplement.Models
{ {
[DataContract]
public class Client : IClientModel public class Client : IClientModel
{ {
[DataMember]
public int ID { get; set; } public int ID { get; set; }
[DataMember]
public string FullName { get; set; } = string.Empty; public string FullName { get; set; } = string.Empty;
[DataMember]
public string Email { get; set; } = string.Empty; public string Email { get; set; } = string.Empty;
[DataMember]
public string Password { get; set; } = string.Empty; public string Password { get; set; } = string.Empty;
public static Client? Create(ClientBindingModel? model) public static Client? Create(ClientBindingModel? model)

View File

@ -9,19 +9,27 @@ using System.Threading.Tasks;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Xml.Linq; using System.Xml.Linq;
using System.Runtime.Serialization;
namespace DressAtelierFileImplement.Models namespace DressAtelierFileImplement.Models
{ {
[DataContract]
public class Dress : IDressModel public class Dress : IDressModel
{ {
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
[DataMember]
public string DressName { get; private set; } = string.Empty; public string DressName { get; private set; } = string.Empty;
[DataMember]
public double Price { get; private set; } public double Price { get; private set; }
public Dictionary<int, int> Components { get; private set; } = new(); public Dictionary<int, int> Components { get; private set; } = new();
private Dictionary<int, (IMaterialModel, int)>? _dressComponents = null; private Dictionary<int, (IMaterialModel, int)>? _dressComponents = null;
[DataMember]
public Dictionary<int, (IMaterialModel, int)> DressComponents public Dictionary<int, (IMaterialModel, int)> DressComponents
{ {
get get

View File

@ -4,18 +4,29 @@ using DressAtelierDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace DressAtelierFileImplement.Models namespace DressAtelierFileImplement.Models
{ {
[DataContract]
public class Employee : IEmployeeModel public class Employee : IEmployeeModel
{ {
[DataMember]
public int ID { get; set; } public int ID { get; set; }
[DataMember]
public string FullName { get; set; } = string.Empty; public string FullName { get; set; } = string.Empty;
[DataMember]
public string Password { get; set; } = string.Empty; public string Password { get; set; } = string.Empty;
[DataMember]
public int WorkExperience { get; set; } public int WorkExperience { get; set; }
[DataMember]
public int Qualification { get; set; } public int Qualification { get; set; }
public static Employee? Create(EmployeeBindingModel? model) public static Employee? Create(EmployeeBindingModel? model)

View File

@ -4,18 +4,23 @@ using DressAtelierDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace DressAtelierFileImplement.Models namespace DressAtelierFileImplement.Models
{ {
[DataContract]
public class Material : IMaterialModel public class Material : IMaterialModel
{ {
[DataMember]
public string ComponentName { get; private set; } = string.Empty; public string ComponentName { get; private set; } = string.Empty;
[DataMember]
public double Cost { get; private set; } public double Cost { get; private set; }
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
public static Material? Create(MaterialBindingModel? model) public static Material? Create(MaterialBindingModel? model)

View File

@ -4,24 +4,32 @@ using DressAtelierDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace DressAtelierFileImplement.Models namespace DressAtelierFileImplement.Models
{ {
[DataContract]
public class MessageInfo : IMessageInfoModel public class MessageInfo : IMessageInfoModel
{ {
[DataMember]
public string MessageID { get; set; } = string.Empty; public string MessageID { get; set; } = string.Empty;
[DataMember]
public int? ClientID { get; set; } public int? ClientID { get; set; }
[DataMember]
public string SenderName { get; set; } = string.Empty; public string SenderName { get; set; } = string.Empty;
[DataMember]
public DateTime DeliveryDate { get; set; } public DateTime DeliveryDate { get; set; }
[DataMember]
public string Subject { get; set; } = string.Empty; public string Subject { get; set; } = string.Empty;
[DataMember]
public string Body { get; set; } = string.Empty; public string Body { get; set; } = string.Empty;
public int ID { get; set; } public int ID { get; set; }

View File

@ -6,26 +6,41 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace DressAtelierFileImplement.Models namespace DressAtelierFileImplement.Models
{ {
[DataContract]
public class Order : IOrderModel public class Order : IOrderModel
{ {
[DataMember]
public int ID { get; private set; } public int ID { get; private set; }
[DataMember]
public int DressID { get; private set; } public int DressID { get; private set; }
[DataMember]
public int ClientID { get; private set; } public int ClientID { get; private set; }
[DataMember]
public int? EmployeeID { get; private set; } public int? EmployeeID { get; private set; }
[DataMember]
public int Count { get; private set; } public int Count { get; private set; }
[DataMember]
public double Sum { get; private set; } public double Sum { get; private set; }
[DataMember]
public OrderStatus Status { get; private set; } = OrderStatus.Unknown; public OrderStatus Status { get; private set; } = OrderStatus.Unknown;
[DataMember]
public DateTime DateCreate { get; private set; } = DateTime.Now; public DateTime DateCreate { get; private set; } = DateTime.Now;
[DataMember]
public DateTime? DateImplement { get; private set; } public DateTime? DateImplement { get; private set; }
public static Order? Create(OrderBindingModel? model) public static Order? Create(OrderBindingModel? model)

View File

@ -34,6 +34,7 @@
dressesToolStripMenuItem = new ToolStripMenuItem(); dressesToolStripMenuItem = new ToolStripMenuItem();
clientsToolStripMenuItem = new ToolStripMenuItem(); clientsToolStripMenuItem = new ToolStripMenuItem();
employeesToolStripMenuItem = new ToolStripMenuItem(); employeesToolStripMenuItem = new ToolStripMenuItem();
emailsToolStripMenuItem = new ToolStripMenuItem();
reportsToolStripMenuItem = new ToolStripMenuItem(); reportsToolStripMenuItem = new ToolStripMenuItem();
materialsListToolStripMenuItem = new ToolStripMenuItem(); materialsListToolStripMenuItem = new ToolStripMenuItem();
materialsByDressesToolStripMenuItem = new ToolStripMenuItem(); materialsByDressesToolStripMenuItem = new ToolStripMenuItem();
@ -43,14 +44,14 @@
createOrderButton = new Button(); createOrderButton = new Button();
givenOrderButton = new Button(); givenOrderButton = new Button();
refreshOrdersButton = new Button(); refreshOrdersButton = new Button();
emailsToolStripMenuItem = new ToolStripMenuItem(); createBackupToolStripMenuItem = new ToolStripMenuItem();
menuStrip.SuspendLayout(); menuStrip.SuspendLayout();
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit(); ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// menuStrip // menuStrip
// //
menuStrip.Items.AddRange(new ToolStripItem[] { directoriesToolStripMenuItem, reportsToolStripMenuItem, startWorkingToolStripMenuItem }); menuStrip.Items.AddRange(new ToolStripItem[] { directoriesToolStripMenuItem, reportsToolStripMenuItem, startWorkingToolStripMenuItem, createBackupToolStripMenuItem });
menuStrip.Location = new Point(0, 0); menuStrip.Location = new Point(0, 0);
menuStrip.Name = "menuStrip"; menuStrip.Name = "menuStrip";
menuStrip.Size = new Size(800, 24); menuStrip.Size = new Size(800, 24);
@ -67,31 +68,38 @@
// materialsToolStripMenuItem // materialsToolStripMenuItem
// //
materialsToolStripMenuItem.Name = "materialsToolStripMenuItem"; materialsToolStripMenuItem.Name = "materialsToolStripMenuItem";
materialsToolStripMenuItem.Size = new Size(180, 22); materialsToolStripMenuItem.Size = new Size(131, 22);
materialsToolStripMenuItem.Text = "Materials"; materialsToolStripMenuItem.Text = "Materials";
materialsToolStripMenuItem.Click += materialsToolStripMenuItem_Click; materialsToolStripMenuItem.Click += materialsToolStripMenuItem_Click;
// //
// dressesToolStripMenuItem // dressesToolStripMenuItem
// //
dressesToolStripMenuItem.Name = "dressesToolStripMenuItem"; dressesToolStripMenuItem.Name = "dressesToolStripMenuItem";
dressesToolStripMenuItem.Size = new Size(180, 22); dressesToolStripMenuItem.Size = new Size(131, 22);
dressesToolStripMenuItem.Text = "Dresses"; dressesToolStripMenuItem.Text = "Dresses";
dressesToolStripMenuItem.Click += dressesToolStripMenuItem_Click; dressesToolStripMenuItem.Click += dressesToolStripMenuItem_Click;
// //
// clientsToolStripMenuItem // clientsToolStripMenuItem
// //
clientsToolStripMenuItem.Name = "clientsToolStripMenuItem"; clientsToolStripMenuItem.Name = "clientsToolStripMenuItem";
clientsToolStripMenuItem.Size = new Size(180, 22); clientsToolStripMenuItem.Size = new Size(131, 22);
clientsToolStripMenuItem.Text = "Clients"; clientsToolStripMenuItem.Text = "Clients";
clientsToolStripMenuItem.Click += clientsToolStripMenuItem_Click; clientsToolStripMenuItem.Click += clientsToolStripMenuItem_Click;
// //
// employeesToolStripMenuItem // employeesToolStripMenuItem
// //
employeesToolStripMenuItem.Name = "employeesToolStripMenuItem"; employeesToolStripMenuItem.Name = "employeesToolStripMenuItem";
employeesToolStripMenuItem.Size = new Size(180, 22); employeesToolStripMenuItem.Size = new Size(131, 22);
employeesToolStripMenuItem.Text = "Employees"; employeesToolStripMenuItem.Text = "Employees";
employeesToolStripMenuItem.Click += employeesToolStripMenuItem_Click; employeesToolStripMenuItem.Click += employeesToolStripMenuItem_Click;
// //
// emailsToolStripMenuItem
//
emailsToolStripMenuItem.Name = "emailsToolStripMenuItem";
emailsToolStripMenuItem.Size = new Size(131, 22);
emailsToolStripMenuItem.Text = "Emails";
emailsToolStripMenuItem.Click += emailsToolStripMenuItem_Click;
//
// reportsToolStripMenuItem // reportsToolStripMenuItem
// //
reportsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { materialsListToolStripMenuItem, materialsByDressesToolStripMenuItem, ordersListToolStripMenuItem }); reportsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { materialsListToolStripMenuItem, materialsByDressesToolStripMenuItem, ordersListToolStripMenuItem });
@ -167,12 +175,12 @@
refreshOrdersButton.UseVisualStyleBackColor = true; refreshOrdersButton.UseVisualStyleBackColor = true;
refreshOrdersButton.Click += ButtonRef_Click; refreshOrdersButton.Click += ButtonRef_Click;
// //
// emailsToolStripMenuItem // createBackupToolStripMenuItem
// //
emailsToolStripMenuItem.Name = "emailsToolStripMenuItem"; createBackupToolStripMenuItem.Name = "createBackupToolStripMenuItem";
emailsToolStripMenuItem.Size = new Size(180, 22); createBackupToolStripMenuItem.Size = new Size(95, 20);
emailsToolStripMenuItem.Text = "Emails"; createBackupToolStripMenuItem.Text = "Create backup";
emailsToolStripMenuItem.Click += emailsToolStripMenuItem_Click; createBackupToolStripMenuItem.Click += createBackupToolStripMenuItem_Click;
// //
// FormMain // FormMain
// //
@ -213,5 +221,6 @@
private ToolStripMenuItem startWorkingToolStripMenuItem; private ToolStripMenuItem startWorkingToolStripMenuItem;
private ToolStripMenuItem employeesToolStripMenuItem; private ToolStripMenuItem employeesToolStripMenuItem;
private ToolStripMenuItem emailsToolStripMenuItem; private ToolStripMenuItem emailsToolStripMenuItem;
private ToolStripMenuItem createBackupToolStripMenuItem;
} }
} }

View File

@ -22,13 +22,15 @@ namespace SewingDresses
private readonly IOrderLogic _orderLogic; private readonly IOrderLogic _orderLogic;
private readonly IReportLogic _reportLogic; private readonly IReportLogic _reportLogic;
private readonly IWorkImitation _workImitation; private readonly IWorkImitation _workImitation;
public FormMain(ILogger<FormMain> logger, IOrderLogic orderLogic, IReportLogic reportLogic, IWorkImitation workImitation) private readonly IBackupLogic _backupLogic;
public FormMain(ILogger<FormMain> logger, IOrderLogic orderLogic, IReportLogic reportLogic, IWorkImitation workImitation, IBackupLogic backupLogic)
{ {
InitializeComponent(); InitializeComponent();
_logger = logger; _logger = logger;
_orderLogic = orderLogic; _orderLogic = orderLogic;
_reportLogic = reportLogic; _reportLogic = reportLogic;
_workImitation = workImitation; _workImitation = workImitation;
_backupLogic = backupLogic;
} }
private void FormMain_Load(object sender, EventArgs e) private void FormMain_Load(object sender, EventArgs e)
@ -179,5 +181,22 @@ namespace SewingDresses
form.ShowDialog(); form.ShowDialog();
} }
} }
private void createBackupToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (_backupLogic != null)
{
var fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
_backupLogic.CreateBackup(new BackupSaveBindingModel { FolderName = fbd.SelectedPath });
MessageBox.Show("Backup has been created.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}
} }
} }

View File

@ -68,6 +68,7 @@ namespace SewingDresses
services.AddTransient<IClientStorage, ClientStorage>(); services.AddTransient<IClientStorage, ClientStorage>();
services.AddTransient<IEmployeeStorage, EmployeeStorage>(); services.AddTransient<IEmployeeStorage, EmployeeStorage>();
services.AddTransient<IMessageInfoStorage,MessageInfoStorage>(); services.AddTransient<IMessageInfoStorage,MessageInfoStorage>();
services.AddTransient<IBackupInfo,BackupInfo>();
services.AddTransient<IMaterialLogic, MaterialLogic>(); services.AddTransient<IMaterialLogic, MaterialLogic>();
services.AddTransient<IOrderLogic, OrderLogic>(); services.AddTransient<IOrderLogic, OrderLogic>();
@ -76,6 +77,7 @@ namespace SewingDresses
services.AddTransient<IClientLogic, ClientLogic>(); services.AddTransient<IClientLogic, ClientLogic>();
services.AddTransient<IEmployeeLogic, EmployeeLogic>(); services.AddTransient<IEmployeeLogic, EmployeeLogic>();
services.AddTransient<IMessageInfoLogic, MessageInfoLogic>(); services.AddTransient<IMessageInfoLogic, MessageInfoLogic>();
services.AddTransient<IBackupLogic, BackupLogic>();
services.AddTransient<IWorkImitation, WorkImitation>(); services.AddTransient<IWorkImitation, WorkImitation>();
services.AddSingleton<AbstractMailEmployee, MailKitEmployee>(); services.AddSingleton<AbstractMailEmployee, MailKitEmployee>();