diff --git a/Bookshop/Bookshop.sln b/Bookshop/Bookshop.sln index b08eefa..b953496 100644 --- a/Bookshop/Bookshop.sln +++ b/Bookshop/Bookshop.sln @@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32825.248 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BookshopView", "BookshopView\BookshopView.csproj", "{96DE30E7-2B91-4357-954F-31B755339128}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BookshopDataModels", "BookshopDataModels\BookshopDataModels.csproj", "{36D7E02E-39EE-4C04-9AEB-6298B67D935C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BookshopView", "BookshopView\BookshopView.csproj", "{8406C468-605F-4932-AB19-2BFD98480D19}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BookshopContracts", "BookshopContracts\BookshopContracts.csproj", "{9BC70D3F-9F6E-4B9B-A519-5C46417A9B6D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +15,18 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {96DE30E7-2B91-4357-954F-31B755339128}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DE30E7-2B91-4357-954F-31B755339128}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96DE30E7-2B91-4357-954F-31B755339128}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96DE30E7-2B91-4357-954F-31B755339128}.Release|Any CPU.Build.0 = Release|Any CPU + {36D7E02E-39EE-4C04-9AEB-6298B67D935C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36D7E02E-39EE-4C04-9AEB-6298B67D935C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36D7E02E-39EE-4C04-9AEB-6298B67D935C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36D7E02E-39EE-4C04-9AEB-6298B67D935C}.Release|Any CPU.Build.0 = Release|Any CPU + {8406C468-605F-4932-AB19-2BFD98480D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8406C468-605F-4932-AB19-2BFD98480D19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8406C468-605F-4932-AB19-2BFD98480D19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8406C468-605F-4932-AB19-2BFD98480D19}.Release|Any CPU.Build.0 = Release|Any CPU + {9BC70D3F-9F6E-4B9B-A519-5C46417A9B6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9BC70D3F-9F6E-4B9B-A519-5C46417A9B6D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BC70D3F-9F6E-4B9B-A519-5C46417A9B6D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9BC70D3F-9F6E-4B9B-A519-5C46417A9B6D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Bookshop/BookshopContracts/BindingModels/AuthorBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/AuthorBindingModel.cs new file mode 100644 index 0000000..f232391 --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/AuthorBindingModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopDataModels.Models; + +namespace BookshopContracts.BindingModels +{ + public class AuthorBindingModel : IAuthorModel + { + public int Id { get; set; } + public string AuthorName { get; set; } = string.Empty; + public string Country { get; set; } = string.Empty; + } +} diff --git a/Bookshop/BookshopContracts/BindingModels/BookBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/BookBindingModel.cs new file mode 100644 index 0000000..5d50685 --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/BookBindingModel.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopDataModels.Models; + +namespace BookshopContracts.BindingModels +{ + public class BookBindingModel : IBookModel + { + public int Id { get; set; } + public string Title { get; set; } = string.Empty; + public int YearOfPublication { get; set; } + public int AuthorId { get; set; } + public int GenreId { get; set; } + } +} diff --git a/Bookshop/BookshopContracts/BindingModels/GenreBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/GenreBindingModel.cs new file mode 100644 index 0000000..a55ed92 --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/GenreBindingModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopDataModels.Models; + +namespace BookshopContracts.BindingModels +{ + public class GenreBindingModel : IGenreModel + { + public int Id { get; set; } + public string GenreName { get; set; } = string.Empty; + } +} diff --git a/Bookshop/BookshopContracts/BindingModels/InstanceBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/InstanceBindingModel.cs new file mode 100644 index 0000000..4cd1f2d --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/InstanceBindingModel.cs @@ -0,0 +1,19 @@ +using BookshopDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopContracts.BindingModels +{ + public class InstanceBindingModel : IInstanceModel + { + public int Id { get; set; } + public bool Pictures { get; set; } + public int StockQuantity { get; set; } + public double Price { get; set; } + public int BookId { get; set; } + public int PublisherId { get; set; } + } +} diff --git a/Bookshop/BookshopContracts/BindingModels/OrderBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/OrderBindingModel.cs new file mode 100644 index 0000000..d664ece --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/OrderBindingModel.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopDataModels.Models; + +namespace BookshopContracts.BindingModels +{ + public class OrderBindingModel : IOrderModel + { + public int Id { get; set; } + public DateTime OrderDate { get; set; } + public int Quantity { get; set; } + public int InstanceId { get; set; } + public int UserId { get; set; } + } +} diff --git a/Bookshop/BookshopContracts/BindingModels/PublisherBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/PublisherBindingModel.cs new file mode 100644 index 0000000..1056322 --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/PublisherBindingModel.cs @@ -0,0 +1,18 @@ +using BookshopDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopContracts.BindingModels +{ + public class PublisherBindingModel : IPublisherModel + { + public int Id { get; set; } + public string PublisherName { get; set; } = string.Empty; + public string Address { get; set; } = string.Empty; + public string PhoneNumber { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + } +} diff --git a/Bookshop/BookshopContracts/BindingModels/ReviewBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/ReviewBindingModel.cs new file mode 100644 index 0000000..2cba0a8 --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/ReviewBindingModel.cs @@ -0,0 +1,18 @@ +using BookshopDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopContracts.BindingModels +{ + public class ReviewBindingModel : IReviewModel + { + public int Id { get; set; } + public string ReviewText { get; set; } = string.Empty; + public DateTime ReviewDate { get; set; } + public int InstanceId { get; set; } + public int UserId { get; set; } + } +} diff --git a/Bookshop/BookshopContracts/BindingModels/UserBindingModel.cs b/Bookshop/BookshopContracts/BindingModels/UserBindingModel.cs new file mode 100644 index 0000000..3656660 --- /dev/null +++ b/Bookshop/BookshopContracts/BindingModels/UserBindingModel.cs @@ -0,0 +1,16 @@ +using BookshopDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopContracts.BindingModels +{ + public class UserBindingModel : IUserModel + { + public int Id { get; set; } + public string Username { get; set; } = string.Empty; + public string UserEmail { get; set; } = string.Empty; + } +} diff --git a/Bookshop/BookshopContracts/BookshopContracts.csproj b/Bookshop/BookshopContracts/BookshopContracts.csproj new file mode 100644 index 0000000..0c36139 --- /dev/null +++ b/Bookshop/BookshopContracts/BookshopContracts.csproj @@ -0,0 +1,18 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + + diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IAuthorLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IAuthorLogic.cs new file mode 100644 index 0000000..816c0c8 --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IAuthorLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IAuthorLogic + { + List? ReadList(AuthorSearchModel? model); + AuthorViewModel? ReadElement(AuthorSearchModel model); + bool Create(AuthorBindingModel model); + bool Update(AuthorBindingModel model); + bool Delete(AuthorBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IBookLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IBookLogic.cs new file mode 100644 index 0000000..6377957 --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IBookLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IBookLogic + { + List? ReadList(BookSearchModel? model); + BookViewModel? ReadElement(BookSearchModel model); + bool Create(BookBindingModel model); + bool Update(BookBindingModel model); + bool Delete(BookBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IGenreLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IGenreLogic.cs new file mode 100644 index 0000000..ce1ad00 --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IGenreLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IGenreLogic + { + List? ReadList(GenreSearchModel? model); + GenreViewModel? ReadElement(GenreSearchModel model); + bool Create(GenreBindingModel model); + bool Update(GenreBindingModel model); + bool Delete(GenreBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IInstanceLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IInstanceLogic.cs new file mode 100644 index 0000000..e48990f --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IInstanceLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IInstanceLogic + { + List? ReadList(InstanceSearchModel? model); + InstanceViewModel? ReadElement(InstanceSearchModel model); + bool Create(InstanceBindingModel model); + bool Update(InstanceBindingModel model); + bool Delete(InstanceBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IOrderLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IOrderLogic.cs new file mode 100644 index 0000000..57d4c6d --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IOrderLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IOrderLogic + { + List? ReadList(OrderSearchModel? model); + OrderViewModel? ReadElement(OrderSearchModel model); + bool Create(OrderBindingModel model); + bool Update(OrderBindingModel model); + bool Delete(OrderBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IPublisherLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IPublisherLogic.cs new file mode 100644 index 0000000..12608ab --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IPublisherLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IPublisherLogic + { + List? ReadList(PublisherSearchModel? model); + PublisherViewModel? ReadElement(PublisherSearchModel model); + bool Create(PublisherBindingModel model); + bool Update(PublisherBindingModel model); + bool Delete(PublisherBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IReviewLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IReviewLogic.cs new file mode 100644 index 0000000..731eba5 --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IReviewLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IReviewLogic + { + List? ReadList(ReviewSearchModel? model); + ReviewViewModel? ReadElement(ReviewSearchModel model); + bool Create(ReviewBindingModel model); + bool Update(ReviewBindingModel model); + bool Delete(ReviewBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/BusinessLogicsContracts/IUserLogic.cs b/Bookshop/BookshopContracts/BusinessLogicsContracts/IUserLogic.cs new file mode 100644 index 0000000..bcbf7ef --- /dev/null +++ b/Bookshop/BookshopContracts/BusinessLogicsContracts/IUserLogic.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BookshopContracts.BindingModels; + +namespace BookshopContracts.BusinessLogicsContracts +{ + public interface IUserLogic + { + List? ReadList(UserSearchModel? model); + UserViewModel? ReadElement(UserSearchModel model); + bool Create(UserBindingModel model); + bool Update(UserBindingModel model); + bool Delete(UserBindingModel model); + } +} diff --git a/Bookshop/BookshopContracts/StorageContracts/IAuthorStorage.cs b/Bookshop/BookshopContracts/StorageContracts/IAuthorStorage.cs new file mode 100644 index 0000000..72597d8 --- /dev/null +++ b/Bookshop/BookshopContracts/StorageContracts/IAuthorStorage.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopContracts.StorageContracts +{ + internal class IAuthorStorage + { + } +} diff --git a/Bookshop/BookshopContracts/StorageContracts/IBookStorage.cs b/Bookshop/BookshopContracts/StorageContracts/IBookStorage.cs new file mode 100644 index 0000000..5221eaf --- /dev/null +++ b/Bookshop/BookshopContracts/StorageContracts/IBookStorage.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopContracts.StorageContracts +{ + internal class IBookStorage + { + } +} diff --git a/Bookshop/BookshopDataModels/BookshopDataModels.csproj b/Bookshop/BookshopDataModels/BookshopDataModels.csproj new file mode 100644 index 0000000..132c02c --- /dev/null +++ b/Bookshop/BookshopDataModels/BookshopDataModels.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/Bookshop/BookshopDataModels/IId.cs b/Bookshop/BookshopDataModels/IId.cs new file mode 100644 index 0000000..18795dd --- /dev/null +++ b/Bookshop/BookshopDataModels/IId.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels +{ + public interface IId + { + int Id { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IAuthorModel.cs b/Bookshop/BookshopDataModels/Models/IAuthorModel.cs new file mode 100644 index 0000000..02d5016 --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IAuthorModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IAuthorModel : IId + { + string AuthorName { get; } + string Country { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IBookModel.cs b/Bookshop/BookshopDataModels/Models/IBookModel.cs new file mode 100644 index 0000000..933dc40 --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IBookModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IBookModel : IId + { + string Title { get; } + int YearOfPublication { get; } + int AuthorId { get; } + int GenreId { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IGenreModel.cs b/Bookshop/BookshopDataModels/Models/IGenreModel.cs new file mode 100644 index 0000000..640612a --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IGenreModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IGenreModel : IId + { + string GenreName { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IInstanceModel.cs b/Bookshop/BookshopDataModels/Models/IInstanceModel.cs new file mode 100644 index 0000000..a3870e9 --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IInstanceModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IInstanceModel : IId + { + bool Pictures { get; } + int StockQuantity { get; } + double Price { get; } + int BookId { get; } + int PublisherId { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IOrderModel.cs b/Bookshop/BookshopDataModels/Models/IOrderModel.cs new file mode 100644 index 0000000..f9f4151 --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IOrderModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IOrderModel : IId + { + DateTime OrderDate { get; } + int Quantity { get; } + int InstanceId { get; } + int UserId { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IPublisherModel.cs b/Bookshop/BookshopDataModels/Models/IPublisherModel.cs new file mode 100644 index 0000000..8213b0a --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IPublisherModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IPublisherModel : IId + { + string PublisherName { get; } + string Address { get; } + string PhoneNumber { get; } + string Email { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IReviewModel.cs b/Bookshop/BookshopDataModels/Models/IReviewModel.cs new file mode 100644 index 0000000..b54cf00 --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IReviewModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IReviewModel + { + string ReviewText { get; } + DateTime ReviewDate { get; } + int InstanceId { get; } + int UserId { get; } + } +} diff --git a/Bookshop/BookshopDataModels/Models/IUserModel.cs b/Bookshop/BookshopDataModels/Models/IUserModel.cs new file mode 100644 index 0000000..c6eea0a --- /dev/null +++ b/Bookshop/BookshopDataModels/Models/IUserModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookshopDataModels.Models +{ + public interface IUserModel + { + string Username { get; } + string UserEmail { get; } + } +}