From 28e79f0387c9e7087970aa99d63b8a04d780e16a Mon Sep 17 00:00:00 2001 From: Maksym Yaremko Date: Sat, 1 Jun 2019 16:40:11 +0300 Subject: [PATCH 1/3] create cooments --- .../Interfaces/ICommentService.cs | 15 + LibraryManager.BLL/Services/CommentService.cs | 57 +++ .../Context/LibraryManagerContext.cs | 2 +- LibraryManager.DAL/Entities/Comment.cs | 21 + LibraryManager.DAL/Interfaces/IUnitOfWork.cs | 4 +- LibraryManager.DAL/LibraryManager.DAL.csproj | 4 + ...9163042_Added Year to the book.Designer.cs | 395 ----------------- .../20190509163042_Added Year to the book.cs | 17 - ...44_Removed Year from the book.Designer.cs | 393 ----------------- ...90509163244_Removed Year from the book.cs | 23 - ...9163539_Year field in the book.Designer.cs | 395 ----------------- .../20190509163539_Year field in the book.cs | 23 - ...90516211344_userbook extending.Designer.cs | 397 ----------------- .../20190516211344_userbook extending.cs | 23 - ...ding is already finished field.Designer.cs | 399 ----------------- ...erbook adding is already finished field.cs | 23 - ...0516213949_userbook is reading.Designer.cs | 399 ----------------- .../20190516213949_userbook is reading.cs | 23 - ...sRated field to UserBook table.Designer.cs | 401 ------------------ ...9_Added IsRated field to UserBook table.cs | 23 - .../LibraryManagerContextModelSnapshot.cs | 399 ----------------- .../Repositories/CommentRepository.cs | 49 +++ LibraryManager.DAL/UnitOfWork.cs | 17 + LibraryManager.DTO/LibraryManager.DTO.csproj | 4 + LibraryManager.DTO/Models/CommentDTO.cs | 20 + .../Models/Manage/LibraryOpenViewModel.cs | 5 + .../AutoMapperProfiles/MappingProfile.cs | 1 + .../Controllers/LibraryController.cs | 30 +- LibraryManager/Startup.cs | 1 + LibraryManager/Views/Library/Open.cshtml | 30 ++ LibraryManager/appsettings.Development.json | 18 +- LibraryManager/appsettings.json | 2 +- 32 files changed, 267 insertions(+), 3346 deletions(-) create mode 100644 LibraryManager.BLL/Interfaces/ICommentService.cs create mode 100644 LibraryManager.BLL/Services/CommentService.cs create mode 100644 LibraryManager.DAL/Entities/Comment.cs delete mode 100644 LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.Designer.cs delete mode 100644 LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.cs delete mode 100644 LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.Designer.cs delete mode 100644 LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.cs delete mode 100644 LibraryManager.DAL/Migrations/20190509163539_Year field in the book.Designer.cs delete mode 100644 LibraryManager.DAL/Migrations/20190509163539_Year field in the book.cs delete mode 100644 LibraryManager.DAL/Migrations/20190516211344_userbook extending.Designer.cs delete mode 100644 LibraryManager.DAL/Migrations/20190516211344_userbook extending.cs delete mode 100644 LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.Designer.cs delete mode 100644 LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.cs delete mode 100644 LibraryManager.DAL/Migrations/20190516213949_userbook is reading.Designer.cs delete mode 100644 LibraryManager.DAL/Migrations/20190516213949_userbook is reading.cs delete mode 100644 LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.Designer.cs delete mode 100644 LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.cs delete mode 100644 LibraryManager.DAL/Migrations/LibraryManagerContextModelSnapshot.cs create mode 100644 LibraryManager.DAL/Repositories/CommentRepository.cs create mode 100644 LibraryManager.DTO/Models/CommentDTO.cs diff --git a/LibraryManager.BLL/Interfaces/ICommentService.cs b/LibraryManager.BLL/Interfaces/ICommentService.cs new file mode 100644 index 0000000..6b81146 --- /dev/null +++ b/LibraryManager.BLL/Interfaces/ICommentService.cs @@ -0,0 +1,15 @@ +using LibraryManager.DTO.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace LibraryManager.BLL.Interfaces +{ + public interface ICommentService + { + void Create(CommentDTO commentDTO); + void Delete(int id); + IEnumerable GetByBook(int id); + void Update(CommentDTO commentDTO); + } +} diff --git a/LibraryManager.BLL/Services/CommentService.cs b/LibraryManager.BLL/Services/CommentService.cs new file mode 100644 index 0000000..1d1b528 --- /dev/null +++ b/LibraryManager.BLL/Services/CommentService.cs @@ -0,0 +1,57 @@ +using AutoMapper; +using LibraryManager.BLL.Interfaces; +using LibraryManager.DAL.Entities; +using LibraryManager.DAL.Interfaces; +using LibraryManager.DTO.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace LibraryManager.BLL.Services +{ + public class CommentService : ICommentService + { + private readonly IUnitOfWork _unitOfWork; + private readonly IMapper _mapper; + + public CommentService(IUnitOfWork unitOfWork,IMapper mapper) + { + _unitOfWork = unitOfWork; + _mapper = mapper; + } + + public void Create(CommentDTO commentDTO) + { + var comment = _mapper.Map(commentDTO); + _unitOfWork.CommentRepository.Create(comment); + _unitOfWork.Save(); + } + + public void Delete(int id) + { + _unitOfWork.CommentRepository.Delete(id); + _unitOfWork.Save(); + } + + public IEnumerable GetByBook(int id) + { + var comments = _unitOfWork.CommentRepository.GetAll().Where(x => x.BookId == id); + var commentsDTO = new List(); + + foreach (var comment in comments) + { + commentsDTO.Add(_mapper.Map(comment)); + } + + return commentsDTO; + } + + public void Update(CommentDTO commentDTO) + { + var comment = _mapper.Map(commentDTO); + _unitOfWork.CommentRepository.Update(comment); + _unitOfWork.Save(); + } + } +} diff --git a/LibraryManager.DAL/Context/LibraryManagerContext.cs b/LibraryManager.DAL/Context/LibraryManagerContext.cs index ddb49bf..72590a6 100644 --- a/LibraryManager.DAL/Context/LibraryManagerContext.cs +++ b/LibraryManager.DAL/Context/LibraryManagerContext.cs @@ -10,12 +10,12 @@ namespace LibraryManager.DAL.Context { public sealed class LibraryManagerContext: IdentityDbContext { - //public DbSet Admins { get; set; } public DbSet Authors { get; set; } public DbSet Books { get; set; } public DbSet Genres { get; set; } public DbSet Languages { get; set; } public DbSet UserBooks { get; set; } + public DbSet Comments { get; set; } public LibraryManagerContext() { } diff --git a/LibraryManager.DAL/Entities/Comment.cs b/LibraryManager.DAL/Entities/Comment.cs new file mode 100644 index 0000000..9dfdb26 --- /dev/null +++ b/LibraryManager.DAL/Entities/Comment.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LibraryManager.DAL.Entities +{ + public class Comment + { + public int Id { get; set; } + + public string Name { get; set; } + + public DateTime Date { get; set; } + + public string UserId { get; set; } + public User User { get; set; } + + public int BookId { get; set; } + public Book Book { get; set; } + } +} diff --git a/LibraryManager.DAL/Interfaces/IUnitOfWork.cs b/LibraryManager.DAL/Interfaces/IUnitOfWork.cs index 9afd98a..8f64a1b 100644 --- a/LibraryManager.DAL/Interfaces/IUnitOfWork.cs +++ b/LibraryManager.DAL/Interfaces/IUnitOfWork.cs @@ -18,7 +18,9 @@ public interface IUnitOfWork: IDisposable IRepository LanguageRepository { get; set; } IRepository GenreRepository { get; set; } - + + IRepository CommentRepository { get; set; } + IManyToManyRepository UserBookRepository { get; set; } IManyToManyRepository BookGenreRepository { get; set; } diff --git a/LibraryManager.DAL/LibraryManager.DAL.csproj b/LibraryManager.DAL/LibraryManager.DAL.csproj index 3119e90..00e6727 100644 --- a/LibraryManager.DAL/LibraryManager.DAL.csproj +++ b/LibraryManager.DAL/LibraryManager.DAL.csproj @@ -16,4 +16,8 @@ + + + + diff --git a/LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.Designer.cs b/LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.Designer.cs deleted file mode 100644 index 98f609f..0000000 --- a/LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.Designer.cs +++ /dev/null @@ -1,395 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - [Migration("20190509163042_Added Year to the book")] - partial class AddedYeartothebook - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.Property("Year"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsRead"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.cs b/LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.cs deleted file mode 100644 index b07ff52..0000000 --- a/LibraryManager.DAL/Migrations/20190509163042_Added Year to the book.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace LibraryManager.DAL.Migrations -{ - public partial class AddedYeartothebook : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.Designer.cs b/LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.Designer.cs deleted file mode 100644 index 338e9c4..0000000 --- a/LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.Designer.cs +++ /dev/null @@ -1,393 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - [Migration("20190509163244_Removed Year from the book")] - partial class RemovedYearfromthebook - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsRead"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.cs b/LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.cs deleted file mode 100644 index b80058d..0000000 --- a/LibraryManager.DAL/Migrations/20190509163244_Removed Year from the book.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace LibraryManager.DAL.Migrations -{ - public partial class RemovedYearfromthebook : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "Year", - table: "Books"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "Year", - table: "Books", - nullable: false, - defaultValue: 0); - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190509163539_Year field in the book.Designer.cs b/LibraryManager.DAL/Migrations/20190509163539_Year field in the book.Designer.cs deleted file mode 100644 index 6602d8c..0000000 --- a/LibraryManager.DAL/Migrations/20190509163539_Year field in the book.Designer.cs +++ /dev/null @@ -1,395 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - [Migration("20190509163539_Year field in the book")] - partial class Yearfieldinthebook - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.Property("Year"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsRead"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190509163539_Year field in the book.cs b/LibraryManager.DAL/Migrations/20190509163539_Year field in the book.cs deleted file mode 100644 index ff2755d..0000000 --- a/LibraryManager.DAL/Migrations/20190509163539_Year field in the book.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace LibraryManager.DAL.Migrations -{ - public partial class Yearfieldinthebook : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "Year", - table: "Books", - nullable: false, - defaultValue: 0); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "Year", - table: "Books"); - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190516211344_userbook extending.Designer.cs b/LibraryManager.DAL/Migrations/20190516211344_userbook extending.Designer.cs deleted file mode 100644 index 9821ba8..0000000 --- a/LibraryManager.DAL/Migrations/20190516211344_userbook extending.Designer.cs +++ /dev/null @@ -1,397 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - [Migration("20190516211344_userbook extending")] - partial class userbookextending - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.Property("Year"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsInWishList"); - - b.Property("IsRead"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190516211344_userbook extending.cs b/LibraryManager.DAL/Migrations/20190516211344_userbook extending.cs deleted file mode 100644 index fbb40bf..0000000 --- a/LibraryManager.DAL/Migrations/20190516211344_userbook extending.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace LibraryManager.DAL.Migrations -{ - public partial class userbookextending : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "IsInWishList", - table: "UserBooks", - nullable: false, - defaultValue: false); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "IsInWishList", - table: "UserBooks"); - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.Designer.cs b/LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.Designer.cs deleted file mode 100644 index 75c3af9..0000000 --- a/LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.Designer.cs +++ /dev/null @@ -1,399 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - [Migration("20190516213113_userbook adding is already finished field")] - partial class userbookaddingisalreadyfinishedfield - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.Property("Year"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsAlreadyFinished"); - - b.Property("IsInWishList"); - - b.Property("IsRead"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.cs b/LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.cs deleted file mode 100644 index 1cd07dd..0000000 --- a/LibraryManager.DAL/Migrations/20190516213113_userbook adding is already finished field.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace LibraryManager.DAL.Migrations -{ - public partial class userbookaddingisalreadyfinishedfield : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "IsAlreadyFinished", - table: "UserBooks", - nullable: false, - defaultValue: false); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "IsAlreadyFinished", - table: "UserBooks"); - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190516213949_userbook is reading.Designer.cs b/LibraryManager.DAL/Migrations/20190516213949_userbook is reading.Designer.cs deleted file mode 100644 index 68b0776..0000000 --- a/LibraryManager.DAL/Migrations/20190516213949_userbook is reading.Designer.cs +++ /dev/null @@ -1,399 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - [Migration("20190516213949_userbook is reading")] - partial class userbookisreading - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.Property("Year"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsAlreadyFinished"); - - b.Property("IsInWishList"); - - b.Property("IsReading"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190516213949_userbook is reading.cs b/LibraryManager.DAL/Migrations/20190516213949_userbook is reading.cs deleted file mode 100644 index 6e45cc2..0000000 --- a/LibraryManager.DAL/Migrations/20190516213949_userbook is reading.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace LibraryManager.DAL.Migrations -{ - public partial class userbookisreading : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.RenameColumn( - name: "IsRead", - table: "UserBooks", - newName: "IsReading"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.RenameColumn( - name: "IsReading", - table: "UserBooks", - newName: "IsRead"); - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.Designer.cs b/LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.Designer.cs deleted file mode 100644 index 1974e3b..0000000 --- a/LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.Designer.cs +++ /dev/null @@ -1,401 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - [Migration("20190524101209_Added IsRated field to UserBook table")] - partial class AddedIsRatedfieldtoUserBooktable - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.Property("Year"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsAlreadyFinished"); - - b.Property("IsInWishList"); - - b.Property("IsRated"); - - b.Property("IsReading"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.cs b/LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.cs deleted file mode 100644 index 141d18e..0000000 --- a/LibraryManager.DAL/Migrations/20190524101209_Added IsRated field to UserBook table.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace LibraryManager.DAL.Migrations -{ - public partial class AddedIsRatedfieldtoUserBooktable : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "IsRated", - table: "UserBooks", - nullable: false, - defaultValue: false); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "IsRated", - table: "UserBooks"); - } - } -} diff --git a/LibraryManager.DAL/Migrations/LibraryManagerContextModelSnapshot.cs b/LibraryManager.DAL/Migrations/LibraryManagerContextModelSnapshot.cs deleted file mode 100644 index 53bbf92..0000000 --- a/LibraryManager.DAL/Migrations/LibraryManagerContextModelSnapshot.cs +++ /dev/null @@ -1,399 +0,0 @@ -// -using System; -using LibraryManager.DAL.Context; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace LibraryManager.DAL.Migrations -{ - [DbContext(typeof(LibraryManagerContext))] - partial class LibraryManagerContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Author", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("FirstName"); - - b.Property("LastName"); - - b.Property("NumberOfWrittenBooks"); - - b.HasKey("Id"); - - b.ToTable("Authors"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorId"); - - b.Property("Description"); - - b.Property("NumberOfPages"); - - b.Property("Rating"); - - b.Property("Title"); - - b.Property("Year"); - - b.HasKey("Id"); - - b.HasIndex("AuthorId"); - - b.ToTable("Books"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.Property("BookId"); - - b.Property("GenreId"); - - b.HasKey("BookId", "GenreId"); - - b.HasIndex("GenreId"); - - b.ToTable("BookGenre"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.Property("BookId"); - - b.Property("LanguageId"); - - b.HasKey("BookId", "LanguageId"); - - b.HasIndex("LanguageId"); - - b.ToTable("BookLanguage"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GenreName"); - - b.HasKey("Id"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Language", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageName"); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("FirstName"); - - b.Property("IsBanned"); - - b.Property("LastName"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.Property("UserId") - .ValueGeneratedOnAdd(); - - b.Property("BookId"); - - b.Property("IsAlreadyFinished"); - - b.Property("IsInWishList"); - - b.Property("IsRated"); - - b.Property("IsReading"); - - b.HasKey("UserId", "BookId"); - - b.HasAlternateKey("BookId", "UserId"); - - b.ToTable("UserBooks"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Name") - .HasMaxLength(256); - - b.Property("NormalizedName") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("RoleId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType"); - - b.Property("ClaimValue"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider"); - - b.Property("ProviderKey"); - - b.Property("ProviderDisplayName"); - - b.Property("UserId") - .IsRequired(); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId"); - - b.Property("RoleId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId"); - - b.Property("LoginProvider"); - - b.Property("Name"); - - b.Property("Value"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.Book", b => - { - b.HasOne("LibraryManager.DAL.Entities.Author", "Author") - .WithMany("Books") - .HasForeignKey("AuthorId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookGenre", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Genres") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Genre", "Genre") - .WithMany("Books") - .HasForeignKey("GenreId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.BookLanguage", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Languages") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.Language", "Language") - .WithMany("Books") - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("LibraryManager.DAL.Entities.UserBook", b => - { - b.HasOne("LibraryManager.DAL.Entities.Book", "Book") - .WithMany("Users") - .HasForeignKey("BookId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User", "User") - .WithMany("WishList") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LibraryManager.DAL.Entities.User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LibraryManager.DAL/Repositories/CommentRepository.cs b/LibraryManager.DAL/Repositories/CommentRepository.cs new file mode 100644 index 0000000..43fb63f --- /dev/null +++ b/LibraryManager.DAL/Repositories/CommentRepository.cs @@ -0,0 +1,49 @@ +using LibraryManager.DAL.Context; +using LibraryManager.DAL.Entities; +using LibraryManager.DAL.Interfaces; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace LibraryManager.DAL.Repositories +{ + class CommentRepository: IRepository + { + private readonly LibraryManagerContext _dbContext; + public CommentRepository(LibraryManagerContext dbContext) + { + _dbContext = dbContext; + } + public IEnumerable GetAll() + { + return _dbContext.Comments + .Include(b=>b.Book) + .Include(u=>u.User) + .ToList(); + } + + public Comment Get(int id) + { + return GetAll().FirstOrDefault(x => x.Id==id); + } + + public void Create(Comment comment) + { + _dbContext.Add(comment); + } + + public void Update(Comment comment) + { + _dbContext.Entry(comment).State = EntityState.Modified; + } + + public void Delete(int id) + { + var comment = Get(id); + if (comment != null) + _dbContext.Comments.Remove(comment); + } + } +} diff --git a/LibraryManager.DAL/UnitOfWork.cs b/LibraryManager.DAL/UnitOfWork.cs index c9bf47b..0683acc 100644 --- a/LibraryManager.DAL/UnitOfWork.cs +++ b/LibraryManager.DAL/UnitOfWork.cs @@ -16,6 +16,7 @@ public class UnitOfWork:IUnitOfWork private IRepository bookRepository; private IRepository languageRepository; private IRepository genreRepository; + private IRepository commentRepository; private IManyToManyRepository userBookRepository; private IManyToManyRepository bookGenreRepository { get; set; } @@ -109,6 +110,22 @@ public IRepository GenreRepository } } + public IRepository CommentRepository + { + get + { + if (this.commentRepository == null) + { + this.commentRepository = new CommentRepository(context); + } + return commentRepository; + } + set + { + this.commentRepository = value ?? new CommentRepository(context); + } + } + public IManyToManyRepository UserBookRepository { get diff --git a/LibraryManager.DTO/LibraryManager.DTO.csproj b/LibraryManager.DTO/LibraryManager.DTO.csproj index f2479b1..849d036 100644 --- a/LibraryManager.DTO/LibraryManager.DTO.csproj +++ b/LibraryManager.DTO/LibraryManager.DTO.csproj @@ -8,6 +8,10 @@ + + + + ..\..\..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.viewfeatures\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Mvc.ViewFeatures.dll diff --git a/LibraryManager.DTO/Models/CommentDTO.cs b/LibraryManager.DTO/Models/CommentDTO.cs new file mode 100644 index 0000000..75a91d6 --- /dev/null +++ b/LibraryManager.DTO/Models/CommentDTO.cs @@ -0,0 +1,20 @@ +using LibraryManager.DAL.Entities; +using System; +using System.Collections.Generic; +using System.Text; + +namespace LibraryManager.DTO.Models +{ + public class CommentDTO + { + public int Id; + + public string Name; + + public DateTime Date; + + public User User; + + public int BookId; + } +} diff --git a/LibraryManager.DTO/Models/Manage/LibraryOpenViewModel.cs b/LibraryManager.DTO/Models/Manage/LibraryOpenViewModel.cs index 8adb150..a3a1583 100644 --- a/LibraryManager.DTO/Models/Manage/LibraryOpenViewModel.cs +++ b/LibraryManager.DTO/Models/Manage/LibraryOpenViewModel.cs @@ -1,12 +1,17 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Text; namespace LibraryManager.DTO.Models.Manage { public class LibraryOpenViewModel { + public int BookId { get; set; } public BookDTO BookDTO { get; set; } + public IEnumerable CommentDTO { get; set; } + [Required] + public string newComment { get; set; } public bool IsBookInWishList { get; set; } public bool DoesUserReadsBook { get; set; } public bool IsBookRated { get; set; } diff --git a/LibraryManager/AutoMapperProfiles/MappingProfile.cs b/LibraryManager/AutoMapperProfiles/MappingProfile.cs index a9a07d8..eaf6275 100644 --- a/LibraryManager/AutoMapperProfiles/MappingProfile.cs +++ b/LibraryManager/AutoMapperProfiles/MappingProfile.cs @@ -24,6 +24,7 @@ public MappingProfile() CreateMap().ReverseMap(); CreateMap()/*.ReverseMap()*/; CreateMap(); + CreateMap().ReverseMap(); } } } diff --git a/LibraryManager/Controllers/LibraryController.cs b/LibraryManager/Controllers/LibraryController.cs index e00ba1d..27811f7 100644 --- a/LibraryManager/Controllers/LibraryController.cs +++ b/LibraryManager/Controllers/LibraryController.cs @@ -19,6 +19,7 @@ public class LibraryController : Controller private readonly IBookService _bookService; private readonly IUserService _userService; private readonly IGenreService _genreService; + private readonly ICommentService _commentService; //Temporary @@ -29,7 +30,7 @@ public class LibraryController : Controller private readonly SignInManager _signinManager; public LibraryController(IBookService bookService, IUserService userService, IGenreService genreService, RoleManager roleManager,UserManager userManager, - SignInManagersignInManager, IAdminService adminService) + SignInManagersignInManager, IAdminService adminService,ICommentService commentService) { _bookService = bookService; _userService = userService; @@ -41,7 +42,7 @@ public LibraryController(IBookService bookService, IUserService userService, IGe _roleManager = roleManager; _signinManager = signInManager; _userManager = userManager; - + _commentService = commentService; } public async Task Index() @@ -126,8 +127,10 @@ public IActionResult DecreaseValue() return RedirectToAction("Index"); } + [HttpGet] public IActionResult Open(int id) { + var comment = _commentService.GetByBook(id); var book = _bookService.Find(id); if (book == null) { @@ -150,6 +153,7 @@ public IActionResult Open(int id) var libraryOpenViewModel = new LibraryOpenViewModel { BookDTO = book, + CommentDTO = comment, IsBookInWishList = isBookInWishList, DoesUserReadsBook = doesUserReadsBook, IsBookRated = isBookRated @@ -157,7 +161,27 @@ public IActionResult Open(int id) return View(libraryOpenViewModel); } - public IActionResult OpenByGenre(int id) + [HttpPost] + public IActionResult Open(LibraryOpenViewModel libraryOpenViewModel) + { + if (ModelState.IsValid && !string.IsNullOrEmpty(libraryOpenViewModel.newComment)) + { + var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; + CommentDTO commentDTO = new CommentDTO + { + Name = libraryOpenViewModel.newComment, + Date = DateTime.Now, + User = _userService.GetUser(userId), + BookId = libraryOpenViewModel.BookId + }; + + _commentService.Create(commentDTO); + + } + return RedirectToAction("Open"); + } + + public IActionResult OpenByGenre(int id) { var genre = _genreService.Find(id); if (genre == null) diff --git a/LibraryManager/Startup.cs b/LibraryManager/Startup.cs index cf37b72..b20e205 100644 --- a/LibraryManager/Startup.cs +++ b/LibraryManager/Startup.cs @@ -60,6 +60,7 @@ public void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddAutoMapper(); services.AddMemoryCache(); diff --git a/LibraryManager/Views/Library/Open.cshtml b/LibraryManager/Views/Library/Open.cshtml index bce6b3d..9b4c543 100644 --- a/LibraryManager/Views/Library/Open.cshtml +++ b/LibraryManager/Views/Library/Open.cshtml @@ -127,7 +127,9 @@ +
+

@Model.BookDTO.Title

@@ -162,6 +164,34 @@

@Model.BookDTO.Description

}
+
+
+
+
+
+
+ +
+
+
+ + +
+
+
+ +
+
+ +

Comments

+ @foreach (var comment in Model.CommentDTO) + { +

+ @comment.Name +

+ } + +
diff --git a/LibraryManager/appsettings.Development.json b/LibraryManager/appsettings.Development.json index 89e4859..7475d53 100644 --- a/LibraryManager/appsettings.Development.json +++ b/LibraryManager/appsettings.Development.json @@ -1,12 +1,16 @@ { + //"ConnectionStrings": { + // "DefaultConnection": "Server=SQL6003.site4now.net;Database=DB_A49601_Library;User Id=DB_A49601_Library_admin;password=Aa08081999;Trusted_Connection=False;MultipleActiveResultSets=true;" + //}, "ConnectionStrings": { - "DefaultConnection": "Server=SQL6003.site4now.net;Database=DB_A49601_Library;User Id=DB_A49601_Library_admin;password=Aa08081999;Trusted_Connection=False;MultipleActiveResultSets=true;" + "DefaultConnection": "Server=DESKTOP-CJO5IHL\\SQLEXPRESS;Database=LibraryDevelopment;Trusted_Connection=True;MultipleActiveResultSets=true" + }, - "Logging": { - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } + "Logging": { + "LogLevel": { + "Default": "Debug", + "System": "Information", + "Microsoft": "Information" } } +} diff --git a/LibraryManager/appsettings.json b/LibraryManager/appsettings.json index ad561cb..5f82a23 100644 --- a/LibraryManager/appsettings.json +++ b/LibraryManager/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=.//SQLEXPRESS;Database=LibraryBD;Trusted_Connection=True;MultipleActiveResultSets=true" + "DefaultConnection": "Server=DESKTOP-CJO5IHL\\SQLEXPRESS;Database=Library;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { From 12c08f871250acdfc0aa63b5b43f98a07a60a58d Mon Sep 17 00:00:00 2001 From: Maksym Yaremko Date: Sat, 1 Jun 2019 19:29:42 +0300 Subject: [PATCH 2/3] new view --- LibraryManager/Views/Library/Open.cshtml | 28 +++++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/LibraryManager/Views/Library/Open.cshtml b/LibraryManager/Views/Library/Open.cshtml index 9b4c543..b307c39 100644 --- a/LibraryManager/Views/Library/Open.cshtml +++ b/LibraryManager/Views/Library/Open.cshtml @@ -173,25 +173,41 @@
-
+

Write a comment


- +
-

Comments

+

Comments for the @Model.BookDTO.Title

@foreach (var comment in Model.CommentDTO) { -

- @comment.Name -

+
+ +

+ @comment.Name + @comment.Date +

+
Comment by @comment.User.LastName
+
+
} + + \ No newline at end of file From b1ed7926e6693f060e2bca9b38ba2726f5c441b6 Mon Sep 17 00:00:00 2001 From: Maksym Yaremko Date: Sun, 2 Jun 2019 15:09:59 +0300 Subject: [PATCH 3/3] fixes --- .../Controllers/LibraryController.cs | 14 +++++- LibraryManager/Views/Library/Open.cshtml | 49 ++++++++++--------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/LibraryManager/Controllers/LibraryController.cs b/LibraryManager/Controllers/LibraryController.cs index 27811f7..79a1181 100644 --- a/LibraryManager/Controllers/LibraryController.cs +++ b/LibraryManager/Controllers/LibraryController.cs @@ -197,12 +197,20 @@ public IActionResult OpenByGenre(int id) public IActionResult OpenRandom() { var book = _bookService.GetRandom(); + var comment = _commentService.GetByBook(book.Id); var isBookAlreadyInWishList = false; + var isBookInWishList = false; + var doesUserReadsBook = false; + var isBookRated = false; + if (User != null && User.Identity.IsAuthenticated) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; isBookAlreadyInWishList = _bookService.isBookAlreadyInUserWishList(userId, book.Id); + isBookInWishList = _bookService.isBookAlreadyInUserWishList(userId, book.Id); + doesUserReadsBook = _bookService.DoesUserReadsBook(userId, book.Id); + isBookRated = _bookService.IsBookRated(userId, book.Id); } if (book == null) @@ -213,7 +221,11 @@ public IActionResult OpenRandom() var LibraryOpenViewModel = new LibraryOpenViewModel { BookDTO = book, - IsBookInWishList = isBookAlreadyInWishList + CommentDTO = comment, + IsBookInWishList = isBookAlreadyInWishList, + DoesUserReadsBook = doesUserReadsBook, + IsBookRated = isBookRated, + }; return View("Open", LibraryOpenViewModel); diff --git a/LibraryManager/Views/Library/Open.cshtml b/LibraryManager/Views/Library/Open.cshtml index b307c39..b72f53f 100644 --- a/LibraryManager/Views/Library/Open.cshtml +++ b/LibraryManager/Views/Library/Open.cshtml @@ -167,34 +167,37 @@


-
-
-
- -
-
-

Write a comment

- - -
-
-
- -
-
+ @if (User.Identity.IsAuthenticated) + { +
+
+
+ +
+
+

Write a comment

+ + +
+
+
+ +
+
+ }

Comments for the @Model.BookDTO.Title

@foreach (var comment in Model.CommentDTO) { -
+
-

- @comment.Name - @comment.Date -

-
Comment by @comment.User.LastName
-
-
+

+ @comment.Name + @comment.Date +

+
Comment by @comment.User.LastName
+
+
}