сидим делаем

This commit is contained in:
Леонид Малафеев 2024-05-18 13:05:40 +04:00
parent 2d78e9f0e8
commit 9d28d844f7
8 changed files with 107 additions and 34 deletions

View File

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JewelryStoreContracts.Attributes
{
[AttributeUsage(AttributeTargets.Property)]
public class ColumnAttribute : Attribute
{
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; }
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;
}
}
}

View File

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JewelryStoreContracts.Attributes
{
public enum GridViewAutoSize
{
NotSet = 0,
None = 1,
ColumnHeader = 2,
AllCellsExceptHeader = 4,
AllCells = 6,
DisplayedCellsExceptHeader = 8,
DisplayedCells = 10,
Fill = 16
}
}

View File

@ -5,17 +5,19 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JewelryStoreContracts.Attributes;
namespace JewelryStoreContracts.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;
}
}

View File

@ -1,4 +1,5 @@
using JewerlyStoreDataModels.Models;
using JewelryStoreContracts.Attributes;
using JewerlyStoreDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@ -10,12 +11,13 @@ namespace JewelryStoreContracts.ViewModels
{
public class ComponentViewModel : IComponentModel
{
[Column(visible: false)]
public int Id { get; set; }
[DisplayName("Название компонента")]
[Column(title: "Название компонента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string ComponentName { get; set; } = string.Empty;
[DisplayName("Цена")]
[Column(title: "Цена", width: 150)]
public double Cost { get; set; }
}

View File

@ -1,4 +1,5 @@
using JewerlyStoreDataModels.Models;
using JewelryStoreContracts.Attributes;
using JewerlyStoreDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@ -9,19 +10,20 @@ using System.Threading.Tasks;
namespace JewelryStoreContracts.ViewModels
{
public class ImplementerViewModel : IImplementerModel
{
public int Id { get; set; }
{
[Column(visible: false)]
public int Id { get; set; }
[DisplayName("ФИО исполнителя")]
[Column(title: "ФИО исполнителя", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string ImplementerFIO { get; set; } = string.Empty;
[DisplayName("Пароль")]
[Column(title: "Пароль", width: 100)]
public string Password { get; set; } = string.Empty;
[DisplayName("Стаж работы")]
[Column(title: "Стаж работы", width: 60)]
public int WorkExperience { get; set; }
[DisplayName("Квалификация")]
[Column(title: "Квалификация", width: 60)]
public int Qualification { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using JewerlyStoreDataModels.Models;
using JewelryStoreContracts.Attributes;
using JewerlyStoreDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@ -10,13 +11,15 @@ namespace JewelryStoreContracts.ViewModels
{
public class JewelViewModel : IJewelModel
{
[Column(visible: false)]
public int Id { get; set; }
[DisplayName("Название изделия")]
[Column(title: "Название изделия", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string JewelName { get; set; } = string.Empty;
[DisplayName("Цена")]
[Column(title: "Цена", width: 70)]
public double Price { get; set; }
[Column(visible: false)]
public Dictionary<int, (IComponentModel, int)> JewelComponents { get; set; } = new();
}

View File

@ -5,21 +5,23 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JewelryStoreContracts.Attributes;
namespace JewelryStoreContracts.ViewModels
{
public class MessageInfoViewModel : IMessageInfoModel
{
public string MessageId { get; set; } = string.Empty;
public int? ClientId { get; set; }
[DisplayName("Имя отправителя")]
[Column(visible: false)]
public string MessageId { get; set; } = string.Empty;
[Column(visible: false)]
public int? ClientId { get; set; }
[Column(title: "Имя отправителя", width: 150)]
public string SenderName { get; set; } = string.Empty;
[DisplayName("Дата доставки")]
[Column(title: "Дата доставки", width: 120)]
public DateTime DateDelivery { get; set; }
[DisplayName("Тема письма")]
[Column(title: "Тема письма", width: 120)]
public string Subject { get; set; } = string.Empty;
[DisplayName("Внутренности письма")]
[Column(title: "Внутренности письма", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string Body { get; set; } = string.Empty;
}
}

View File

@ -6,37 +6,41 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JewelryStoreContracts.Attributes;
namespace JewelryStoreContracts.ViewModels
{
public class OrderViewModel : IOrderModel
{
[DisplayName("Номер")]
[Column(title: "Номер", width: 90)]
public int Id { get; set; }
[Column(visible: false)]
public int ClientId { get; set; }
[DisplayName("Клиент")]
[Column(title: "Клиент", width: 190)]
public string ClientFIO { get; set; } = string.Empty;
public int? ImplementerId { get; set; }
[DisplayName("ФИО исполнителя")]
[Column(visible: false)]
public int? ImplementerId { get; set; }
[Column(title: "ФИО исполнителя", width: 150)]
public string ImplementerFIO { get; set; } = string.Empty;
public int JewelId { get; set; }
[Column(visible: false)]
public int JewelId { get; set; }
[DisplayName("Изделие")]
[Column(title: "Изделие", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string JewelName { get; set; } = string.Empty;
[DisplayName("Количество")]
[Column(title: "Количество", width: 100)]
public int Count { get; set; }
[DisplayName("Сумма")]
[Column(title: "Сумма", width: 120)]
public double Sum { get; set; }
[DisplayName("Статус")]
[Column(title: "Статус", width: 70)]
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
[DisplayName("Дата создания")]
[Column(title: "Дата создания", width: 120)]
public DateTime DateCreate { get; set; } = DateTime.Now;
[DisplayName("Дата выполнения")]
[Column(title: "Дата выполнения", width: 120)]
public DateTime? DateImplement { get; set; }
}