From 0ce6ffd4eb61a59b2bcf6bc4361e48d9d2c6f88e Mon Sep 17 00:00:00 2001 From: Denis Date: Fri, 7 Apr 2023 10:55:40 +0400 Subject: [PATCH] fix commit 1.0 --- Canteen/Canteen.sln | 6 ++ .../BindingModels/CookBindingModel.cs | 6 +- .../BindingModels/DishBindingModel.cs | 12 +-- .../BindingModels/LunchBindingModel.cs | 19 ++-- .../BindingModels/ManagerBindingModel.cs | 2 +- .../BindingModels/OrderBindingModel.cs | 14 +-- .../BindingModels/ProductBindingModel.cs | 4 +- .../BindingModels/RoleBindingModel.cs | 4 +- .../BindingModels/TablewareBindingModel.cs | 7 +- .../BindingModels/VisitorBindingModel.cs | 3 +- .../StoragesContracts/ICookStorage.cs | 13 ++- .../StoragesContracts/IDishStorage.cs | 13 ++- .../StoragesContracts/ILunchStorage.cs | 13 ++- .../StoragesContracts/IManagerStorage.cs | 13 ++- .../StoragesContracts/IOrderStorage.cs | 13 ++- .../StoragesContracts/IProductStorage.cs | 13 ++- .../StoragesContracts/IRoleStorage.cs | 13 ++- .../StoragesContracts/ITablewarerStorage.cs | 13 ++- .../StoragesContracts/IVisitorStorage.cs | 13 ++- .../ViewModels/CookViewModel.cs | 2 +- .../ViewModels/ProductViewModel.cs | 2 +- .../CanteenDataModels/Models/ICookModel.cs | 9 +- .../CanteenDataModels/Models/IDishModel.cs | 5 +- .../CanteenDataModels/Models/ILunchModel.cs | 7 +- .../CanteenDataModels/Models/IManagerModel.cs | 5 ++ .../CanteenDataModels/Models/IOrderModel.cs | 9 +- .../CanteenDataModels/Models/IProductModel.cs | 2 +- .../Models/ITablewareModel.cs | 2 +- .../CanteenDatabase.cs | 30 +++++++ .../CanteenDatabaseImplement.csproj | 23 +++++ .../CanteenDatabaseImplement/Models/Cook.cs | 33 +++++++ .../Models/CookOrder.cs | 24 +++++ .../CanteenDatabaseImplement/Models/Dish.cs | 12 +++ .../CanteenDatabaseImplement/Models/Lunch.cs | 22 +++++ .../Models/LunchOrder.cs | 12 +++ .../Models/Manager.cs | 12 +++ .../CanteenDatabaseImplement/Models/Order.cs | 30 +++++++ .../Models/Product.cs | 90 +++++++++++++++++++ .../Models/ProductCook.cs | 25 ++++++ .../Models/ProductLunch.cs | 12 +++ .../CanteenDatabaseImplement/Models/Role.cs | 12 +++ .../Models/Tableware.cs | 12 +++ .../Models/Visitor.cs | 12 +++ 43 files changed, 522 insertions(+), 76 deletions(-) create mode 100644 Canteen/CanteenDatabaseImplement/CanteenDatabase.cs create mode 100644 Canteen/CanteenDatabaseImplement/CanteenDatabaseImplement.csproj create mode 100644 Canteen/CanteenDatabaseImplement/Models/Cook.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/CookOrder.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Dish.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Lunch.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/LunchOrder.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Manager.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Order.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Product.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/ProductCook.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/ProductLunch.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Role.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Tableware.cs create mode 100644 Canteen/CanteenDatabaseImplement/Models/Visitor.cs diff --git a/Canteen/Canteen.sln b/Canteen/Canteen.sln index 77f6345..054dd1c 100644 --- a/Canteen/Canteen.sln +++ b/Canteen/Canteen.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CanteenDataModels", "Cantee EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CanteenContracts", "CanteenContracts\CanteenContracts.csproj", "{A4B80B56-049E-4BBE-938A-7AFB99F13B6E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CanteenDatabaseImplement", "CanteenDatabaseImplement\CanteenDatabaseImplement.csproj", "{3B63A55E-B35A-4720-B784-014E52A33112}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {A4B80B56-049E-4BBE-938A-7AFB99F13B6E}.Debug|Any CPU.Build.0 = Debug|Any CPU {A4B80B56-049E-4BBE-938A-7AFB99F13B6E}.Release|Any CPU.ActiveCfg = Release|Any CPU {A4B80B56-049E-4BBE-938A-7AFB99F13B6E}.Release|Any CPU.Build.0 = Release|Any CPU + {3B63A55E-B35A-4720-B784-014E52A33112}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B63A55E-B35A-4720-B784-014E52A33112}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B63A55E-B35A-4720-B784-014E52A33112}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B63A55E-B35A-4720-B784-014E52A33112}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Canteen/CanteenContracts/BindingModels/CookBindingModel.cs b/Canteen/CanteenContracts/BindingModels/CookBindingModel.cs index ee148db..81f3dcd 100644 --- a/Canteen/CanteenContracts/BindingModels/CookBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/CookBindingModel.cs @@ -9,18 +9,16 @@ namespace CanteenContracts.BindingModels { public class CookBindingModel : ICookModel { + public int Id { get; set; } + public int ManagerId { get; set; } public string Name { get; set; } = string.Empty; public string Surname { get; set; } = string.Empty; public string Patronymic { get; set; } = string.Empty; - public DateTime DateOfBirth { get; set; } - public string Position { get; set; } - public int ClientId { get; set; } - public int Id { get; set; } } } diff --git a/Canteen/CanteenContracts/BindingModels/DishBindingModel.cs b/Canteen/CanteenContracts/BindingModels/DishBindingModel.cs index f3d8be7..e85be09 100644 --- a/Canteen/CanteenContracts/BindingModels/DishBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/DishBindingModel.cs @@ -9,14 +9,10 @@ namespace CanteenContracts.BindingModels { public class DishBindingModel : IDishModel { - public string DishName { get; set; } = string.Empty; - - public double Cost { get; set; } - - public int ClientId { get; set; } - - public int ProductId { get; set; } - public int Id { get; set; } + public string DishName { get; set; } = string.Empty; + public double Cost { get; set; } + public int ManagerId { get; set; } + public Dictionary DishProducts { get; set; } = new(); } } diff --git a/Canteen/CanteenContracts/BindingModels/LunchBindingModel.cs b/Canteen/CanteenContracts/BindingModels/LunchBindingModel.cs index 1d16246..6adbecd 100644 --- a/Canteen/CanteenContracts/BindingModels/LunchBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/LunchBindingModel.cs @@ -1,4 +1,5 @@ -using CanteenDataModels.Models; +using CanteenDataModels.Enums; +using CanteenDataModels.Models; using System; using System.Collections.Generic; using System.Linq; @@ -9,14 +10,14 @@ namespace CanteenContracts.BindingModels { public class LunchBindingModel : ILunchModel { - public string LunchName { get; set; } = string.Empty; - - public double Cost { get; set; } - - public int VisitorId { get; set; } - - public Dictionary LunchProducts { get; set; } = new(); - public int Id { get; set; } + public int VisitorId { get; set; } + public string LunchName { get; set; } = string.Empty; + public double Cost { get; set; } + public DateTime DateCreate { get; set; } = DateTime.Now; + public Dictionary LunchProducts { get; set; } = new(); + public Dictionary LunchOrders { get; set; } = new(); + + } } diff --git a/Canteen/CanteenContracts/BindingModels/ManagerBindingModel.cs b/Canteen/CanteenContracts/BindingModels/ManagerBindingModel.cs index 0312a91..246f6ac 100644 --- a/Canteen/CanteenContracts/BindingModels/ManagerBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/ManagerBindingModel.cs @@ -9,6 +9,7 @@ namespace CanteenContracts.BindingModels { public class ManagerBindingModel : IManagerModel { + public int Id { get; set; } public string FIO { get; set; } = string.Empty; public string Login { get; set; } = string.Empty; @@ -19,6 +20,5 @@ namespace CanteenContracts.BindingModels public int RoleId { get; set; } - public int Id { get; set; } } } diff --git a/Canteen/CanteenContracts/BindingModels/OrderBindingModel.cs b/Canteen/CanteenContracts/BindingModels/OrderBindingModel.cs index 9c18892..495ddd1 100644 --- a/Canteen/CanteenContracts/BindingModels/OrderBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/OrderBindingModel.cs @@ -10,16 +10,10 @@ namespace CanteenContracts.BindingModels { public class OrderBindingModel : IOrderModel { - public int ClientId { get; set; } - - public double Sum { get; set; } - - public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; - - public DateTime DateCreate { get; set; } = DateTime.Now; - - public DateTime? DateImplement { get; set; } - public int Id { get; set; } + public int VisitorId { get; set; } + + public string Description { get; set; } = string.Empty; + } } diff --git a/Canteen/CanteenContracts/BindingModels/ProductBindingModel.cs b/Canteen/CanteenContracts/BindingModels/ProductBindingModel.cs index cca65aa..e29b15a 100644 --- a/Canteen/CanteenContracts/BindingModels/ProductBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/ProductBindingModel.cs @@ -9,14 +9,14 @@ namespace CanteenContracts.BindingModels { public class ProductBindingModel : IProductModel { + public int Id { get; set; } public string ProductName { get; set; } = string.Empty; public double Cost { get; set; } - public int ClientId { get; set; } + public int ManagerId { get; set; } public Dictionary ProductCooks{ get; set; } = new(); - public int Id { get; set; } } } diff --git a/Canteen/CanteenContracts/BindingModels/RoleBindingModel.cs b/Canteen/CanteenContracts/BindingModels/RoleBindingModel.cs index 076b74e..c79dc0e 100644 --- a/Canteen/CanteenContracts/BindingModels/RoleBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/RoleBindingModel.cs @@ -9,8 +9,8 @@ namespace CanteenContracts.BindingModels { public class RoleBindingModel : IRoleModel { - public string RoleName { get; set; } = string.Empty; - public int Id { get; set; } + public string RoleName { get; set; } = string.Empty; + } } diff --git a/Canteen/CanteenContracts/BindingModels/TablewareBindingModel.cs b/Canteen/CanteenContracts/BindingModels/TablewareBindingModel.cs index 51d398a..c81aef4 100644 --- a/Canteen/CanteenContracts/BindingModels/TablewareBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/TablewareBindingModel.cs @@ -9,12 +9,11 @@ namespace CanteenContracts.BindingModels { public class TablewareBindingModel : ITablewareModel { + public int Id { get; set; } public string TablewareName { get; set; } = string.Empty; - - public int ClientId { get; set; } - + public int Count { get; set; } + public int ManagerId { get; set; } public int OrderId { get; set; } - public int Id { get; set; } } } diff --git a/Canteen/CanteenContracts/BindingModels/VisitorBindingModel.cs b/Canteen/CanteenContracts/BindingModels/VisitorBindingModel.cs index b843a30..735b1cf 100644 --- a/Canteen/CanteenContracts/BindingModels/VisitorBindingModel.cs +++ b/Canteen/CanteenContracts/BindingModels/VisitorBindingModel.cs @@ -9,6 +9,7 @@ namespace CanteenContracts.BindingModels { public class VisitorBindingModel : IVisitorModel { + public int Id { get; set; } public string FIO { get; set; } = string.Empty; public string Login { get; set; } = string.Empty; @@ -18,7 +19,5 @@ namespace CanteenContracts.BindingModels public string PhoneNumber { get; set; } = string.Empty; public int RoleId { get; set; } - - public int Id { get; set; } } } diff --git a/Canteen/CanteenContracts/StoragesContracts/ICookStorage.cs b/Canteen/CanteenContracts/StoragesContracts/ICookStorage.cs index d9af3ca..966b6ba 100644 --- a/Canteen/CanteenContracts/StoragesContracts/ICookStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/ICookStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface ICookStorage + public interface ICookStorage { + List GetFullList(); + List GetFilteredList(CookSearchModel model); + CookViewModel? GetElement(CookSearchModel model); + CookViewModel? Insert(CookBindingModel model); + CookViewModel? Update(CookBindingModel model); + CookViewModel? Delete(CookBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/IDishStorage.cs b/Canteen/CanteenContracts/StoragesContracts/IDishStorage.cs index be1e87c..867886c 100644 --- a/Canteen/CanteenContracts/StoragesContracts/IDishStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/IDishStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface IDishStorage + public interface IDishStorage { + List GetFullList(); + List GetFilteredList(DishSearchModel model); + DishViewModel? GetElement(DishSearchModel model); + DishViewModel? Insert(DishBindingModel model); + DishViewModel? Update(DishBindingModel model); + DishViewModel? Delete(DishBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/ILunchStorage.cs b/Canteen/CanteenContracts/StoragesContracts/ILunchStorage.cs index 2c0a60d..d57b269 100644 --- a/Canteen/CanteenContracts/StoragesContracts/ILunchStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/ILunchStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface ILunchStorage + public interface ILunchStorage { + List GetFullList(); + List GetFilteredList(LunchSearchModel model); + LunchViewModel? GetElement(LunchSearchModel model); + LunchViewModel? Insert(LunchBindingModel model); + LunchViewModel? Update(LunchBindingModel model); + LunchViewModel? Delete(LunchBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/IManagerStorage.cs b/Canteen/CanteenContracts/StoragesContracts/IManagerStorage.cs index ffede3b..711732a 100644 --- a/Canteen/CanteenContracts/StoragesContracts/IManagerStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/IManagerStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface IManagerStorage + public interface IManagerStorage { + List GetFullList(); + List GetFilteredList(ManagerSearchModel model); + ManagerViewModel? GetElement(ManagerSearchModel model); + ManagerViewModel? Insert(ManagerBindingModel model); + ManagerViewModel? Update(ManagerBindingModel model); + ManagerViewModel? Delete(ManagerBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/IOrderStorage.cs b/Canteen/CanteenContracts/StoragesContracts/IOrderStorage.cs index 60254b0..fd097fc 100644 --- a/Canteen/CanteenContracts/StoragesContracts/IOrderStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/IOrderStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface IOrderStorage + public interface IOrderStorage { + List GetFullList(); + List GetFilteredList(OrderSearchModel model); + OrderViewModel? GetElement(OrderSearchModel model); + OrderViewModel? Insert(OrderBindingModel model); + OrderViewModel? Update(OrderBindingModel model); + OrderViewModel? Delete(OrderBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/IProductStorage.cs b/Canteen/CanteenContracts/StoragesContracts/IProductStorage.cs index 01c2133..141a27e 100644 --- a/Canteen/CanteenContracts/StoragesContracts/IProductStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/IProductStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface IProductStorage + public interface IProductStorage { + List GetFullList(); + List GetFilteredList(ProductSearchModel model); + ProductViewModel? GetElement(ProductSearchModel model); + ProductViewModel? Insert(ProductBindingModel model); + ProductViewModel? Update(ProductBindingModel model); + ProductViewModel? Delete(ProductBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/IRoleStorage.cs b/Canteen/CanteenContracts/StoragesContracts/IRoleStorage.cs index da7d238..6c0ccf6 100644 --- a/Canteen/CanteenContracts/StoragesContracts/IRoleStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/IRoleStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface IRoleStorage + public interface IRoleStorage { + List GetFullList(); + List GetFilteredList(RoleSearchModel model); + RoleViewModel? GetElement(RoleSearchModel model); + RoleViewModel? Insert(RoleBindingModel model); + RoleViewModel? Update(RoleBindingModel model); + RoleViewModel? Delete(RoleBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/ITablewarerStorage.cs b/Canteen/CanteenContracts/StoragesContracts/ITablewarerStorage.cs index 85988e5..82ac23f 100644 --- a/Canteen/CanteenContracts/StoragesContracts/ITablewarerStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/ITablewarerStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface ITablewarerStorage + public interface ITablewarerStorage { + List GetFullList(); + List GetFilteredList(TablewareSearchModel model); + TablewareViewModel? GetElement(TablewareSearchModel model); + TablewareViewModel? Insert(TablewareBindingModel model); + TablewareViewModel? Update(TablewareBindingModel model); + TablewareViewModel? Delete(TablewareBindingModel model); } } diff --git a/Canteen/CanteenContracts/StoragesContracts/IVisitorStorage.cs b/Canteen/CanteenContracts/StoragesContracts/IVisitorStorage.cs index 7ba1da3..8cfa768 100644 --- a/Canteen/CanteenContracts/StoragesContracts/IVisitorStorage.cs +++ b/Canteen/CanteenContracts/StoragesContracts/IVisitorStorage.cs @@ -1,4 +1,7 @@ -using System; +using CanteenContracts.BindingModels; +using CanteenContracts.SearchModel; +using CanteenContracts.View; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +9,13 @@ using System.Threading.Tasks; namespace CanteenContracts.StoragesContracts { - internal interface IVisitorStorage + public interface IVisitorStorage { + List GetFullList(); + List GetFilteredList(VisitorSearchModel model); + VisitorViewModel? GetElement(VisitorSearchModel model); + VisitorViewModel? Insert(VisitorBindingModel model); + VisitorViewModel? Update(VisitorBindingModel model); + VisitorViewModel? Delete(VisitorBindingModel model); } } diff --git a/Canteen/CanteenContracts/ViewModels/CookViewModel.cs b/Canteen/CanteenContracts/ViewModels/CookViewModel.cs index 3a4b534..a8ec6bb 100644 --- a/Canteen/CanteenContracts/ViewModels/CookViewModel.cs +++ b/Canteen/CanteenContracts/ViewModels/CookViewModel.cs @@ -21,7 +21,7 @@ namespace CanteenContracts.View [DisplayName("Должность")] public string Position { get; set; } = string.Empty; - public int ClientId { get; set; } + public int ManagerId { get; set; } public int Id { get; set; } } diff --git a/Canteen/CanteenContracts/ViewModels/ProductViewModel.cs b/Canteen/CanteenContracts/ViewModels/ProductViewModel.cs index 8300dd9..1197931 100644 --- a/Canteen/CanteenContracts/ViewModels/ProductViewModel.cs +++ b/Canteen/CanteenContracts/ViewModels/ProductViewModel.cs @@ -15,7 +15,7 @@ namespace CanteenContracts.View [DisplayName("Цена")] public double Cost { get; set; } - public int ClientId { get; set; } + public int ManagerId { get; set; } public Dictionary ProductCooks { get; set; } = new(); diff --git a/Canteen/CanteenDataModels/Models/ICookModel.cs b/Canteen/CanteenDataModels/Models/ICookModel.cs index 1d51da2..8bcf7a4 100644 --- a/Canteen/CanteenDataModels/Models/ICookModel.cs +++ b/Canteen/CanteenDataModels/Models/ICookModel.cs @@ -8,11 +8,14 @@ namespace CanteenDataModels.Models { public interface ICookModel : IId { + int Id { get; } + int ManagerId { get; } string Name { get; } + string Surname { get; } - string? Patronymic { get; } - DateTime DateOfBirth { get; } + + string Patronymic { get; } + string Position { get; } - int ClientId { get; } } } diff --git a/Canteen/CanteenDataModels/Models/IDishModel.cs b/Canteen/CanteenDataModels/Models/IDishModel.cs index 181a7fc..8ed67a3 100644 --- a/Canteen/CanteenDataModels/Models/IDishModel.cs +++ b/Canteen/CanteenDataModels/Models/IDishModel.cs @@ -8,9 +8,10 @@ namespace CanteenDataModels.Models { public interface IDishModel : IId { + int Id { get; } string DishName { get; } double Cost { get; } - int VisitorId { get; } - int ProductId { get; } + int ManagerId { get; } + Dictionary DishProducts { get; } } } diff --git a/Canteen/CanteenDataModels/Models/ILunchModel.cs b/Canteen/CanteenDataModels/Models/ILunchModel.cs index b3c23f4..a96d68f 100644 --- a/Canteen/CanteenDataModels/Models/ILunchModel.cs +++ b/Canteen/CanteenDataModels/Models/ILunchModel.cs @@ -8,9 +8,12 @@ namespace CanteenDataModels.Models { public interface ILunchModel : IId { + int Id { get; } + int VisitorId { get; } string LunchName { get; } double Cost { get; } - int VisitorId { get; } - Dictionary LunchProducts { get; } + DateTime DateCreate { get; } + Dictionary LunchProducts { get; } + Dictionary LunchOrders { get; } } } diff --git a/Canteen/CanteenDataModels/Models/IManagerModel.cs b/Canteen/CanteenDataModels/Models/IManagerModel.cs index 7fbfcea..5157ba8 100644 --- a/Canteen/CanteenDataModels/Models/IManagerModel.cs +++ b/Canteen/CanteenDataModels/Models/IManagerModel.cs @@ -8,10 +8,15 @@ namespace CanteenDataModels.Models { public interface IManagerModel : IId { + int Id { get; } string FIO { get; } + string Login { get; } + string Password { get; } + string PhoneNumber { get; } + int RoleId { get; } } } diff --git a/Canteen/CanteenDataModels/Models/IOrderModel.cs b/Canteen/CanteenDataModels/Models/IOrderModel.cs index 5ac5131..47c7f96 100644 --- a/Canteen/CanteenDataModels/Models/IOrderModel.cs +++ b/Canteen/CanteenDataModels/Models/IOrderModel.cs @@ -9,10 +9,9 @@ namespace CanteenDataModels.Models { public interface IOrderModel : IId { - int ClientId { get; } - double Sum { get; } - OrderStatus Status { get; } - DateTime DateCreate { get; } - DateTime? DateImplement { get; } + int Id { get; } + int VisitorId { get; } + + string Description { get; } } } diff --git a/Canteen/CanteenDataModels/Models/IProductModel.cs b/Canteen/CanteenDataModels/Models/IProductModel.cs index 21f896b..c1aa100 100644 --- a/Canteen/CanteenDataModels/Models/IProductModel.cs +++ b/Canteen/CanteenDataModels/Models/IProductModel.cs @@ -10,7 +10,7 @@ namespace CanteenDataModels.Models { string ProductName { get; } double Cost { get; } - int ClientId { get; } + int ManagerId { get; } Dictionary ProductCooks { get; } } } diff --git a/Canteen/CanteenDataModels/Models/ITablewareModel.cs b/Canteen/CanteenDataModels/Models/ITablewareModel.cs index e413814..345f2a9 100644 --- a/Canteen/CanteenDataModels/Models/ITablewareModel.cs +++ b/Canteen/CanteenDataModels/Models/ITablewareModel.cs @@ -9,7 +9,7 @@ namespace CanteenDataModels.Models public interface ITablewareModel : IId { string TablewareName { get; } - int ClientId { get; } + int ManagerId { get; } int OrderId { get; } } } diff --git a/Canteen/CanteenDatabaseImplement/CanteenDatabase.cs b/Canteen/CanteenDatabaseImplement/CanteenDatabase.cs new file mode 100644 index 0000000..42f8331 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/CanteenDatabase.cs @@ -0,0 +1,30 @@ +using CanteenDatabaseImplement.Models; +using Microsoft.EntityFrameworkCore; + +namespace CanteenDatabaseImplement +{ + public class CanteenDatabase : DbContext + { + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + if (optionsBuilder.IsConfigured == false) + { + optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-AOSK1F5\SQLEXPRESS;Initial Catalog=CanteenDataBase;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True"); + } + base.OnConfiguring(optionsBuilder); + } + public virtual DbSet Cooks { set; get; } + public virtual DbSet OrderCooks { set; get; } + public virtual DbSet Dishes { set; get; } + public virtual DbSet Lunches { set; get; } + public virtual DbSet OrderLunches { set; get; } + public virtual DbSet Managers { set; get; } + public virtual DbSet Orders { set; get; } + public virtual DbSet Products { set; get; } + public virtual DbSet ProductCooks { set; get; } + public virtual DbSet LunchProducts { set; get; } + public virtual DbSet Roles { set; get; } + public virtual DbSet Tablewares { set; get; } + public virtual DbSet Visitors { set; get; } + } +} diff --git a/Canteen/CanteenDatabaseImplement/CanteenDatabaseImplement.csproj b/Canteen/CanteenDatabaseImplement/CanteenDatabaseImplement.csproj new file mode 100644 index 0000000..88f7b5c --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/CanteenDatabaseImplement.csproj @@ -0,0 +1,23 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + + + + + + + diff --git a/Canteen/CanteenDatabaseImplement/Models/Cook.cs b/Canteen/CanteenDatabaseImplement/Models/Cook.cs new file mode 100644 index 0000000..b8483a2 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Cook.cs @@ -0,0 +1,33 @@ +using CanteenDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Cook : ICookModel + { + [Required] + public string Name { get; private set; } = string.Empty; + [Required] + public string Surname { get; private set; } = string.Empty; + + public string? Patronymic { get; private set; } = string.Empty; + [Required] + public DateTime DateOfBirth { get; private set; } + [Required] + public string Position { get; private set; } = string.Empty; + [Required] + public int ManagerId { get; private set; } + + public int Id { get; private set; } + [ForeignKey("CookId")] + public virtual List Products{ get; set; } = new(); + [ForeignKey("CookId")] + public virtual List Orders { get; set; } = new(); + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/CookOrder.cs b/Canteen/CanteenDatabaseImplement/Models/CookOrder.cs new file mode 100644 index 0000000..b2a0b07 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/CookOrder.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class CookOrder + { + public int Id { get; set; } + + [Required] + public int CookId { get; set; } + + [Required] + public int OrderId { get; set; } + + public virtual Order Order { get; set; } = new(); + + public virtual Cook Cook { get; set; } = new(); + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Dish.cs b/Canteen/CanteenDatabaseImplement/Models/Dish.cs new file mode 100644 index 0000000..483356d --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Dish.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Dish + { + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Lunch.cs b/Canteen/CanteenDatabaseImplement/Models/Lunch.cs new file mode 100644 index 0000000..c4ca0fc --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Lunch.cs @@ -0,0 +1,22 @@ +using CanteenDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Lunch : ILunchModel + { + public string LunchName => throw new NotImplementedException(); + + public double Cost => throw new NotImplementedException(); + + public int VisitorId => throw new NotImplementedException(); + + public Dictionary LunchProducts => throw new NotImplementedException(); + + public int Id => throw new NotImplementedException(); + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/LunchOrder.cs b/Canteen/CanteenDatabaseImplement/Models/LunchOrder.cs new file mode 100644 index 0000000..fe583c0 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/LunchOrder.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class LunchOrder + { + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Manager.cs b/Canteen/CanteenDatabaseImplement/Models/Manager.cs new file mode 100644 index 0000000..4030e3c --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Manager.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Manager + { + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Order.cs b/Canteen/CanteenDatabaseImplement/Models/Order.cs new file mode 100644 index 0000000..4171092 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Order.cs @@ -0,0 +1,30 @@ +using CanteenDataModels.Enums; +using CanteenDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Order : IOrderModel + { + public int ClientId { get; private set; } + + public double Sum { get; private set; } + + public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен; + + public DateTime DateCreate { get; private set; } = DateTime.Now; + + public DateTime? DateImplement { get; private set; } + + public int Id { get; private set; } + [ForeignKey("OrderId")] + public virtual List LunchOrders { get; set; } = new(); + [ForeignKey("OrderId")] + public virtual List CookOrders { get; set; } = new(); + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Product.cs b/Canteen/CanteenDatabaseImplement/Models/Product.cs new file mode 100644 index 0000000..61ea8f4 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Product.cs @@ -0,0 +1,90 @@ +using CanteenContracts.BindingModels; +using CanteenContracts.View; +using CanteenDataModels.Models; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CanteenDatabaseImplement.Models +{ + public class Product : IProductModel + { + [Required] + public string ProductName { get; private set; } = string.Empty; + [Required] + public double Cost { get; private set; } + [Required] + public int ManagerId { get; private set; } + + private Dictionary? _productCooks = null; + + public int Id { get; private set; } + [NotMapped] + public Dictionary ProductCooks + { + get + { + if (_productCooks == null) + { + _productCooks = Cooks.ToDictionary(record => record.CookId, record => record.Cook as ICookModel); + } + return _productCooks; + } + } + [ForeignKey("ProductId")] + public virtual List Cooks { get; set; } = new(); + + [ForeignKey("ProductId")] + public virtual List Lunches { get; set; } = new(); + public static Product? Create(CanteenDatabase context, ProductBindingModel model) + { + return new Product() + { + Id = model.Id, + ProductName = model.ProductName, + Cost = model.Cost, + Cooks = model.ProductCooks.Select(x => new ProductCook + { + Cook = context.Cooks.First(y => y.Id == x.Key) + }).ToList() + }; + } + + public void Update(ProductBindingModel model) + { + ProductName = model.ProductName; + Cost = model.Cost; + } + + public ProductViewModel GetViewModel => new() + { + Id = Id, + ProductName = ProductName, + Cost = Cost, + ProductCooks = ProductCooks, + ManagerId = ManagerId + }; + + public void UpdateCooks(CanteenDatabase context, ProductBindingModel model) + { + var productCooks = context.ProductCooks.Where(record => record.ProductId == model.Id).ToList(); + if (productCooks != null && productCooks.Count > 0) + { + context.ProductCooks.RemoveRange(productCooks.Where(record => !model.ProductCooks.ContainsKey(record.CookId))); + context.SaveChanges(); + } + + var product = context.Products.First(x => x.Id == Id); + foreach (var pc in model.ProductCooks) + { + context.ProductCooks.Add(new ProductCook + { + Product = product, + Cook = context.Cooks.First(x => x.Id == pc.Key), + }); + context.SaveChanges(); + } + + _productCooks = null; + } + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/ProductCook.cs b/Canteen/CanteenDatabaseImplement/Models/ProductCook.cs new file mode 100644 index 0000000..8b736b7 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/ProductCook.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class ProductCook + { + public int Id { get; set; } + + [Required] + public int ProductId { get; set; } + + [Required] + public int CookId { get; set; } + + public virtual Product Product { get; set; } = new(); + + public virtual Cook Cook { get; set; } = new(); + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/ProductLunch.cs b/Canteen/CanteenDatabaseImplement/Models/ProductLunch.cs new file mode 100644 index 0000000..bef033b --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/ProductLunch.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class ProductLunch + { + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Role.cs b/Canteen/CanteenDatabaseImplement/Models/Role.cs new file mode 100644 index 0000000..d34299a --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Role.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Role + { + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Tableware.cs b/Canteen/CanteenDatabaseImplement/Models/Tableware.cs new file mode 100644 index 0000000..e5f79da --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Tableware.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Tableware + { + } +} diff --git a/Canteen/CanteenDatabaseImplement/Models/Visitor.cs b/Canteen/CanteenDatabaseImplement/Models/Visitor.cs new file mode 100644 index 0000000..21299d9 --- /dev/null +++ b/Canteen/CanteenDatabaseImplement/Models/Visitor.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CanteenDatabaseImplement.Models +{ + public class Visitor + { + } +}