diff --git a/RouteGuide/RouteGuide.sln b/RouteGuide/RouteGuide.sln index 00071c8..15cadd5 100644 --- a/RouteGuide/RouteGuide.sln +++ b/RouteGuide/RouteGuide.sln @@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32819.101 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RouteGuide", "RouteGuide\RouteGuide.csproj", "{7CFC8C9A-8F17-41F0-8AE1-36FDCF5CC0F6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RouteGuide", "RouteGuide\RouteGuide.csproj", "{7CFC8C9A-8F17-41F0-8AE1-36FDCF5CC0F6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RouteGuideDataModels", "RouteGuideDataModels\RouteGuideDataModels.csproj", "{5DD8F223-307E-4B13-9EEB-DDC0DCDC10F0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RouteGuideContracts", "RouteGuideContracts\RouteGuideContracts.csproj", "{A27C89B3-F629-4553-B928-EE22147EBD86}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +19,14 @@ Global {7CFC8C9A-8F17-41F0-8AE1-36FDCF5CC0F6}.Debug|Any CPU.Build.0 = Debug|Any CPU {7CFC8C9A-8F17-41F0-8AE1-36FDCF5CC0F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {7CFC8C9A-8F17-41F0-8AE1-36FDCF5CC0F6}.Release|Any CPU.Build.0 = Release|Any CPU + {5DD8F223-307E-4B13-9EEB-DDC0DCDC10F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DD8F223-307E-4B13-9EEB-DDC0DCDC10F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DD8F223-307E-4B13-9EEB-DDC0DCDC10F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DD8F223-307E-4B13-9EEB-DDC0DCDC10F0}.Release|Any CPU.Build.0 = Release|Any CPU + {A27C89B3-F629-4553-B928-EE22147EBD86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A27C89B3-F629-4553-B928-EE22147EBD86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A27C89B3-F629-4553-B928-EE22147EBD86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A27C89B3-F629-4553-B928-EE22147EBD86}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/RouteGuide/RouteGuideContracts/BindingModels/RouteBindingModel.cs b/RouteGuide/RouteGuideContracts/BindingModels/RouteBindingModel.cs new file mode 100644 index 0000000..7562aca --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BindingModels/RouteBindingModel.cs @@ -0,0 +1,18 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BindingModels +{ + public class RouteBindingModel : IRouteModel + { + public int Id { get; set; } + + public string Name { get; set; } = string.Empty; + + public Dictionary RouteStops { get; set; } = new(); + } +} diff --git a/RouteGuide/RouteGuideContracts/BindingModels/StopBindingModel.cs b/RouteGuide/RouteGuideContracts/BindingModels/StopBindingModel.cs new file mode 100644 index 0000000..583d6cc --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BindingModels/StopBindingModel.cs @@ -0,0 +1,16 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BindingModels +{ + public class StopBindingModel : IStopModel + { + public int Id { get; set; } + + public string Name { get; set; } = string.Empty; + } +} diff --git a/RouteGuide/RouteGuideContracts/BindingModels/TransportBindingModel.cs b/RouteGuide/RouteGuideContracts/BindingModels/TransportBindingModel.cs new file mode 100644 index 0000000..cd4eba6 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BindingModels/TransportBindingModel.cs @@ -0,0 +1,20 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BindingModels +{ + public class TransportBindingModel : ITransportModel + { + public int Id { get; set; } + + public string DriverName { get; set; } = string.Empty; + + public int TransportTypeId { get; set; } + + public int RouteId { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/BindingModels/TransportTypeBindingModel.cs b/RouteGuide/RouteGuideContracts/BindingModels/TransportTypeBindingModel.cs new file mode 100644 index 0000000..bd8d3fe --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BindingModels/TransportTypeBindingModel.cs @@ -0,0 +1,18 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BindingModels +{ + public class TransportTypeBindingModel : ITransportTypeModel + { + public int Id { get; set; } + + public string Name { get; set; } = string.Empty; + + public double Price { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/BusinessLogicContracts/IRouteLogic.cs b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/IRouteLogic.cs new file mode 100644 index 0000000..32c3bdf --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/IRouteLogic.cs @@ -0,0 +1,22 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BusinessLogicContracts +{ + 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/RouteGuide/RouteGuideContracts/BusinessLogicContracts/IStopLogic.cs b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/IStopLogic.cs new file mode 100644 index 0000000..c9b7cac --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/IStopLogic.cs @@ -0,0 +1,22 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BusinessLogicContracts +{ + public interface IStopLogic + { + List? ReadList(StopSearchModel? model); + + StopViewModel? ReadElement(StopSearchModel model); + + bool Create(StopBindingModel model); + bool Update(StopBindingModel model); + bool Delete(StopBindingModel model); + } +} diff --git a/RouteGuide/RouteGuideContracts/BusinessLogicContracts/ITransportLogic.cs b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/ITransportLogic.cs new file mode 100644 index 0000000..ff05fc9 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/ITransportLogic.cs @@ -0,0 +1,22 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BusinessLogicContracts +{ + public interface ITransportLogic + { + List? ReadList(TransportSearchModel? model); + + TransportViewModel? ReadElement(TransportSearchModel model); + + bool Create(TransportBindingModel model); + bool Update(TransportBindingModel model); + bool Delete(TransportBindingModel model); + } +} diff --git a/RouteGuide/RouteGuideContracts/BusinessLogicContracts/ITransportTypeLogic.cs b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/ITransportTypeLogic.cs new file mode 100644 index 0000000..3f3c12e --- /dev/null +++ b/RouteGuide/RouteGuideContracts/BusinessLogicContracts/ITransportTypeLogic.cs @@ -0,0 +1,22 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.BusinessLogicContracts +{ + public interface ITransportTypeLogic + { + List? ReadList(TransportTypeSearchModel? model); + + TransportTypeViewModel? ReadElement(TransportTypeSearchModel model); + + bool Create(TransportTypeBindingModel model); + bool Update(TransportTypeBindingModel model); + bool Delete(TransportTypeBindingModel model); + } +} diff --git a/RouteGuide/RouteGuideContracts/Class1.cs b/RouteGuide/RouteGuideContracts/Class1.cs new file mode 100644 index 0000000..03adcb8 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/Class1.cs @@ -0,0 +1,7 @@ +namespace RouteGuideContracts +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/RouteGuide/RouteGuideContracts/RouteGuideContracts.csproj b/RouteGuide/RouteGuideContracts/RouteGuideContracts.csproj new file mode 100644 index 0000000..539af2a --- /dev/null +++ b/RouteGuide/RouteGuideContracts/RouteGuideContracts.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + + + + + + + diff --git a/RouteGuide/RouteGuideContracts/SearchModels/RouteSearchModel.cs b/RouteGuide/RouteGuideContracts/SearchModels/RouteSearchModel.cs new file mode 100644 index 0000000..db405e5 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/SearchModels/RouteSearchModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.SearchModels +{ + public class RouteSearchModel + { + public int? Id { get; set; } + + public string? Name { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/SearchModels/StopSearchModel.cs b/RouteGuide/RouteGuideContracts/SearchModels/StopSearchModel.cs new file mode 100644 index 0000000..76cc65c --- /dev/null +++ b/RouteGuide/RouteGuideContracts/SearchModels/StopSearchModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.SearchModels +{ + public class StopSearchModel + { + public int? Id { get; set; } + + public string? Name { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/SearchModels/TransportSearchModel.cs b/RouteGuide/RouteGuideContracts/SearchModels/TransportSearchModel.cs new file mode 100644 index 0000000..6d68e0b --- /dev/null +++ b/RouteGuide/RouteGuideContracts/SearchModels/TransportSearchModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.SearchModels +{ + public class TransportSearchModel + { + public int? Id { get; set; } + + public string? DriverName { get; set; } = string.Empty; + + public int? TransportTypeId { get; set; } + + public int? RouteId { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/SearchModels/TransportTypeSearchModel.cs b/RouteGuide/RouteGuideContracts/SearchModels/TransportTypeSearchModel.cs new file mode 100644 index 0000000..bf1adae --- /dev/null +++ b/RouteGuide/RouteGuideContracts/SearchModels/TransportTypeSearchModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.SearchModels +{ + public class TransportTypeSearchModel + { + public int? Id { get; set; } + + public string? Name { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/StoragesModels/IRouteStorage.cs b/RouteGuide/RouteGuideContracts/StoragesModels/IRouteStorage.cs new file mode 100644 index 0000000..f643bb5 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/StoragesModels/IRouteStorage.cs @@ -0,0 +1,24 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.StoragesModels +{ + public interface IRouteStorage + { + List GetFullList(); + + List GetFilteredList(RouteSearchModel model); + + RouteViewModel? GetElement(RouteSearchModel model); + + RouteViewModel? Insert(RouteBindingModel model); + RouteViewModel? Update(RouteBindingModel model); + RouteViewModel? Delete(RouteBindingModel model); + } +} diff --git a/RouteGuide/RouteGuideContracts/StoragesModels/IStopStorage.cs b/RouteGuide/RouteGuideContracts/StoragesModels/IStopStorage.cs new file mode 100644 index 0000000..8b86401 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/StoragesModels/IStopStorage.cs @@ -0,0 +1,24 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.StoragesModels +{ + public interface IStopStorage + { + List GetFullList(); + + List GetFilteredList(StopSearchModel model); + + StopViewModel? GetElement(StopSearchModel model); + + StopViewModel? Insert(StopBindingModel model); + StopViewModel? Update(StopBindingModel model); + StopViewModel? Delete(StopBindingModel model); + } +} diff --git a/RouteGuide/RouteGuideContracts/StoragesModels/ITransportStorage.cs b/RouteGuide/RouteGuideContracts/StoragesModels/ITransportStorage.cs new file mode 100644 index 0000000..b7b5d1d --- /dev/null +++ b/RouteGuide/RouteGuideContracts/StoragesModels/ITransportStorage.cs @@ -0,0 +1,24 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.StoragesModels +{ + public interface ITransportStorage + { + List GetFullList(); + + List GetFilteredList(TransportSearchModel model); + + TransportViewModel? GetElement(TransportSearchModel model); + + TransportViewModel? Insert(TransportBindingModel model); + TransportViewModel? Update(TransportBindingModel model); + TransportViewModel? Delete(TransportBindingModel model); + } +} diff --git a/RouteGuide/RouteGuideContracts/StoragesModels/ITransportTypeStorage.cs b/RouteGuide/RouteGuideContracts/StoragesModels/ITransportTypeStorage.cs new file mode 100644 index 0000000..57d0dfc --- /dev/null +++ b/RouteGuide/RouteGuideContracts/StoragesModels/ITransportTypeStorage.cs @@ -0,0 +1,24 @@ +using RouteGuideContracts.BindingModels; +using RouteGuideContracts.SearchModels; +using RouteGuideContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.StoragesModels +{ + public interface ITransportTypeStorage + { + List GetFullList(); + + List GetFilteredList(TransportTypeSearchModel model); + + TransportTypeViewModel? GetElement(TransportTypeSearchModel model); + + TransportTypeViewModel? Insert(TransportTypeBindingModel model); + TransportTypeViewModel? Update(TransportTypeBindingModel model); + TransportTypeViewModel? Delete(TransportTypeBindingModel model); + } +} diff --git a/RouteGuide/RouteGuideContracts/ViewModels/RouteViewModel.cs b/RouteGuide/RouteGuideContracts/ViewModels/RouteViewModel.cs new file mode 100644 index 0000000..d7dc44f --- /dev/null +++ b/RouteGuide/RouteGuideContracts/ViewModels/RouteViewModel.cs @@ -0,0 +1,20 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.ViewModels +{ + public class RouteViewModel : IRouteModel + { + [DisplayName("Название маршрута")] + public string Name { get; set; } = string.Empty; + + public Dictionary RouteStops { get; set; } = new(); + + public int Id { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/ViewModels/StopViewModel.cs b/RouteGuide/RouteGuideContracts/ViewModels/StopViewModel.cs new file mode 100644 index 0000000..f2be417 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/ViewModels/StopViewModel.cs @@ -0,0 +1,18 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.ViewModels +{ + public class StopViewModel : IStopModel + { + [DisplayName("Название остановки")] + public string Name { get; set; } = string.Empty; + + public int Id { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/ViewModels/TransportTypeViewModel.cs b/RouteGuide/RouteGuideContracts/ViewModels/TransportTypeViewModel.cs new file mode 100644 index 0000000..8b11d94 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/ViewModels/TransportTypeViewModel.cs @@ -0,0 +1,21 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.ViewModels +{ + public class TransportTypeViewModel : ITransportTypeModel + { + [DisplayName("Стоимость проезда")] + public double Price { get; set; } + + [DisplayName("Тип транспорта")] + public string Name { get; set; } = string.Empty; + + public int Id { get; set; } + } +} diff --git a/RouteGuide/RouteGuideContracts/ViewModels/TransportViewModel.cs b/RouteGuide/RouteGuideContracts/ViewModels/TransportViewModel.cs new file mode 100644 index 0000000..b4094f7 --- /dev/null +++ b/RouteGuide/RouteGuideContracts/ViewModels/TransportViewModel.cs @@ -0,0 +1,29 @@ +using RouteGuideDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideContracts.ViewModels +{ + public class TransportViewModel : ITransportModel + { + [DisplayName("Водитель")] + public string DriverName { get; set; } = string.Empty; + + public int TransportTypeId { get; set; } + + [DisplayName("Тип транспорта")] + public int TransportTypeName { get; set; } + + [DisplayName("Номер маршрута")] + public int RouteId { get; set; } + + [DisplayName("Название маршрута")] + public int RouteName { get; set; } + + public int Id { get; set; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/IId.cs b/RouteGuide/RouteGuideDataModels/IId.cs new file mode 100644 index 0000000..393abbe --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/IId.cs @@ -0,0 +1,7 @@ +namespace RouteGuideDataModels +{ + public interface IId + { + int Id { get; } + } +} \ No newline at end of file diff --git a/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs b/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs new file mode 100644 index 0000000..9a24091 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs @@ -0,0 +1,16 @@ +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; } + + Dictionary RouteStops { get; } + + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs b/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs new file mode 100644 index 0000000..9f44d62 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs @@ -0,0 +1,13 @@ +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; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs b/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs new file mode 100644 index 0000000..cde94d4 --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Models +{ + public interface ITransportModel : IId + { + string DriverName { get; } + + int TransportTypeId { get; } + + int RouteId { get; } + } +} diff --git a/RouteGuide/RouteGuideDataModels/Models/ITransportTypeModel.cs b/RouteGuide/RouteGuideDataModels/Models/ITransportTypeModel.cs new file mode 100644 index 0000000..c1313fb --- /dev/null +++ b/RouteGuide/RouteGuideDataModels/Models/ITransportTypeModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RouteGuideDataModels.Models +{ + public interface ITransportTypeModel : IId + { + string Name { get; } + + double Price { 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 + + +