Добавление контрактов

This commit is contained in:
Pyatkin I.A 2024-04-28 19:19:05 +04:00
parent be9c89db06
commit f6295ae87d
29 changed files with 540 additions and 1 deletions

View File

@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnitureFactoryView", "Fur
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnitureFactoryDataModels", "FurnitureFactoryDataModels\FurnitureFactoryDataModels.csproj", "{097184BE-A548-4FC7-910F-37805AEF97AD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnitureFactoryContracts", "FurnitureFactoryContracts\FurnitureFactoryContracts.csproj", "{E0818635-0C99-435E-99E5-8241473D0E48}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -21,6 +23,10 @@ Global
{097184BE-A548-4FC7-910F-37805AEF97AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{097184BE-A548-4FC7-910F-37805AEF97AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{097184BE-A548-4FC7-910F-37805AEF97AD}.Release|Any CPU.Build.0 = Release|Any CPU
{E0818635-0C99-435E-99E5-8241473D0E48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E0818635-0C99-435E-99E5-8241473D0E48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E0818635-0C99-435E-99E5-8241473D0E48}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E0818635-0C99-435E-99E5-8241473D0E48}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -0,0 +1,17 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BindingModels
{
public class ClientBindingModel : 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;
}
}

View File

@ -0,0 +1,18 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BindingModels
{
public class EmployeeBindingModel : IEmployeeModel
{
public int Id { get; set; }
public string EmployeeFIO { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,18 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BindingModels
{
public class FurnitureBindingModel : IFurnitureModel
{
public int Id { get; set; }
public string FurnitureName { get; set; } = string.Empty;
public double FurniturePrice { get; set; }
public Dictionary<int, (IMaterialModel, int)> FurnitureMaterials { get; set; } = new();
}
}

View File

@ -0,0 +1,16 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BindingModels
{
public class MaterialBindingModel : IMaterialModel
{
public int Id { get; set; }
public string MaretialName { get; set; } = string.Empty;
public double MaterialCost { get; set; }
}
}

View File

@ -0,0 +1,25 @@
using FurnitureFactoryDataModels.Enums;
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BindingModels
{
public class OrderBindingModel : IOrderModel
{
public int Id { get; set; }
public int ClientId { get; set; }
public int? EmployeeId { get; set; }
public int FurnitureId { get; set; }
public int FurnitureCount { get; set; }
public double OrderPrice { get; set; }
public OrderStatus OStatus { get; set; } = OrderStatus.Неизвестен;
public PaymentStatus PStatus { get; set; } = PaymentStatus.Неоплачен;
public DateTime DateCreate { get; set; } = DateTime.Now;
public DateTime? DateImplement { get; set; }
public Dictionary<int, (IFurnitureModel, int)> OrderFurnitures { get; set; } = new();
}
}

View File

@ -0,0 +1,19 @@
using FurnitureFactoryContracts.BindingModels;
using FurnitureFactoryContracts.SearchModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BusinessLogicsContracts
{
public interface IClientLogic
{
List<ClientViewModel>? ReadList(ClientSearchModel? model);
ClientViewModel? ReadElement(ClientSearchModel model);
bool Create(ClientBindingModel model);
bool Update(ClientBindingModel model);
bool Delete(ClientBindingModel model);
}
}

View File

@ -0,0 +1,23 @@
using FurnitureFactoryContracts.BindingModels;
using FurnitureFactoryContracts.SearchModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BusinessLogicsContracts
{
public interface IEmployeeLogic
{
List<EmployeeViewModel>? ReadList(EmployeeSearchModel? model);
EmployeeViewModel? ReadElement(EmployeeSearchModel model);
bool Create(EmployeeBindingModel model);
bool Update(EmployeeBindingModel model);
bool Delete(EmployeeBindingModel model);
}
}

View File

@ -0,0 +1,19 @@
using FurnitureFactoryContracts.BindingModels;
using FurnitureFactoryContracts.SearchModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BusinessLogicsContracts
{
public interface IFurnitureLogic
{
List<FurnitureViewModel>? ReadList(FurnitureSearchModel? model);
FurnitureViewModel? ReadElement(FurnitureSearchModel model);
bool Create(FurnitureBindingModel model);
bool Update(FurnitureBindingModel model);
bool Delete(FurnitureBindingModel model);
}
}

View File

@ -0,0 +1,19 @@
using FurnitureFactoryContracts.BindingModels;
using FurnitureFactoryContracts.SearchModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BusinessLogicsContracts
{
public interface IMaterialLogic
{
List<MaterialViewModel>? ReadList(MaterialSearchModel? model);
MaterialViewModel? ReadElement(MaterialSearchModel model);
bool Create(MaterialBindingModel model);
bool Update(MaterialBindingModel model);
bool Delete(MaterialBindingModel model);
}
}

View File

@ -0,0 +1,20 @@
using FurnitureFactoryContracts.BindingModels;
using FurnitureFactoryContracts.SearchModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BusinessLogicsContracts
{
public interface IOrderLogic
{
List<OrderViewModel>? ReadList(OrderSearchModel? model);
OrderViewModel? ReadElement(OrderSearchModel? model);
bool CreateOrder(OrderBindingModel model);
bool TakeOrderInWork(OrderBindingModel model);
bool FinishOrder(OrderBindingModel model);
bool DeliveryOrder(OrderBindingModel model);
}
}

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.BusinessLogicsContracts
{
public interface IWorkEmployeeImitationProcess
{
/// <summary>
/// Имитация работы сотрудника = > понадобится в дальнейшей разработке курсовой деятельности
/// </summary>
void DoWork(IEmployeeLogic employeeLogic, IOrderLogic orderLogic);
}
}

View File

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\FurnitureFactoryDataModels\FurnitureFactoryDataModels.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.SearchModels
{
public class ClientSearchModel
{
public int? Id { get; set; }
public string? ClientFIO { get; set; }
public string? Email { get; set; }
public string? Password { get; set; }
}
}

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.SearchModels
{
public class EmployeeSearchModel
{
public int? Id { get; set; }
public string? EmployeeFIO { get; set; }
public string? Email { get; set; }
public string? Password { get; set; }
}
}

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.SearchModels
{
public class FurnitureSearchModel
{
public int? Id { get; set; }
public string? FurnitureName { get; set; }
}
}

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.SearchModels
{
public class MaterialSearchModel
{
public int? Id { get; set; }
public string? MaterialName { get; set; }
}
}

View File

@ -0,0 +1,20 @@
using FurnitureFactoryDataModels.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.SearchModels
{
public class OrderSearchModel
{
public int? Id { get; set; }
public int? ClientId { get; set; }
public int? EmployeeId { get; set; }
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; }
public List<OrderStatus>? OStatuses { get; set; }
public List<PaymentStatus>? PStatuses { get; set; }
}
}

View File

@ -0,0 +1,22 @@
using FurnitureFactoryContracts.BindingModels;
using FurnitureFactoryContracts.SearchModels;
using FurnitureFactoryContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.StorageContracts
{
public interface IClientStorage
{
List<ClientViewModel> GetFullList();
List<ClientViewModel> GetFilteredList(ClientSearchModel model);
ClientViewModel? GetElement(ClientSearchModel model);
ClientViewModel? Insert(ClientBindingModel model);
ClientViewModel? Update(ClientBindingModel model);
ClientViewModel? Delete(ClientBindingModel model);
}
}

View File

@ -0,0 +1,25 @@
using FurnitureFactoryContracts.SearchModels;
using FurnitureFactoryContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.StorageContracts
{
public interface IEmployeeStorage
{
List<EmployeeViewModel> GetFullList();
List<EmployeeViewModel> GetFilteredList(EmployeeSearchModel model);
EmployeeViewModel? GetElement(EmployeeSearchModel model);
EmployeeViewModel? Insert(EmployeeSearchModel model);
EmployeeViewModel? Update(EmployeeSearchModel model);
EmployeeViewModel? Delete(EmployeeSearchModel model);
}
}

View File

@ -0,0 +1,20 @@
using FurnitureFactoryContracts.SearchModels;
using FurnitureFactoryContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.StorageContracts
{
public interface IFurnitureStorage
{
List<FurnitureViewModel> GetFullList();
List<FurnitureViewModel> GetFilteredList(FurnitureSearchModel model);
FurnitureViewModel? GetElement(FurnitureSearchModel model);
FurnitureViewModel? Insert(FurnitureSearchModel model);
FurnitureViewModel? Update(FurnitureSearchModel model);
FurnitureViewModel? Delete(FurnitureSearchModel model);
}
}

View File

@ -0,0 +1,20 @@
using FurnitureFactoryContracts.SearchModels;
using FurnitureFactoryContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.StorageContracts
{
public interface IMaterialStorage
{
List<MaterialViewModel> GetFullList();
List<MaterialViewModel> GetFilteredList(MaterialSearchModel model);
MaterialViewModel? GetElement(MaterialSearchModel model);
MaterialViewModel? Insert(MaterialSearchModel model);
MaterialViewModel? Update(MaterialSearchModel model);
MaterialViewModel? Delete(MaterialSearchModel model);
}
}

View File

@ -0,0 +1,21 @@
using FurnitureFactoryContracts.BindingModels;
using FurnitureFactoryContracts.SearchModels;
using FurnitureFactoryContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.StorageContracts
{
public interface IOrderStorage
{
List<OrderViewModel> GetFullList();
List<OrderViewModel> GetFilteredList(OrderSearchModel model);
OrderViewModel? GetElement(OrderSearchModel model);
OrderViewModel? Insert(OrderBindingModel model);
OrderViewModel? Update(OrderBindingModel model);
OrderViewModel? Delete(OrderBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.ViewModels
{
public class ClientViewModel : IClientModel
{
public int Id { get; set; }
[DisplayName("ФИО клиента")]
public string ClientFIO { get; set; } = string.Empty;
[DisplayName("Логин (эл. почта)")]
public string Email { get; set; } = string.Empty;
[DisplayName("Пароль")]
public string Password { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,23 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.ViewModels
{
public class EmployeeViewModel : IEmployeeModel
{
public int Id { get; set; }
[DisplayName("ФИО сотрудника")]
public string EmployeeFIO { get; set; } = string.Empty;
[DisplayName("Логин (эл. почта)")]
public string Email { get; set; } = string.Empty;
[DisplayName("Пароль")]
public string Password { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,20 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.ViewModels
{
public class FurnitureViewModel : IFurnitureModel
{
public int Id { get; set; }
[DisplayName("Название мебели")]
public string FurnitureName { get; set; } = string.Empty;
[DisplayName("Цена")]
public double FurniturePrice { get; set; }
public Dictionary<int, (IMaterialModel, int)> FurnitureMaterials { get; set; } = new();
}
}

View File

@ -0,0 +1,19 @@
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.ViewModels
{
public class MaterialViewModel : IMaterialModel
{
public int Id { get; set; }
[DisplayName("Название материала")]
public string MaterialName { get; set; } = string.Empty;
[DisplayName("Цена")]
public double MaterialCost { get; set; }
}
}

View File

@ -0,0 +1,39 @@
using FurnitureFactoryDataModels.Enums;
using FurnitureFactoryDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureFactoryContracts.ViewModels
{
public class OrderViewModel : IOrderModel
{
[DisplayName("Номер")]
public int Id { get; set; }
public int ClientId { get; set; }
[DisplayName("ФИО Клиента")]
public string ClientFIO { get; set; } = string.Empty;
public int? EmployeeId { get; set; }
[DisplayName("ФИО сотрудника")]
public string? EmployeeFIO { get; set; } = string.Empty;
public int FurnitureId { get; set; }
[DisplayName("Мебель")]
public string FurnitureName { get; set; } = string.Empty;
[DisplayName("Количество мебели")]
public int FurnitureCount { get; set; }
[DisplayName("Цена заказа")]
public double OrderPrice { get; set; }
[DisplayName("Статус заказа")]
public OrderStatus OStatus { get; set; } = OrderStatus.Неизвестен;
[DisplayName("Статус оплаты")]
public PaymentStatus PStatus { get; set; } = PaymentStatus.Неоплачен;
[DisplayName("Дата создания")]
public DateTime DateCreate { get; set; } = DateTime.Now;
[DisplayName("Дата выполнения")]
public DateTime? DateImplement { get; set; }
public Dictionary<int, (IFurnitureModel, int)> OrderFurnitures { get; set; } = new();
}
}

View File

@ -8,7 +8,7 @@ namespace FurnitureFactoryDataModels.Models
{
public interface IMaterialModel : IId
{
string MaretialName { get; }
string MaterialName { get; }
double MaterialCost { get; }
}
}