diff --git a/LawFirm/LawFirmContracts/Attributes/ColumnAttribute.cs b/LawFirm/LawFirmContracts/Attributes/ColumnAttribute.cs new file mode 100644 index 0000000..7515016 --- /dev/null +++ b/LawFirm/LawFirmContracts/Attributes/ColumnAttribute.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LawFirmContracts.Attributes +{ + [AttributeUsage(AttributeTargets.Property)] + public class ColumnAttribute : Attribute + { + public ColumnAttribute(string title = "", bool visible = true, int width = 0, GridViewAutoSize gridViewAutoSize = GridViewAutoSize.None, bool isUseAutoSize = false) + { + Title = title; + Visible = visible; + Width = width; + GridViewAutoSize = gridViewAutoSize; + IsUseAutoSize = isUseAutoSize; + } + public string Title { get; private set; } + public bool Visible { get; private set; } + public int Width { get; private set; } + public GridViewAutoSize GridViewAutoSize { get; private set; } + public bool IsUseAutoSize { get; private set; } + } + +} diff --git a/LawFirm/LawFirmContracts/Attributes/GridViewAutoSize.cs b/LawFirm/LawFirmContracts/Attributes/GridViewAutoSize.cs new file mode 100644 index 0000000..3eee58e --- /dev/null +++ b/LawFirm/LawFirmContracts/Attributes/GridViewAutoSize.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LawFirmContracts.Attributes +{ + public enum GridViewAutoSize + { + NotSet = 0, + None = 1, + ColumnHeader = 2, + AllCellsExceptHeader = 4, + AllCells = 6, + DisplayedCellsExceptHeader = 8, + DisplayedCells = 10, + Fill = 16 + } +} diff --git a/LawFirm/LawFirmContracts/ViewModels/BlankViewModel.cs b/LawFirm/LawFirmContracts/ViewModels/BlankViewModel.cs index b5f1d5c..41feaba 100644 --- a/LawFirm/LawFirmContracts/ViewModels/BlankViewModel.cs +++ b/LawFirm/LawFirmContracts/ViewModels/BlankViewModel.cs @@ -1,4 +1,5 @@ -using LawFirmDataModels.Models; +using LawFirmContracts.Attributes; +using LawFirmDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel; @@ -10,12 +11,13 @@ namespace LawFirmContracts.ViewModels { public class BlankViewModel : IBlankModel { - [DisplayName("Название бланка")] + [Column("Название бланка", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] public string BlankName { get; set; } = string.Empty; - [DisplayName("Цена")] + [Column("Цена", width: 100)] public double Cost { get; set; } + [Column(visible: false)] public int Id { get; set; } } } diff --git a/LawFirm/LawFirmContracts/ViewModels/ClientViewModel.cs b/LawFirm/LawFirmContracts/ViewModels/ClientViewModel.cs index 0175f67..c5b8e90 100644 --- a/LawFirm/LawFirmContracts/ViewModels/ClientViewModel.cs +++ b/LawFirm/LawFirmContracts/ViewModels/ClientViewModel.cs @@ -1,4 +1,5 @@ -using LawFirmDataModels.Models; +using LawFirmContracts.Attributes; +using LawFirmDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel; @@ -10,12 +11,16 @@ namespace LawFirmContracts.ViewModels { public class ClientViewModel : IClientModel { + [Column(visible:false)] public int Id { get; set; } - [DisplayName("ФИО клиента")] + + [Column(title:"ФИО клиента", width: 150 )] public string ClientFIO { get; set; } = string.Empty; - [DisplayName("Логин (почта)")] + + [Column(title:"Логин (эл.почта)", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] public string Email { get; set; } = string.Empty; - [DisplayName("Пароль")] + + [Column(title: "Пароль", width: 150)] public string Password { get; set; } = string.Empty; } } diff --git a/LawFirm/LawFirmContracts/ViewModels/DocumentViewModel.cs b/LawFirm/LawFirmContracts/ViewModels/DocumentViewModel.cs index 5771904..c474129 100644 --- a/LawFirm/LawFirmContracts/ViewModels/DocumentViewModel.cs +++ b/LawFirm/LawFirmContracts/ViewModels/DocumentViewModel.cs @@ -1,4 +1,5 @@ -using LawFirmDataModels.Models; +using LawFirmContracts.Attributes; +using LawFirmDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel; @@ -10,14 +11,16 @@ namespace LawFirmContracts.ViewModels { public class DocumentViewModel : IDocumentModel { - [DisplayName("Название документа")] + [Column("Название документа", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] public string DocumentName {get; set;} = string.Empty; - [DisplayName("Цена")] + [Column("Цена", width: 100)] public double Price { get; set; } + [Column(visible: false)] public Dictionary DocumentBlanks { get; set; } = new(); + [Column(visible: false)] public int Id { get; set; } } } diff --git a/LawFirm/LawFirmContracts/ViewModels/ImplementerViewModel.cs b/LawFirm/LawFirmContracts/ViewModels/ImplementerViewModel.cs index a27d009..1130c00 100644 --- a/LawFirm/LawFirmContracts/ViewModels/ImplementerViewModel.cs +++ b/LawFirm/LawFirmContracts/ViewModels/ImplementerViewModel.cs @@ -1,4 +1,5 @@ -using LawFirmDataModels.Models; +using LawFirmContracts.Attributes; +using LawFirmDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel; @@ -10,18 +11,19 @@ namespace LawFirmContracts.ViewModels { public class ImplementerViewModel : IImplementerModel { + [Column(visible: false)] public int Id { get; set; } - [DisplayName("ФИО")] + [Column("ФИО", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] public string ImplementerFIO { get; set; } = string.Empty; - [DisplayName("Пароль")] + [Column("Пароль", width: 200)] public string Password { get; set; } = string.Empty; - [DisplayName("Трудовой стаж")] + [Column("Трудовой стаж", width: 200)] public int WorkExperience { get; set; } - [DisplayName("Квалификация")] + [Column("Квалификация", width: 200)] public int Qualification { get; set; } } } diff --git a/LawFirm/LawFirmContracts/ViewModels/MessageInfoViewModel.cs b/LawFirm/LawFirmContracts/ViewModels/MessageInfoViewModel.cs index c5283b5..6081018 100644 --- a/LawFirm/LawFirmContracts/ViewModels/MessageInfoViewModel.cs +++ b/LawFirm/LawFirmContracts/ViewModels/MessageInfoViewModel.cs @@ -1,4 +1,5 @@ -using LawFirmDataModels.Models; +using LawFirmContracts.Attributes; +using LawFirmDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel; @@ -10,16 +11,22 @@ namespace LawFirmContracts.ViewModels { public class MessageInfoViewModel : IMessageInfoModel { - public string MessageId { get; set; } = string.Empty; + [Column(visible: false)] + public string MessageId { get; set; } = string.Empty; - public int? ClientId { get; set; } - [DisplayName("Отправитель")] - public string SenderName { get; set; } = string.Empty; - [DisplayName("Дата письма")] - public DateTime DateDelivery { get; set; } - [DisplayName("Заголовок")] - public string Subject { get; set; } = string.Empty; - [DisplayName("Текст")] - public string Body { get; set; } = string.Empty; + [Column(visible: false)] + public int? ClientId { get; set; } + + [Column("Отправитель", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)] + public string SenderName { get; set; } = string.Empty; + + [Column("Дата письма", width: 100)] + public DateTime DateDelivery { get; set; } + + [Column("Заголовок", width: 150)] + public string Subject { get; set; } = string.Empty; + + [Column("Текст", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] + public string Body { get; set; } = string.Empty; } } diff --git a/LawFirm/LawFirmContracts/ViewModels/OrderViewModel.cs b/LawFirm/LawFirmContracts/ViewModels/OrderViewModel.cs index a2f76c6..9c7270a 100644 --- a/LawFirm/LawFirmContracts/ViewModels/OrderViewModel.cs +++ b/LawFirm/LawFirmContracts/ViewModels/OrderViewModel.cs @@ -1,4 +1,5 @@ -using LawFirmDataModels.Enums; +using LawFirmContracts.Attributes; +using LawFirmDataModels.Enums; using LawFirmDataModels.Models; using System; using System.Collections.Generic; @@ -11,33 +12,40 @@ namespace LawFirmContracts.ViewModels { public class OrderViewModel : IOrderModel { - [DisplayName("Номер")] + [Column("Номер", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] public int Id { get; set; } + + [Column(visible: false)] public int DocumentId { get; set; } - [DisplayName("Документ")] + [Column("Документ", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] public string DocumentName { get; set; } = string.Empty; + + [Column(visible: false)] public int ClientId { get; set; } - [DisplayName("ФИО клиента")] + [Column("ФИО клиента", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] public string ClientFIO { get; set; } = string.Empty; + + [Column(visible: false)] public int? ImplementerId { get; set; } - [DisplayName("ФИО исполнителя")] + + [Column("ФИО исполнителя", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] public string ImplementerFIO { get; set; } = string.Empty; - [DisplayName("Количество")] + [Column("Количество", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] public int Count { get; set; } - [DisplayName("Сумма")] + [Column("Сумма", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] public double Sum { get; set; } - [DisplayName("Статус")] + [Column("Статус", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; - [DisplayName("Дата создания")] + [Column("Дата создания", width: 100)] public DateTime DateCreate { get; set; } = DateTime.Now; - [DisplayName("Дата выполнения")] + [Column("Дата выполнения", width: 100)] public DateTime? DateImplement { get; set; }