diff --git a/RouteGuide/RouteGuide.sln b/RouteGuide/RouteGuide.sln index fbb7e17..1ab89a4 100644 --- a/RouteGuide/RouteGuide.sln +++ b/RouteGuide/RouteGuide.sln @@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.8.34525.116 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RouteGuideView", "RouteGuideView\RouteGuideView.csproj", "{4116AC9B-4035-4701-9C35-049AA6A83B96}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RouteGuideView", "RouteGuideView\RouteGuideView.csproj", "{4116AC9B-4035-4701-9C35-049AA6A83B96}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RouteGuideDataModels", "RouteGuideDataModels\RouteGuideDataModels.csproj", "{734B62E6-F4F0-4356-A4BC-067F52416282}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +17,10 @@ Global {4116AC9B-4035-4701-9C35-049AA6A83B96}.Debug|Any CPU.Build.0 = Debug|Any CPU {4116AC9B-4035-4701-9C35-049AA6A83B96}.Release|Any CPU.ActiveCfg = Release|Any CPU {4116AC9B-4035-4701-9C35-049AA6A83B96}.Release|Any CPU.Build.0 = Release|Any CPU + {734B62E6-F4F0-4356-A4BC-067F52416282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {734B62E6-F4F0-4356-A4BC-067F52416282}.Debug|Any CPU.Build.0 = Debug|Any CPU + {734B62E6-F4F0-4356-A4BC-067F52416282}.Release|Any CPU.ActiveCfg = Release|Any CPU + {734B62E6-F4F0-4356-A4BC-067F52416282}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/RouteGuide/RouteGuideDataModels/Enums/TransportType.cs b/RouteGuide/RouteGuideDataModels/Enums/TransportType.cs new file mode 100644 index 0000000..2d5e851 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Enums/TransportType.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Enums +{ + /// + /// Тип транспорта + /// + public enum TransportType + { + Маршрутка, + + Автобус, + + Троллейбус, + + Трамвай, + + Такси + } +} diff --git a/RouteGuide/RouteGuideDataModels/IId.cs b/RouteGuide/RouteGuideDataModels/IId.cs new file mode 100644 index 0000000..1c0b66a --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/IId.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels +{ + /// + /// Интерфейс для идентификатора + /// + public interface IId + { + /// + /// Идентификатор + /// + int Id { get; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/IDriverModel.cs b/RouteGuide/RouteGuideDataModels/Models/IDriverModel.cs new file mode 100644 index 0000000..e1dbd72 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/IDriverModel.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Models +{ + /// + /// Интерфейс для модели водителя + /// + public interface IDriverModel : IId + { + /// + /// ФИО водителя + /// + string FullName { get; } + + /// + /// Номер телефона водителя + /// + string Phone { get; } + + /// + /// Опыт работы водителя + /// + int? Experience { get; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs b/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs new file mode 100644 index 0000000..1a95d10 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Models +{ + /// + /// Интерфейс для модели маршрута + /// + public interface IRouteModel : IId + { + /// + /// Название маршрута + /// + string Name { get; } + + /// + /// Идентификатор тарнспорта + /// + int TransportId { get; } + + /// + /// Коллеция остановок маршрута + /// + Dictionary RouteStops { get; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/IScheduleModel.cs b/RouteGuide/RouteGuideDataModels/Models/IScheduleModel.cs new file mode 100644 index 0000000..bd01e0e --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/IScheduleModel.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Models +{ + /// + /// Интерфейс для модели расписания + /// + public interface IScheduleModel : IId + { + /// + /// Дата записи расписания + /// + DateTime Date { get; } + + /// + /// Время отправления + /// + TimeOnly DepartureTime { get; } + + /// + /// Время прибытия + /// + TimeOnly ArrivalTime { get; } + + /// + /// Периодичность движения транспорта + /// + TimeOnly Frequency { get; } + + /// + /// Идентификатор маршрута + /// + int RouteId { get; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs b/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs new file mode 100644 index 0000000..e81ff21 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Models +{ + /// + /// Интерфейс для модели остановки + /// + public interface IStopModel : IId + { + /// + /// Название остановки + /// + string Name { get; } + + /// + /// Название улицы + /// + string Street { get; } + + /// + /// Номер дома + /// + int Number { get; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs b/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs new file mode 100644 index 0000000..f0b7504 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs @@ -0,0 +1,35 @@ +using RouteGuideDataModels.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Models +{ + /// + /// Интерфейс для модели транспорта + /// + public interface ITransportModel : IId + { + /// + /// Номерной знак + /// + string License { get; } + + /// + /// Тип транспортного средства + /// + TransportType Type { get; } + + /// + /// Вместимость (количество пассажиров) + /// + int Capacity { get; } + + /// + /// Идентификатор водителя + /// + int DriverId { get; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/RouteGuideDataModels.csproj b/RouteGuide/RouteGuideDataModels/RouteGuideDataModels.csproj new file mode 100644 index 0000000..132c02c --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/RouteGuideDataModels.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + +