Contracts (recovery...)

This commit is contained in:
Никита Волков 2024-05-03 21:33:08 +04:00
parent 082eadcf1b
commit 61a28ddcb5
43 changed files with 836 additions and 0 deletions

View File

@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeautyStudioView", "BeautyS
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeautyStudioDataModels", "BeautyStudioDataModels\BeautyStudioDataModels.csproj", "{7C1604C6-4223-47A7-B651-687BBF19704B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeautyStudioContracts", "BeautyStudioContracts\BeautyStudioContracts.csproj", "{BD48E4B8-A4A1-4A80-97AE-8599BDD41892}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -21,6 +23,10 @@ Global
{7C1604C6-4223-47A7-B651-687BBF19704B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C1604C6-4223-47A7-B651-687BBF19704B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C1604C6-4223-47A7-B651-687BBF19704B}.Release|Any CPU.Build.0 = Release|Any CPU
{BD48E4B8-A4A1-4A80-97AE-8599BDD41892}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD48E4B8-A4A1-4A80-97AE-8599BDD41892}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD48E4B8-A4A1-4A80-97AE-8599BDD41892}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD48E4B8-A4A1-4A80-97AE-8599BDD41892}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

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

View File

@ -0,0 +1,19 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class ClientBindingModel : IClientModel
{
public int Id { get; set; }
public string ClientFIO { get; set; } = string.Empty;
public string ClientEmail { get; set; } = string.Empty;
public string ClientPhone { get; set; } = string.Empty;
public string ClientLogin { get; set; } = string.Empty;
public string ClientPassword { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,18 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class CosmeticBindingModel : ICosmeticModel
{
public int Id { get; set; }
public string CosmeticName { get; set; } = string.Empty;
public double CosmeticPrice { get; set; }
public int StoreKeeperId { get; set; }
public int LaborCostId { get; set; }
}
}

View File

@ -0,0 +1,16 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class LaborCostBindingModel : ILaborCostModel
{
public int Id { get ; set; }
public int TimeSpent { get; set; }
public int StaffId { get; set; }
}
}

View File

@ -0,0 +1,22 @@
using BeautyStudioDataModels.Enums;
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class OrderBindingModel : IOrderModel
{
public int Id { get; set; }
public double Sum { get; set; }
public DateTime DateCreate { get; set; } = DateTime.Now;
public DateTime DateComplete { get; set; }
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
public int ClientId { get; set; }
public int ServiceId { get; set; }
public int? StaffId { get; set; }
}
}

View File

@ -0,0 +1,18 @@
using BeautyStudioContracts.ViewModels;
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class ProcedureBindingModel : IProcedureModel
{
public int Id { get; set; }
public string ProcedureName { get; set; } = string.Empty;
public double ProcedureCost { get; set; }
public string ProcedureDescription { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,18 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class ServiceBindingModel : IServiceModel
{
public int Id { get; set; }
public string ServiceName { get; set; } = string.Empty;
public double Sum { get; set; }
public int StaffId { get; set; }
public Dictionary<int, (IProcedureModel, int)> Procedures { get; set; } = new();
}
}

View File

@ -0,0 +1,19 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class StaffBindingModel : IStaffModel
{
public int Id { get; set; }
public string StaffFIO { get; set; } = string.Empty;
public string StaffLogin { get; set; } = string.Empty;
public string StaffPassword { get; set; } = string.Empty;
public string StaffEmail { get; set; } = string.Empty;
public string StaffPhone { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,19 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.BindingModels
{
public class StoreKeeperBindingModel : IStoreKeeperModel
{
public int Id { get; set; }
public string StoreKeeperFIO { get; set; } = string.Empty;
public string StoreKeeperLogin { get; set; } = string.Empty;
public string StoreKeeperPassword { get; set; } = string.Empty;
public string StoreKeeperEmail { get; set; } = string.Empty;
public string StoreKeeperPhone { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,16 @@
using System.Collections.Generic;
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.ViewModels;
using BeautyStudioContracts.SearchModels;
namespace BeautyStudioContracts.BusinessLogicContracts
{
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,16 @@
using System.Collections.Generic;
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.ViewModels;
using BeautyStudioContracts.SearchModels;
namespace BeautyStudioContracts.BusinessLogicContracts
{
public interface ICosmeticLogic
{
List<CosmeticViewModel>? ReadList(CosmeticSearchModel? model);
CosmeticViewModel? ReadElement(CosmeticSearchModel model);
bool Create(CosmeticBindingModel model);
bool Update(CosmeticBindingModel model);
bool Delete(CosmeticBindingModel model);
}
}

View File

@ -0,0 +1,16 @@
using System.Collections.Generic;
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.ViewModels;
using BeautyStudioContracts.SearchModels;
namespace BeautyStudioContracts.BusinessLogicContracts
{
public interface ILaborCostLogic
{
List<LaborCostViewModel>? ReadList(LaborCostSearchModel? model);
LaborCostViewModel? ReadElement(LaborCostSearchModel model);
bool Create(LaborCostBindingModel model);
bool Update(LaborCostBindingModel model);
bool Delete(LaborCostBindingModel model);
}
}

View File

@ -0,0 +1,17 @@
using System.Collections.Generic;
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.ViewModels;
using BeautyStudioContracts.SearchModels;
namespace BeautyStudioContracts.BusinessLogicContracts
{
public interface IOrderLogic
{
List<OrderViewModel>? ReadList(OrderSearchModel? model);
OrderViewModel? ReadElement(OrderSearchModel model);
bool Create(OrderBindingModel model);
bool Delete(OrderBindingModel model);
bool Update(OrderBindingModel model);
int GetNumberOfPages(int userId, int pageSize = 10);
}
}

View File

@ -0,0 +1,16 @@
using System.Collections.Generic;
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.ViewModels;
using BeautyStudioContracts.SearchModels;
namespace BeautyStudioContracts.BusinessLogicContracts
{
public interface IProcedureLogic
{
List<ProcedureViewModel>? ReadList(ProcedureSearchModel? model);
ProcedureViewModel? ReadElement(ProcedureSearchModel model);
bool Create(ProcedureBindingModel model);
bool Update(ProcedureBindingModel model);
bool Delete(ProcedureBindingModel model);
}
}

View File

@ -0,0 +1,16 @@
using System.Collections.Generic;
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.ViewModels;
using BeautyStudioContracts.SearchModels;
namespace BeautyStudioContracts.BusinessLogicContracts
{
public interface IServiceLogic
{
List<ServiceViewModel>? ReadList(ServiceSearchModel? model);
ServiceViewModel? ReadElement(ServiceSearchModel model);
bool Create(ServiceBindingModel model);
bool Update(ServiceBindingModel model);
bool Delete(ServiceBindingModel model);
}
}

View File

@ -0,0 +1,16 @@
using System.Collections.Generic;
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.ViewModels;
using BeautyStudioContracts.SearchModels;
namespace BeautyStudioContracts.BusinessLogicContracts
{
public interface IStaffLogic
{
List<StaffViewModel>? ReadList(StaffSearchModel? model);
StaffViewModel? ReadElement(StaffSearchModel model);
bool Create(StaffBindingModel model);
bool Update(StaffBindingModel model);
bool Delete(StaffBindingModel model);
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.SearchModels
{
public class ClientSearchModel
{
public int? Id { get; set; }
public string? ClientFIO { get; set; }
public string? ClientEmail { get; set; }
public string? ClientPhone { get; set; }
public string? ClientLogin { get; set; }
public string? ClientPassword { 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 BeautyStudioContracts.SearchModels
{
public class CosmeticSearchModel
{
public int? Id { get; set; }
public string? CosmeticName { get; set; }
public int? StoreKeeperId { get; set; }
public int? LaborCostId { get; set; }
}
}

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.SearchModels
{
public class LaborCostSearchModel
{
public int? Id { get; set; }
public int? TimeSpent { get; set; }
public int? StaffId { get; set; }
}
}

View File

@ -0,0 +1,22 @@
using BeautyStudioDataModels.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.SearchModels
{
public class OrderSearchModel
{
public int? Id { get; set; }
public double? Sum { get; set; }
public DateTime? DateCreate { get; set; }
public DateTime? DateComplete { get; set; }
public OrderStatus? Status { get; set; }
public int? ClientId { get; set; }
public int? ServiceId { get; set; }
public int? StaffId { 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 BeautyStudioContracts.SearchModels
{
public class ProcedureSearchModel
{
public int? Id { get; set; }
public string? ProcedureName { get; set; }
public double? ProcedureCost { get; set; }
public string? ProcedureDescription { 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 BeautyStudioContracts.SearchModels
{
public class ServiceSearchModel
{
public int? Id { get; set; }
public string? ServiceName { get; set; }
public double? Sum { get; set; }
public int? StaffId { get; set; }
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.SearchModels
{
public class StaffSearchModel
{
public int? Id { get; set; }
public string? StaffFIO { get; set; }
public string? StaffLogin { get; set; }
public string? StaffPassword { get; set; }
public string? StaffEmail { get; set; }
public string? StaffPhone { get; }
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.SearchModels
{
public class StoreKeeperSearchModel
{
public int? Id { get; set; }
public string? StoreKeeperFIO { get; set;}
public string? StoreKeeperLogin { get; set;}
public string? StoreKeeperPassword { get; set;}
public string? StoreKeeperEmail { get; set;}
public string? StoreKeeperPhone { get; set;}
}
}

View File

@ -0,0 +1,21 @@
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
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,21 @@
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
public interface ICosmeticStorage
{
List<CosmeticViewModel> GetFullList();
List<CosmeticViewModel> GetFilteredList(CosmeticSearchModel model);
CosmeticViewModel? GetElement(CosmeticSearchModel model);
CosmeticViewModel? Insert(CosmeticBindingModel model);
CosmeticViewModel? Update(CosmeticBindingModel model);
CosmeticViewModel? Delete(CosmeticBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
public interface ILaborCostStorage
{
List<LaborCostViewModel> GetFullList();
List<LaborCostViewModel> GetFilteredList(LaborCostSearchModel model);
LaborCostViewModel? GetElement(LaborCostSearchModel model);
LaborCostViewModel? Insert(LaborCostBindingModel model);
LaborCostViewModel? Update(LaborCostBindingModel model);
LaborCostViewModel? Delete(LaborCostBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
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 BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
public interface IProcedureStorage
{
List<ProcedureViewModel> GetFullList();
List<ProcedureViewModel> GetFilteredList(ProcedureSearchModel model);
ProcedureViewModel? GetElement(ProcedureSearchModel model);
ProcedureViewModel? Insert(ProcedureBindingModel model);
ProcedureViewModel? Update(ProcedureBindingModel model);
ProcedureViewModel? Delete(ProcedureBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
public interface IServiceStorage
{
List<ServiceViewModel> GetFullList();
List<ServiceViewModel> GetFilteredList(ServiceSearchModel model);
ServiceViewModel? GetElement(ServiceSearchModel model);
ServiceViewModel? Insert(ServiceBindingModel model);
ServiceViewModel? Update(ServiceBindingModel model);
ServiceViewModel? Delete(ServiceBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
public interface IStaffStorage
{
List<StaffViewModel> GetFullList();
List<StaffViewModel> GetFilteredList(StaffSearchModel model);
StaffViewModel? GetElement(StaffSearchModel model);
StaffViewModel? Insert(StaffBindingModel model);
StaffViewModel? Update(StaffBindingModel model);
StaffViewModel? Delete(StaffBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using BeautyStudioContracts.BindingModels;
using BeautyStudioContracts.SearchModels;
using BeautyStudioContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.StoragesContracts
{
public interface IStoreKeeperStorage
{
List<StoreKeeperViewModel> GetFullList();
List<StoreKeeperViewModel> GetFilteredList(StoreKeeperSearchModel model);
StoreKeeperViewModel? GetElement(StoreKeeperSearchModel model);
StoreKeeperViewModel? Insert(StoreKeeperBindingModel model);
StoreKeeperViewModel? Update(StoreKeeperBindingModel model);
StoreKeeperViewModel? Delete(StoreKeeperBindingModel model);
}
}

View File

@ -0,0 +1,30 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class ClientViewModel : IClientModel
{
public int Id { get; set; }
[DisplayName("ФИО клиента")]
public string ClientFIO { get; set; } = string.Empty;
[DisplayName("Электронная почта клиента")]
public string ClientEmail { get; set; } = string.Empty;
[DisplayName("Номер телефона клиента")]
public string ClientPhone { get; set; } = string.Empty;
[DisplayName("Логин клиента")]
public string ClientLogin { get; set; } = string.Empty;
[DisplayName("Пароль клиента")]
public string ClientPassword { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,25 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class CosmeticViewModel : ICosmeticModel
{
public int Id { get; set; }
[DisplayName("Наименование косметики")]
public string CosmeticName { get; set; } = string.Empty;
[DisplayName("Цена косметики")]
public double CosmeticPrice { get; set; }
public int StoreKeeperId { get; set; }
public int LaborCostId { get; set; }
}
}

View File

@ -0,0 +1,19 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class LaborCostViewModel : ILaborCostModel
{
public int Id { get; set; }
[DisplayName("Потрачено времени (часов)")]
public int TimeSpent { get; set; }
public int StaffId { get; set; }
}
}

View File

@ -0,0 +1,40 @@
using BeautyStudioDataModels.Enums;
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class OrderViewModel : IOrderModel
{
public int Id { get; set; }
[DisplayName("ФИО клиента")]
public string ClientFIO { get; set; } = string.Empty;
public int ClientId { get; set; }
[DisplayName("ФИО специалиста")]
public string? StaffFIO { get; set; } = null;
public int? StaffId { get; set; }
public int ServiceId { get; set; }
[DisplayName("Именование услуги")]
public string ServiceName { get; set; } = string.Empty;
[DisplayName("Стоимость")]
public double Sum { get; set; }
[DisplayName("Статус")]
public OrderStatus Status { get; set; }
[DisplayName("Дата создания")]
public DateTime DateCreate { get; set; }
[DisplayName("Дата выполнения")]
public DateTime DateComplete { 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 BeautyStudioContracts.ViewModels
{
public class ProcedureCount
{
public ProcedureViewModel Procedure { get; set; }
public int Count { get; set; } = new();
}
}

View File

@ -0,0 +1,21 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class ProcedureViewModel : IProcedureModel
{
public int Id { get; set; }
[DisplayName("Наименование процедуры")]
public string ProcedureName { get; set; } = string.Empty;
[DisplayName("Стоимость процедуры")]
public double ProcedureCost { get; set; }
[DisplayName("Описание процедуры")]
public string ProcedureDescription { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class ServiceProceduresViewModel
{
public ServiceViewModel Service { get; set; } = new();
public Dictionary<int, ProcedureCount> Procedures { get; set; } = new();
}
}

View File

@ -0,0 +1,25 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class ServiceViewModel : IServiceModel
{
public int Id { get; set; }
[DisplayName("Наименование услуги")]
public string ServiceName { get; set; } = string.Empty;
[DisplayName("Стоимость услуги")]
public double Sum { get; set; }
public int StaffId { get; set; }
public Dictionary<int, (IProcedureModel, int)> Procedures { get; set; } = new();
}
}

View File

@ -0,0 +1,30 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class StaffViewModel : IStaffModel
{
public int Id { get; set; }
[DisplayName("ФИО сотрудника")]
public string StaffFIO { get; set; } = string.Empty;
[DisplayName("Логин сотрудника")]
public string StaffLogin { get; set; } = string.Empty;
[DisplayName("Пароль сотрудника")]
public string StaffPassword { get; set; } = string.Empty;
[DisplayName("Почта сотрудника")]
public string StaffEmail { get; set; } = string.Empty;
[DisplayName("Телефон сотрудника")]
public string StaffPhone { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,30 @@
using BeautyStudioDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeautyStudioContracts.ViewModels
{
public class StoreKeeperViewModel : IStoreKeeperModel
{
public int Id { get; set; }
[DisplayName("ФИО кладовщика")]
public string StoreKeeperFIO { get; set;} = string.Empty;
[DisplayName("Логин кладовщика")]
public string StoreKeeperLogin { get; set; } = string.Empty;
[DisplayName("Пароль кладовщика")]
public string StoreKeeperPassword { get; set; } = string.Empty;
[DisplayName("Почта кладовщика")]
public string StoreKeeperEmail { get; set; } = string.Empty;
[DisplayName("Телефон кладовщика")]
public string StoreKeeperPhone { get; set; } = string.Empty;
}
}