diff --git a/git/JurasicZoo/ZooContracts/BindingModels/ClientBindingModel.cs b/git/JurasicZoo/ZooContracts/BindingModels/ClientBindingModel.cs index d474c1e..3ae435f 100644 --- a/git/JurasicZoo/ZooContracts/BindingModels/ClientBindingModel.cs +++ b/git/JurasicZoo/ZooContracts/BindingModels/ClientBindingModel.cs @@ -11,8 +11,7 @@ namespace ZooContracts.BindingModels { public int Id { get; set; } public string ClientFIO { get; set; } - public string Mail { get; set; } - public string RegistrationDate { get; set; } + public string EMail { get; set; } public string Password { get; set; } } } diff --git a/git/JurasicZoo/ZooContracts/BindingModels/RouteBindingModel.cs b/git/JurasicZoo/ZooContracts/BindingModels/RouteBindingModel.cs new file mode 100644 index 0000000..017f53b --- /dev/null +++ b/git/JurasicZoo/ZooContracts/BindingModels/RouteBindingModel.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooDataModels.Models; +using ZooDataModels.Enums; + +namespace ZooContracts.BindingModels +{ + public class RouteBindingModel + { + public int Id { get; set; } + public int ClientId { get; set; } + public string RouteName { get; set; } = string.Empty; + public double RoutePrice { get; set; } + public RouteStatus Status { get; set; } = RouteStatus.Неизвестен; + public DateTime DateStart { get; set; } + public DateTime DateFinish { get; set; } + public Dictionary Preserves + { + get; + set; + } = new(); + } +} diff --git a/git/JurasicZoo/ZooContracts/BusinessLogicsContracts/IClientLogic.cs b/git/JurasicZoo/ZooContracts/BusinessLogicsContracts/IClientLogic.cs new file mode 100644 index 0000000..d31d1c1 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/BusinessLogicsContracts/IClientLogic.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooContracts.BindingModels; +using ZooContracts.SearchModels; +using ZooContracts.ViewModels; + +namespace ZooContracts.BusinessLogicsContracts +{ + public interface IClientLogic + { + List? ReadList(ClientSearchModel? model); + ClientViewModel? ReadElement(ClientSearchModel model); + bool Create(ClientBindingModel model); + bool Update(ClientBindingModel model); + bool Delete(ClientBindingModel model); + } +} diff --git a/git/JurasicZoo/ZooContracts/BusinessLogicsContracts/IRouteLogic.cs b/git/JurasicZoo/ZooContracts/BusinessLogicsContracts/IRouteLogic.cs new file mode 100644 index 0000000..66002b0 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/BusinessLogicsContracts/IRouteLogic.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooContracts.BindingModels; +using ZooContracts.SearchModels; +using ZooContracts.ViewModels; + +namespace ZooContracts.BusinessLogicsContracts +{ + public interface IRouteLogic + { + List? ReadList(RouteSearchModel? model); + RouteViewModel? ReadElement(RouteSearchModel model); + bool Create(RouteBindingModel model); + bool Update(RouteBindingModel model); + bool Delete(RouteBindingModel model); + } +} diff --git a/git/JurasicZoo/ZooContracts/SearchModels/ClientSearchModel.cs b/git/JurasicZoo/ZooContracts/SearchModels/ClientSearchModel.cs new file mode 100644 index 0000000..60b9235 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/SearchModels/ClientSearchModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZooContracts.SearchModels +{ + public class ClientSearchModel + { + public int? Id { get; set; } + + public string? ClientFIO { get; set; } + + public string? Email { get; set; } + + public string? Password { get; set; } + } +} diff --git a/git/JurasicZoo/ZooContracts/SearchModels/RouteSearchModel.cs b/git/JurasicZoo/ZooContracts/SearchModels/RouteSearchModel.cs new file mode 100644 index 0000000..abb4ff3 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/SearchModels/RouteSearchModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooDataModels.Enums; + +namespace ZooContracts.SearchModels +{ + public class RouteSearchModel + { + public int? Id { get; set; } + public string? RouteName { get; set; } = string.Empty; + public double? RoutePrice { get; set; } + public RouteStatus Status { get; set; } = RouteStatus.Неизвестен; + public DateTime? DateStart { get; set; } + public DateTime? DateFinish { get; set; } + } +} diff --git a/git/JurasicZoo/ZooContracts/StorageContracts/IClientStorage.cs b/git/JurasicZoo/ZooContracts/StorageContracts/IClientStorage.cs new file mode 100644 index 0000000..85658e3 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/StorageContracts/IClientStorage.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooContracts.BindingModels; +using ZooContracts.SearchModels; +using ZooContracts.ViewModels; + +namespace ZooContracts.StorageContracts +{ + public interface IClientStorage + { + List GetFullList(); + List GetFilteredList(ClientSearchModel model); + ClientViewModel? GetElement(ClientSearchModel model); + ClientViewModel? Insert(ClientSearchModel model); + ClientViewModel? Update(ClientSearchModel model); + ClientViewModel? Delete(ClientSearchModel model); + } +} diff --git a/git/JurasicZoo/ZooContracts/StorageContracts/IRouteStorage.cs b/git/JurasicZoo/ZooContracts/StorageContracts/IRouteStorage.cs new file mode 100644 index 0000000..4420727 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/StorageContracts/IRouteStorage.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooContracts.BindingModels; +using ZooContracts.SearchModels; +using ZooContracts.ViewModels; + +namespace ZooContracts.StorageContracts +{ + public interface IRouteStorage + { + List GetFullList(); + List GetFilteredList(RouteSearchModel model); + RouteViewModel? GetElement(RouteSearchModel model); + RouteViewModel? Insert(RouteSearchModel model); + RouteViewModel? Update(RouteSearchModel model); + RouteViewModel? Delete(RouteSearchModel model); + } +} diff --git a/git/JurasicZoo/ZooContracts/ViewModels/ClientViewModel.cs b/git/JurasicZoo/ZooContracts/ViewModels/ClientViewModel.cs new file mode 100644 index 0000000..1649c24 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/ViewModels/ClientViewModel.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooDataModels.Models; + +namespace ZooContracts.ViewModels +{ + public class ClientViewModel + { + public int Id { get; set; } + [DisplayName("ФИО клиента")] + public string ClientFIO { get; set; } = string.Empty; + [DisplayName("Email клиента")] + public string Email { get; set; } = string.Empty; + [DisplayName("Пароль клиента")] + public string Password { get; set; } = string.Empty; + + } +} diff --git a/git/JurasicZoo/ZooContracts/ViewModels/RouteViewModel.cs b/git/JurasicZoo/ZooContracts/ViewModels/RouteViewModel.cs new file mode 100644 index 0000000..9992e9e --- /dev/null +++ b/git/JurasicZoo/ZooContracts/ViewModels/RouteViewModel.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooDataModels.Enums; +using ZooDataModels.Models; + + +namespace ZooContracts.ViewModels +{ + public class RouteViewModel + { + public int Id { get; set; } + [DisplayName("Название маршрута")] + public string RouteName { get; set; } = string.Empty; + [DisplayName("Стоимость маршрута")] + public double RoutePrice { get; set; } + [DisplayName("Статус")] + public RouteStatus Status { get; set; } = RouteStatus.Неизвестен; + [DisplayName("Дата начала")] + public DateTime DateCreate { get; set; } = DateTime.Now; + [DisplayName("Дата окончания")] + public Dictionary Preserves + { + get; + set; + } = new(); + } +} diff --git a/git/JurasicZoo/ZooDataModels/Enums/RouteStatus.cs b/git/JurasicZoo/ZooDataModels/Enums/RouteStatus.cs new file mode 100644 index 0000000..dd50ba2 --- /dev/null +++ b/git/JurasicZoo/ZooDataModels/Enums/RouteStatus.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZooDataModels.Enums +{ + public enum RouteStatus + { + Неизвестен = -1, + Принят = 0, + Завершен =1 + } +} diff --git a/git/JurasicZoo/ZooDataModels/Models/IClientModel.cs b/git/JurasicZoo/ZooDataModels/Models/IClientModel.cs index a2a6289..fa464d8 100644 --- a/git/JurasicZoo/ZooDataModels/Models/IClientModel.cs +++ b/git/JurasicZoo/ZooDataModels/Models/IClientModel.cs @@ -9,8 +9,7 @@ namespace ZooDataModels.Models public interface IClientModel : IId { string ClientFIO { get; } - string Mail { get; } - string RegistrationDate { get; } + string EMail { get; } string Password { get; } } } diff --git a/git/JurasicZoo/ZooDataModels/Models/IRouteModel.cs b/git/JurasicZoo/ZooDataModels/Models/IRouteModel.cs new file mode 100644 index 0000000..69435e9 --- /dev/null +++ b/git/JurasicZoo/ZooDataModels/Models/IRouteModel.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZooDataModels.Enums; + +namespace ZooDataModels.Models +{ + public interface IRouteModel + { + int ClientId { get; } + string RouteName { get; } + double RoutePrice { get; } + RouteStatus Status { get; } + DateTime DateStart { get; } + DateTime DateFinish { get; } + Dictionary Preserves{ get; } + } +} diff --git a/git/JurasicZoo/ZooDataModels/ZooDataModels.csproj b/git/JurasicZoo/ZooDataModels/ZooDataModels.csproj index 132c02c..27ac386 100644 --- a/git/JurasicZoo/ZooDataModels/ZooDataModels.csproj +++ b/git/JurasicZoo/ZooDataModels/ZooDataModels.csproj @@ -1,4 +1,4 @@ - + net6.0