Compare commits
No commits in common. "BusinessLogic" and "main" have entirely different histories.
BusinessLo
...
main
ElectronicsShop
ElectronicsShop.sln
ElectronicsShopBusinessLogic
ElectronicsShopContracts
BindingModels
CategoryProductBindingModel.csClientBindingModel.csOrderBindingModel.csProductBindingModel.csRoleBindingModel.csShopAssistentBindingModel.cs
BusinessLogicContracts
ICategoryProductLogic.csIClientLogic.csIOrderLogic.csIProductLogic.csIRoleLogic.csShopAssistentLogic.cs
ElectronicsShopContracts.csprojSearchModels
CategoryProductSearchModel.csClientSearchModel.csOrderSearchModel.csProductSearchModel.csRoleSearchModel.csShopAssistentSearchModel.cs
StorageContracts
ICategoryProductStorage.csIClientStorage.csIOrderStorage.csIProductStorage.csIRoleStorage.csIShopAssistentStorage.cs
ViewModels
ElectronicsShopDataModels
@ -3,31 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.9.34728.123
|
VisualStudioVersion = 17.9.34728.123
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElectronicsShopDataModels", "ElectronicsShopDataModels\ElectronicsShopDataModels.csproj", "{380E3833-D9AE-46C7-8881-9B15B8559411}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElectronicsShopContracts", "ElectronicsShopContracts\ElectronicsShopContracts.csproj", "{69411E41-F304-4D1B-8F15-48DD08585C7A}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElectronicsShopBusinessLogic", "ElectronicsShopBusinessLogic\ElectronicsShopBusinessLogic.csproj", "{0CCDB712-EE03-4050-AC4B-4315FF14ABD2}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{380E3833-D9AE-46C7-8881-9B15B8559411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{380E3833-D9AE-46C7-8881-9B15B8559411}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{380E3833-D9AE-46C7-8881-9B15B8559411}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{380E3833-D9AE-46C7-8881-9B15B8559411}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{69411E41-F304-4D1B-8F15-48DD08585C7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{69411E41-F304-4D1B-8F15-48DD08585C7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{69411E41-F304-4D1B-8F15-48DD08585C7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{69411E41-F304-4D1B-8F15-48DD08585C7A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0CCDB712-EE03-4050-AC4B-4315FF14ABD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{0CCDB712-EE03-4050-AC4B-4315FF14ABD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{0CCDB712-EE03-4050-AC4B-4315FF14ABD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0CCDB712-EE03-4050-AC4B-4315FF14ABD2}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
@ -1,119 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.BusinessLogicContracts;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.StorageContracts;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using ElectronicsShopDataModels.Enums;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopBusinessLogic.BusinessLogic
|
|
||||||
{
|
|
||||||
public class OrderLogic : IOrderLogic
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
//private readonly IOrderStorage _storage;
|
|
||||||
|
|
||||||
// todo нет интерфейса хранилища
|
|
||||||
public OrderLogic(ILogger<OrderLogic> logger) {
|
|
||||||
_logger = logger;
|
|
||||||
//storage = _storage;
|
|
||||||
}
|
|
||||||
public bool CreateOrder(OrderBindingModel model)
|
|
||||||
{
|
|
||||||
CheckModel(model);
|
|
||||||
model.Status = OrderStatus.Принят;
|
|
||||||
// todo _orderStorage.Insert(model) == null
|
|
||||||
if (model == null) {
|
|
||||||
_logger.LogInformation("Insert operation failed");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool DeliveryOrder(OrderBindingModel model)
|
|
||||||
{
|
|
||||||
return StatusUpdate(model, OrderStatus.Выдан);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool FinishOrder(OrderBindingModel model)
|
|
||||||
{
|
|
||||||
return StatusUpdate(model, OrderStatus.Готов);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool TakeOrderInWork(OrderBindingModel model)
|
|
||||||
{
|
|
||||||
return StatusUpdate(model, OrderStatus.Выполняется);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<OrderViewModel>? ReadList(OrderSearchModel? model)
|
|
||||||
{
|
|
||||||
_logger.LogInformation($"ReadList:ID:{model?.ID}");
|
|
||||||
// todo model == null? _orderStorage.GetFullList() : _orderStorage.GetFilteredList(model);
|
|
||||||
var list = model;
|
|
||||||
if (list == null) {
|
|
||||||
_logger.LogWarning("ReadList return null list");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// todo "$ReadList.Count:{list.count}"
|
|
||||||
_logger.LogInformation("ReadList.Count:{Count}");
|
|
||||||
//todo return list
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CheckModel(OrderBindingModel model, bool withParams = true) {
|
|
||||||
if (model == null) {
|
|
||||||
throw new ArgumentNullException(nameof(model));
|
|
||||||
}
|
|
||||||
if (!withParams) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty((model.ID).ToString())) {
|
|
||||||
throw new ArgumentNullException("Нет ID заказа", nameof(model.ID));
|
|
||||||
}
|
|
||||||
if (model.Sum <= 0) {
|
|
||||||
throw new ArgumentNullException("Цена зака должна быть больше 0", nameof(model.Sum));
|
|
||||||
}
|
|
||||||
_logger.LogInformation($"Order. ID:{model.ID}.Sum:{model.Sum}.Status:{model.Status}.PaymeantOption:{model.PaymeantOption}." +
|
|
||||||
$"DateCreate:{model.DateCreate}.DataImplement:{model.DateImplemet}");
|
|
||||||
}
|
|
||||||
private bool StatusUpdate(OrderBindingModel model, OrderStatus newOrderStatus)
|
|
||||||
{
|
|
||||||
CheckModel(model, false);
|
|
||||||
//todo
|
|
||||||
var viewModel = model; // model == _orderStorage.GetElement(new OrderSearchModel { ID = model.ID });
|
|
||||||
if (viewModel == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(model));
|
|
||||||
}
|
|
||||||
if (viewModel.Status + 1 != newOrderStatus)
|
|
||||||
{
|
|
||||||
_logger.LogWarning("Status update to " + newOrderStatus.ToString() + " operation failed.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
model.Status = newOrderStatus;
|
|
||||||
if (model.Status == OrderStatus.Готов)
|
|
||||||
{
|
|
||||||
//todo подключить бд
|
|
||||||
//model.DateImplement = DateTime.Now;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// todo подключить бд
|
|
||||||
//model.DateImplement = viewModel.DateImplement;
|
|
||||||
}
|
|
||||||
// todo
|
|
||||||
// _orderStorage.Update(model) == null
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
_logger.LogWarning("Update operarion failed");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,104 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.BusinessLogicContracts;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopBusinessLogic.BusinessLogic
|
|
||||||
{
|
|
||||||
public class RoleLogic : IRoleLogic
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
//private readonly ICategoryProductStorage _storage;
|
|
||||||
|
|
||||||
// todo нет интерфейса хранилища
|
|
||||||
public RoleLogic(ILogger<RoleLogic> logger)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Create(RoleBindingModel model)
|
|
||||||
{
|
|
||||||
CheckModel(model);
|
|
||||||
// todo _storage.Insert(model) == null
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
_logger.LogWarning("Insert operation failed");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Delete(RoleBindingModel model)
|
|
||||||
{
|
|
||||||
CheckModel(model, false);
|
|
||||||
_logger.LogInformation($"Delete. ID:{model.ID}");
|
|
||||||
// todo _storage.Insert(model) == null
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
_logger.LogWarning("Delete operation failed");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
public bool Update(RoleBindingModel model)
|
|
||||||
{
|
|
||||||
CheckModel(model);
|
|
||||||
// todo _storage.Insert(model) == null
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
_logger.LogWarning("Update operation failed");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<RoleViewModel>? ReadList(RoleSearchModel? model)
|
|
||||||
{
|
|
||||||
_logger.LogInformation($"ReadList. ID:{model?.ID}");
|
|
||||||
// todo model == null _RoleStorage.GetFullList() : _RoleStorage.GetFilteredList(model);
|
|
||||||
var list = model;
|
|
||||||
if (list == null)
|
|
||||||
{
|
|
||||||
_logger.LogWarning("ReadList return null list");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// todo $"ReadList. Count:{list.count}"
|
|
||||||
_logger.LogInformation("ReadList. Count:{Count}");
|
|
||||||
// todo return list;
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CheckModel(RoleBindingModel model, bool withParams = true)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(model));
|
|
||||||
}
|
|
||||||
if (!withParams)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(model.Name))
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException("Нет названия категории продукта", nameof(model.Name));
|
|
||||||
}
|
|
||||||
_logger.LogInformation($"CategoryProduct. Name:{model.Name}");
|
|
||||||
/*
|
|
||||||
var element = _RoleStorage.GetElement(new RoleSearchModel
|
|
||||||
{
|
|
||||||
Name = model.Name
|
|
||||||
});
|
|
||||||
if (element != null && element.Id != model.ID)
|
|
||||||
{
|
|
||||||
throw new InvalidOperationException("Такая роль уже есть");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,136 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.BusinessLogicContracts;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using System.Data;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopBusinessLogic.BusinessLogic
|
|
||||||
{
|
|
||||||
public class UserLogic : IClientLogic
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
//private readonly IClientStorage _storage;
|
|
||||||
|
|
||||||
// todo нет интерфейса хранилища
|
|
||||||
public UserLogic(ILogger<UserLogic> logger) {
|
|
||||||
_logger = logger;
|
|
||||||
//storage = _storage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Add(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
CheckModel(model);
|
|
||||||
// todo логика добавления в _clientStorage:_clientStorage.Insert(model) == null
|
|
||||||
if (model == null) {
|
|
||||||
_logger.LogWarning("Add operation failed");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Update(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
CheckModel(model);
|
|
||||||
// todo логика добавления в _clientStorage:_clientStorage.Update(model) == null
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
_logger.LogWarning("Update operation failed");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Delete(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
CheckModel(model, false);
|
|
||||||
_logger.LogInformation($"Delete.ID:{model.UserID}");
|
|
||||||
// todo логика добавления в _clientStorage:_clientStorage.Delete(model) == null
|
|
||||||
if (model == null) {
|
|
||||||
_logger.LogWarning("Delete operation failes");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public ClientViewModel? ReadElemet(ClientSearchModel? model)
|
|
||||||
{
|
|
||||||
if (model == null) {
|
|
||||||
throw new ArgumentNullException(nameof(model));
|
|
||||||
}
|
|
||||||
_logger.LogInformation($"ReadElement: logint:{ model.Login}.ID:{model.UserID}");
|
|
||||||
// todo element = _clientStorage.GetElement(model);
|
|
||||||
var element = model;
|
|
||||||
if (element == null) {
|
|
||||||
_logger.LogWarning("ReadElement element not fount");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
_logger.LogInformation($"ReadElement: find.ID:{element.UserID}");
|
|
||||||
// todo retun element;
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ClientViewModel>? ReadList(ClientSearchModel? model)
|
|
||||||
{
|
|
||||||
|
|
||||||
_logger.LogInformation($"ReadList: ClientID:{model?.UserID}");
|
|
||||||
// todo получение списка из хранилища, model == null ? _clientStorage.GetFullList() : _clientStorage.GetFilteredList(model);
|
|
||||||
var list = model;
|
|
||||||
if (list == null) {
|
|
||||||
_logger.LogWarning("ReadList: return null list");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// toto ReadList:Count:{list.count},
|
|
||||||
_logger.LogInformation("ReadList:Count:{Count}");
|
|
||||||
// todo return list;
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CheckModel(ClientBindingModel model, bool withParams = true) {
|
|
||||||
if (model == null) {
|
|
||||||
throw new ArgumentNullException(nameof(model));
|
|
||||||
}
|
|
||||||
if (!withParams) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(model.Login)) {
|
|
||||||
throw new ArgumentNullException("Нет логина пользователя", nameof(model.Login));
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(model.FirstName)) {
|
|
||||||
throw new ArgumentNullException("Нет имени пользователя", nameof(model.FirstName));
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(model.LastName)) {
|
|
||||||
throw new ArgumentNullException("Нет фамилии пользоватея", nameof(model.LastName));
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(model.Email)) {
|
|
||||||
throw new ArgumentNullException("Нет почты клиента", nameof(model.Email));
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(model.Password)) {
|
|
||||||
throw new ArgumentNullException("Нет пароля пользователя", nameof (model.Password));
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(model.PhoneNumber)) {
|
|
||||||
throw new ArgumentNullException("Нет номер телефона пользователя", nameof(model.PhoneNumber));
|
|
||||||
}
|
|
||||||
_logger.LogInformation($"Client. Login:{model.Login}.FirstName:{model.FirstName}.LastName:{model.LastName}.Email:{model.Email}." +
|
|
||||||
$"Password:{model.Password}.PhoneNumber:{model.PhoneNumber}");
|
|
||||||
/*
|
|
||||||
var element = _clientStorage.GetElement(new ClientSearchModel
|
|
||||||
{
|
|
||||||
Login = model.Login
|
|
||||||
});
|
|
||||||
if (element != null && element.Id != model.ID)
|
|
||||||
{
|
|
||||||
throw new InvalidOperationException("Клиент с таким логином уже есть");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\ElectronicsShopContracts\ElectronicsShopContracts.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BindingModels
|
|
||||||
{
|
|
||||||
public class CategoryProductBindingModel : ICategoryProductModel
|
|
||||||
{
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BindingModels
|
|
||||||
{
|
|
||||||
public class ClientBindingModel : IClientModel
|
|
||||||
{
|
|
||||||
//ID пользователя
|
|
||||||
public int UserID { get; set; }
|
|
||||||
//ID роли (клиент)
|
|
||||||
public int RoleID { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
public string FirstName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string LastName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Login { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Email { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Password { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string PhoneNumber { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Enums;
|
|
||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BindingModels
|
|
||||||
{
|
|
||||||
public class OrderBindingModel : IOrderModel
|
|
||||||
{
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
public double Sum { get; set; }
|
|
||||||
|
|
||||||
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
|
|
||||||
|
|
||||||
public PaymeantOption PaymeantOption { get; set; } = PaymeantOption.Неизвестно;
|
|
||||||
|
|
||||||
public DateTime DateCreate { get; set; } = DateTime.Now;
|
|
||||||
|
|
||||||
public DateTime? DateImplemet { get; set; }
|
|
||||||
|
|
||||||
public Dictionary<int, (IProductModel, int)> ProductList { get; set; } = new();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BindingModels
|
|
||||||
{
|
|
||||||
public class ProductBindingModel : IProductModel
|
|
||||||
{
|
|
||||||
//ID категории продукта (товара)
|
|
||||||
public int CategoryID { get; set; }
|
|
||||||
//ID продукта (товара)
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
public string ProductName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public double Price { get; set; }
|
|
||||||
|
|
||||||
public int Count { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BindingModels
|
|
||||||
{
|
|
||||||
public class RoleBindingModel : IRoleModel
|
|
||||||
{
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BindingModels
|
|
||||||
{
|
|
||||||
public class ShopAssistentBindingModel : IShopAssistentModel
|
|
||||||
{
|
|
||||||
//ID пользователя
|
|
||||||
public int UserID { get; set; }
|
|
||||||
//ID роли (сотрудник)
|
|
||||||
public int RoleID { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
public string FirstName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string LastName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Login { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Email { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Password { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string PhoneNumber { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BusinessLogicContracts
|
|
||||||
{
|
|
||||||
public interface ICategoryProductLogic
|
|
||||||
{
|
|
||||||
List<CategoryProductViewModel>? ReadList(CategoryProductSearchModel? model);
|
|
||||||
|
|
||||||
bool Create(CategoryProductBindingModel model);
|
|
||||||
bool Update(CategoryProductBindingModel model);
|
|
||||||
bool Delete(CategoryProductBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BusinessLogicContracts
|
|
||||||
{
|
|
||||||
public interface IClientLogic
|
|
||||||
{
|
|
||||||
List<ClientViewModel>? ReadList(ClientSearchModel? model);
|
|
||||||
ClientViewModel? ReadElemet(ClientSearchModel? model);
|
|
||||||
|
|
||||||
bool Add(ClientBindingModel model);
|
|
||||||
bool Update(ClientBindingModel model);
|
|
||||||
bool Delete(ClientBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BusinessLogicContracts
|
|
||||||
{
|
|
||||||
public interface IOrderLogic
|
|
||||||
{
|
|
||||||
List<OrderViewModel>? ReadList(OrderSearchModel? model);
|
|
||||||
|
|
||||||
bool CreateOrder(OrderBindingModel model);
|
|
||||||
bool TakeOrderInWork(OrderBindingModel model);
|
|
||||||
bool FinishOrder(OrderBindingModel model);
|
|
||||||
bool DeliveryOrder(OrderBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BusinessLogicContracts
|
|
||||||
{
|
|
||||||
public interface IProductLogic
|
|
||||||
{
|
|
||||||
List<ProductViewModel>? ReadList(ProductSearchModel? model);
|
|
||||||
ProductViewModel? ReadElement(ProductSearchModel? model);
|
|
||||||
|
|
||||||
bool Create(ProductBindingModel model);
|
|
||||||
bool Update(ProductBindingModel model);
|
|
||||||
bool Delete(ProductBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BusinessLogicContracts
|
|
||||||
{
|
|
||||||
public interface IRoleLogic
|
|
||||||
{
|
|
||||||
List<RoleViewModel>? ReadList(RoleSearchModel? model);
|
|
||||||
|
|
||||||
bool Create(RoleBindingModel model);
|
|
||||||
bool Update(RoleBindingModel model);
|
|
||||||
bool Delete(RoleBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.BusinessLogicContracts
|
|
||||||
{
|
|
||||||
public interface ShopAssistentLogic
|
|
||||||
{
|
|
||||||
List<ShopAssistentViewModel>? ReadList(ShopAssistentSearchModel? model);
|
|
||||||
ShopAssistentViewModel? ReadElement(ShopAssistentSearchModel? model);
|
|
||||||
|
|
||||||
bool Add(ShopAssistentBindingModel model);
|
|
||||||
bool Update(ShopAssistentBindingModel model);
|
|
||||||
bool Delete(ShopAssistentBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\ElectronicsShopDataModels\ElectronicsShopDataModels.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,15 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.SearchModels
|
|
||||||
{
|
|
||||||
public class CategoryProductSearchModel
|
|
||||||
{
|
|
||||||
public int? ID { get; set; }
|
|
||||||
|
|
||||||
public string? Name { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.SearchModels
|
|
||||||
{
|
|
||||||
public class ClientSearchModel
|
|
||||||
{
|
|
||||||
public int? UserID { get; set; }
|
|
||||||
public string? Login { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Enums;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.SearchModels
|
|
||||||
{
|
|
||||||
public class OrderSearchModel
|
|
||||||
{
|
|
||||||
public int? ID { get; set; }
|
|
||||||
public DateTime? DateFrom { get; set; }
|
|
||||||
public DateTime? DateTo { get; set;}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.SearchModels
|
|
||||||
{
|
|
||||||
public class ProductSearchModel
|
|
||||||
{
|
|
||||||
public int? ID { get; set; }
|
|
||||||
public string? ProductName { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.SearchModels
|
|
||||||
{
|
|
||||||
public class RoleSearchModel
|
|
||||||
{
|
|
||||||
public int? ID { get; set; }
|
|
||||||
|
|
||||||
public string? Name { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.SearchModels
|
|
||||||
{
|
|
||||||
public class ShopAssistentSearchModel
|
|
||||||
{
|
|
||||||
public int? UserID { get; set; }
|
|
||||||
public string? Login { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.StorageContracts
|
|
||||||
{
|
|
||||||
public interface ICategoryProductStorage
|
|
||||||
{
|
|
||||||
List<CategoryProductViewModel> GetFullList();
|
|
||||||
List<CategoryProductViewModel> GetFilteredList(ClientSearchModel model);
|
|
||||||
CategoryProductViewModel? GetElement(ClientSearchModel model);
|
|
||||||
CategoryProductViewModel? Insert(ClientBindingModel model);
|
|
||||||
CategoryProductViewModel? Update(ClientBindingModel model);
|
|
||||||
CategoryProductViewModel? Delete(ClientBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.StorageContracts
|
|
||||||
{
|
|
||||||
public interface IOrderStorage
|
|
||||||
{
|
|
||||||
List<OrderViewModel> GetFullList();
|
|
||||||
List<OrderViewModel> GetFilteredList(ClientSearchModel model);
|
|
||||||
OrderViewModel? GetElement(ClientSearchModel model);
|
|
||||||
OrderViewModel? Insert(ClientBindingModel model);
|
|
||||||
OrderViewModel? Update(ClientBindingModel model);
|
|
||||||
OrderViewModel? Delete(ClientBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.StorageContracts
|
|
||||||
{
|
|
||||||
public interface IProductStorage
|
|
||||||
{
|
|
||||||
List<ProductViewModel> GetFullList();
|
|
||||||
List<ProductViewModel> GetFilteredList(ClientSearchModel model);
|
|
||||||
ProductViewModel? GetElement(ClientSearchModel model);
|
|
||||||
ProductViewModel? Insert(ClientBindingModel model);
|
|
||||||
ProductViewModel? Update(ClientBindingModel model);
|
|
||||||
ProductViewModel? Delete(ClientBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.StorageContracts
|
|
||||||
{
|
|
||||||
public interface IRoleStorage
|
|
||||||
{
|
|
||||||
List<RoleViewModel> GetFullList();
|
|
||||||
List<RoleViewModel> GetFilteredList(ClientSearchModel model);
|
|
||||||
RoleViewModel? GetElement(ClientSearchModel model);
|
|
||||||
RoleViewModel? Insert(ClientBindingModel model);
|
|
||||||
RoleViewModel? Update(ClientBindingModel model);
|
|
||||||
RoleViewModel? Delete(ClientBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopContracts.BindingModels;
|
|
||||||
using ElectronicsShopContracts.SearchModels;
|
|
||||||
using ElectronicsShopContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.StorageContracts
|
|
||||||
{
|
|
||||||
public interface IShopAssistentStorage
|
|
||||||
{
|
|
||||||
List<ShopAssistentViewModel> GetFullList();
|
|
||||||
List<ShopAssistentViewModel> GetFilteredList(ClientSearchModel model);
|
|
||||||
ShopAssistentViewModel? GetElement(ClientSearchModel model);
|
|
||||||
ShopAssistentViewModel? Insert(ClientBindingModel model);
|
|
||||||
ShopAssistentViewModel? Update(ClientBindingModel model);
|
|
||||||
ShopAssistentViewModel? Delete(ClientBindingModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.ViewModels
|
|
||||||
{
|
|
||||||
public class CategoryProductViewModel : ICategoryProductModel
|
|
||||||
{
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
[DisplayName("Название категории продукта")]
|
|
||||||
public string Name { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.ViewModels
|
|
||||||
{
|
|
||||||
public class ClientViewModel : IClientModel
|
|
||||||
{
|
|
||||||
|
|
||||||
//ID пользователя
|
|
||||||
public int UserID { get; set; }
|
|
||||||
//ID роли (клиент)
|
|
||||||
public int RoleID { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
[DisplayName("Имя")]
|
|
||||||
public string FirstName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Фамилия")]
|
|
||||||
public string LastName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Логин")]
|
|
||||||
public string Login { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Почта")]
|
|
||||||
public string Email { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Пароль")]
|
|
||||||
public string Password { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Номер телефона")]
|
|
||||||
public string PhoneNumber { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Enums;
|
|
||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.ViewModels
|
|
||||||
{
|
|
||||||
public class OrderViewModel : IOrderModel
|
|
||||||
{
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
[DisplayName("Сумма")]
|
|
||||||
public double Sum { get; set; }
|
|
||||||
|
|
||||||
[DisplayName("Статус")]
|
|
||||||
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
|
|
||||||
|
|
||||||
[DisplayName("Стутус оплаты")]
|
|
||||||
public PaymeantOption PaymeantOption { get; set; } = PaymeantOption.Неизвестно;
|
|
||||||
|
|
||||||
[DisplayName("Дата создания")]
|
|
||||||
public DateTime DateCreate { get; set; } = DateTime.Now;
|
|
||||||
|
|
||||||
[DisplayName("Дата выполнения")]
|
|
||||||
public DateTime? DateImplemet { get; set; }
|
|
||||||
|
|
||||||
public Dictionary<int, (IProductModel, int)> ProductList { get; set; } = new();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.ViewModels
|
|
||||||
{
|
|
||||||
public class ProductViewModel : IProductModel
|
|
||||||
{
|
|
||||||
//ID категории продукта (товара)
|
|
||||||
public int CategoryID { get; set; }
|
|
||||||
//ID продукта (товара)
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
[DisplayName("Название товара")]
|
|
||||||
public string ProductName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Цена")]
|
|
||||||
public double Price { get; set; }
|
|
||||||
|
|
||||||
[DisplayName("Количество")]
|
|
||||||
public int Count { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
using ElectronicsShopDataModels;
|
|
||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.ViewModels
|
|
||||||
{
|
|
||||||
public class RoleViewModel : IRoleModel
|
|
||||||
{
|
|
||||||
public int ID { get; set; }
|
|
||||||
|
|
||||||
[DisplayName("Название роли")]
|
|
||||||
public string Name { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopContracts.ViewModels
|
|
||||||
{
|
|
||||||
public class ShopAssistentViewModel : IShopAssistentModel
|
|
||||||
{
|
|
||||||
//ID пользователя
|
|
||||||
public int UserID { get; set; }
|
|
||||||
//ID роли (сотрудник)
|
|
||||||
public int RoleID { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
[DisplayName("Имя")]
|
|
||||||
public string FirstName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Фамилия")]
|
|
||||||
public string LastName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Логин")]
|
|
||||||
public string Login { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Почта")]
|
|
||||||
public string Email { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Пароль")]
|
|
||||||
public string Password { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
[DisplayName("Номер телефона")]
|
|
||||||
public string PhoneNumber { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,21 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Enums
|
|
||||||
{
|
|
||||||
public enum OrderStatus
|
|
||||||
{
|
|
||||||
Неизвестен = -1,
|
|
||||||
|
|
||||||
Принят = 0,
|
|
||||||
|
|
||||||
Выполняется = 1,
|
|
||||||
|
|
||||||
Готов = 2,
|
|
||||||
|
|
||||||
Выдан = 3
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Enums
|
|
||||||
{
|
|
||||||
public enum PaymeantOption
|
|
||||||
{
|
|
||||||
Неизвестно = -1,
|
|
||||||
|
|
||||||
Полная_оплата = 0,
|
|
||||||
|
|
||||||
Частичная_оплата = 1
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels
|
|
||||||
{
|
|
||||||
public interface IID
|
|
||||||
{
|
|
||||||
int ID { get; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels
|
|
||||||
{
|
|
||||||
public interface IUser
|
|
||||||
{
|
|
||||||
string FirstName { get; }
|
|
||||||
string LastName { get; }
|
|
||||||
string Login { get; }
|
|
||||||
string Email { get; }
|
|
||||||
string Password { get; }
|
|
||||||
string PhoneNumber { get; }
|
|
||||||
int RoleID { get; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Models
|
|
||||||
{
|
|
||||||
public interface ICategoryProductModel : IID
|
|
||||||
{
|
|
||||||
string Name { get; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Models
|
|
||||||
{
|
|
||||||
public interface IClientModel : IUser
|
|
||||||
{
|
|
||||||
int UserID { get; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
using ElectronicsShopDataModels.Enums;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Models
|
|
||||||
{
|
|
||||||
public interface IOrderModel : IID
|
|
||||||
{
|
|
||||||
double Sum { get; }
|
|
||||||
OrderStatus Status { get; }
|
|
||||||
PaymeantOption PaymeantOption { get; }
|
|
||||||
DateTime DateCreate { get; }
|
|
||||||
DateTime? DateImplemet { get; }
|
|
||||||
//список товаров в заказе
|
|
||||||
Dictionary<int, (IProductModel, int)> ProductList { get; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Models
|
|
||||||
{
|
|
||||||
public interface IProductModel : IID
|
|
||||||
{
|
|
||||||
string ProductName { get; }
|
|
||||||
double Price { get; }
|
|
||||||
int Count { get; }
|
|
||||||
int CategoryID { get; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Models
|
|
||||||
{
|
|
||||||
public interface IRoleModel : IID
|
|
||||||
{
|
|
||||||
string Name { get; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectronicsShopDataModels.Models
|
|
||||||
{
|
|
||||||
public interface IShopAssistentModel : IUser
|
|
||||||
{
|
|
||||||
int UserID { get; }
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user