diff --git a/RMuseum/Controllers/TranslationController.cs b/RMuseum/Controllers/TranslationController.cs index f5e34008..74afe41f 100644 --- a/RMuseum/Controllers/TranslationController.cs +++ b/RMuseum/Controllers/TranslationController.cs @@ -4,6 +4,8 @@ using RMuseum.Models.Auth.Memory; using RMuseum.Models.Ganjoor; using RMuseum.Models.Ganjoor.ViewModels; using RMuseum.Services; +using System; +using System.Linq; using System.Net; using System.Threading.Tasks; @@ -59,7 +61,7 @@ namespace RMuseum.Controllers [ProducesResponseType((int)HttpStatusCode.Unauthorized)] public async Task AddLanguageAsync([FromBody] GanjoorLanguage lang) { - var res = await _translationService.AddLanguageAsync(lang.Name, lang.RightToLeft); + var res = await _translationService.AddLanguageAsync(lang); if (!string.IsNullOrEmpty(res.ExceptionString)) return BadRequest(res.ExceptionString); return Ok(res.Result); @@ -148,7 +150,8 @@ namespace RMuseum.Controllers [ProducesResponseType((int)HttpStatusCode.Unauthorized)] public async Task AddOrUpdatePoemTranslation([FromBody] GanjoorPoemTranslationViewModel translation) { - var res = await _translationService.AddOrUpdatePoemTranslation(translation); + Guid userId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value); + var res = await _translationService.AddPoemTranslation(userId, translation); if (!string.IsNullOrEmpty(res.ExceptionString)) return BadRequest(res.ExceptionString); return Ok(res.Result); diff --git a/RMuseum/DbContext/RMuseumDbContext.cs b/RMuseum/DbContext/RMuseumDbContext.cs index f6bfaad4..9c8a7a8a 100644 --- a/RMuseum/DbContext/RMuseumDbContext.cs +++ b/RMuseum/DbContext/RMuseumDbContext.cs @@ -120,19 +120,11 @@ namespace RMuseum.DbContext .HasIndex(m => m.Name) .IsUnique(); - builder.Entity() - .HasIndex(t => new { t.LanguageId, t.PoemId }) - .IsUnique(); - builder.Entity() .HasOne(e => e.Language) .WithMany() .OnDelete(DeleteBehavior.NoAction); - builder.Entity() - .HasIndex(t => new { t.LanguageId, t.VerseId }) - .IsUnique(); - //Index set suggested by SQL Server Tuning Wizard -- end @@ -347,10 +339,6 @@ namespace RMuseum.DbContext /// poem translations /// public DbSet PoemTranslations { get; set; } - - /// - /// verse translations - /// - public DbSet VerseTranslations { get; set; } + } } diff --git a/RMuseum/Migrations/20210911151701_Translations.Designer.cs b/RMuseum/Migrations/20210911151701_Translations.Designer.cs deleted file mode 100644 index a4f90674..00000000 --- a/RMuseum/Migrations/20210911151701_Translations.Designer.cs +++ /dev/null @@ -1,3018 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using RMuseum.DbContext; - -namespace RMuseum.Migrations -{ - [DbContext(typeof(RMuseumDbContext))] - [Migration("20210911151701_Translations")] - partial class Translations - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("ProductVersion", "5.0.6") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("RoleId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderKey") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderDisplayName") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("RoleId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("RMuseum.Models.Accounting.DonationExpenditure", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Amount") - .HasColumnType("decimal(18,2)"); - - b.Property("GanjoorDonationId") - .HasColumnType("int"); - - b.Property("GanjoorExpenseId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("GanjoorDonationId"); - - b.HasIndex("GanjoorExpenseId"); - - b.ToTable("DonationExpenditure"); - }); - - modelBuilder.Entity("RMuseum.Models.Accounting.GanjoorDonation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Amount") - .HasColumnType("decimal(18,2)"); - - b.Property("AmountString") - .HasColumnType("nvarchar(max)"); - - b.Property("DateString") - .HasColumnType("nvarchar(max)"); - - b.Property("DonorLink") - .HasColumnType("nvarchar(max)"); - - b.Property("DonorName") - .HasColumnType("nvarchar(max)"); - - b.Property("ExpenditureDesc") - .HasColumnType("nvarchar(max)"); - - b.Property("ImportedRecord") - .HasColumnType("bit"); - - b.Property("RecordDate") - .HasColumnType("datetime2"); - - b.Property("Remaining") - .HasColumnType("decimal(18,2)"); - - b.Property("Unit") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GanjoorDonations"); - }); - - modelBuilder.Entity("RMuseum.Models.Accounting.GanjoorExpense", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Amount") - .HasColumnType("decimal(18,2)"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("ExpenseDate") - .HasColumnType("datetime2"); - - b.Property("Unit") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GanjoorExpenses"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("CoverImageIndex") - .HasColumnType("int"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("NameInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("RArtifactMasterRecordId", "FriendlyUrl") - .IsUnique() - .HasFilter("[FriendlyUrl] IS NOT NULL"); - - b.HasIndex("RArtifactMasterRecordId", "Order") - .IsUnique(); - - b.ToTable("Items"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("CoverImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("CoverItemIndex") - .HasColumnType("int"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); - - b.Property("ItemCount") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("NameInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("CoverImageId"); - - b.HasIndex("FriendlyUrl") - .IsUnique() - .HasFilter("[FriendlyUrl] IS NOT NULL"); - - b.HasIndex("LastModified"); - - b.HasIndex("CoverItemIndex", "Status"); - - b.ToTable("Artifacts"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTag", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); - - b.Property("GlobalValue") - .HasColumnType("bit"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("NameInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("PluralName") - .HasColumnType("nvarchar(max)"); - - b.Property("PluralNameInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("TagType") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("FriendlyUrl"); - - b.ToTable("Tags"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("RTagId") - .HasColumnType("uniqueidentifier"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.Property("ValueInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("ValueSupplement") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("FriendlyUrl"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasIndex("RArtifactMasterRecordId"); - - b.HasIndex("RTagId"); - - b.ToTable("TagValues"); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Note") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("RBookmarkType") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasIndex("RArtifactMasterRecordId"); - - b.ToTable("UserBookmarks"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b => - { - b.Property("Id") - .HasColumnType("int"); - - b.Property("FullUrl") - .HasColumnType("nvarchar(450)"); - - b.Property("ParentId") - .HasColumnType("int"); - - b.Property("PoetId") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("FullUrl"); - - b.HasIndex("PoetId"); - - b.HasIndex("ParentId", "PoetId") - .HasAnnotation("SqlServer:Include", new[] { "Id" }); - - b.ToTable("GanjoorCategories"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorComment", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AuthorEmail") - .HasColumnType("nvarchar(max)"); - - b.Property("AuthorIpAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("AuthorName") - .HasColumnType("nvarchar(max)"); - - b.Property("AuthorUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("CommentDate") - .HasColumnType("datetime2"); - - b.Property("CoupletIndex") - .HasColumnType("int"); - - b.Property("HtmlComment") - .HasColumnType("nvarchar(max)"); - - b.Property("InReplyToId") - .HasColumnType("int"); - - b.Property("PoemId") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Verse12d") - .HasColumnType("int"); - - b.Property("Verse1Id") - .HasColumnType("int"); - - b.Property("Verse2Id") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("CommentDate"); - - b.HasIndex("InReplyToId"); - - b.HasIndex("PoemId"); - - b.HasIndex("Status"); - - b.HasIndex("UserId"); - - b.HasIndex("Verse1Id"); - - b.HasIndex("Verse2Id"); - - b.ToTable("GanjoorComments"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCommentAbuseReport", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GanjoorCommentId") - .HasColumnType("int"); - - b.Property("ReasonCode") - .HasColumnType("nvarchar(max)"); - - b.Property("ReasonText") - .HasColumnType("nvarchar(max)"); - - b.Property("ReportedById") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("GanjoorCommentId"); - - b.HasIndex("ReportedById"); - - b.ToTable("GanjoorReportedComments"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorHealthCheckError", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("BrokenLink") - .HasColumnType("bit"); - - b.Property("MulipleTargets") - .HasColumnType("bit"); - - b.Property("ReferrerPageUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("TargetUrl") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GanjoorHealthCheckErrors"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorLanguage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("RightToLeft") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .IsUnique() - .HasFilter("[Name] IS NOT NULL"); - - b.ToTable("GanjoorLanguages"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorMetre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("Rhythm") - .HasColumnType("nvarchar(max)"); - - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); - - b.Property("VerseCount") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.ToTable("GanjoorMetres"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPage", b => - { - b.Property("Id") - .HasColumnType("int"); - - b.Property("CatId") - .HasColumnType("int"); - - b.Property("FullTitle") - .HasColumnType("nvarchar(max)"); - - b.Property("FullUrl") - .HasColumnType("nvarchar(450)"); - - b.Property("GanjoorPageType") - .HasColumnType("int"); - - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); - - b.Property("PageOrder") - .HasColumnType("int"); - - b.Property("ParentId") - .HasColumnType("int"); - - b.Property("PoemId") - .HasColumnType("int"); - - b.Property("PoetId") - .HasColumnType("int"); - - b.Property("PostDate") - .HasColumnType("datetime2"); - - b.Property("Published") - .HasColumnType("bit"); - - b.Property("SecondPoetId") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("CatId"); - - b.HasIndex("FullUrl"); - - b.HasIndex("ParentId"); - - b.HasIndex("PoemId"); - - b.HasIndex("PoetId"); - - b.HasIndex("SecondPoetId"); - - b.ToTable("GanjoorPages"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPageSnapshot", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GanjoorPageId") - .HasColumnType("int"); - - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); - - b.Property("MadeObsoleteByUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Note") - .HasColumnType("nvarchar(max)"); - - b.Property("OldTag") - .HasColumnType("nvarchar(max)"); - - b.Property("OldTagPageUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("RecordDate") - .HasColumnType("datetime2"); - - b.Property("RhymeLetters") - .HasColumnType("nvarchar(max)"); - - b.Property("Rhythm") - .HasColumnType("nvarchar(max)"); - - b.Property("SourceName") - .HasColumnType("nvarchar(max)"); - - b.Property("SourceUrlSlug") - .HasColumnType("nvarchar(max)"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("GanjoorPageId"); - - b.HasIndex("MadeObsoleteByUserId"); - - b.ToTable("GanjoorPageSnapshots"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b => - { - b.Property("Id") - .HasColumnType("int"); - - b.Property("CatId") - .HasColumnType("int"); - - b.Property("FullTitle") - .HasColumnType("nvarchar(max)"); - - b.Property("FullUrl") - .HasColumnType("nvarchar(450)"); - - b.Property("GanjoorMetreId") - .HasColumnType("int"); - - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); - - b.Property("OldTag") - .HasColumnType("nvarchar(max)"); - - b.Property("OldTagPageUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("PlainText") - .HasColumnType("nvarchar(max)"); - - b.Property("RhymeLetters") - .HasColumnType("nvarchar(max)"); - - b.Property("SourceName") - .HasColumnType("nvarchar(max)"); - - b.Property("SourceUrlSlug") - .HasColumnType("nvarchar(max)"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("CatId"); - - b.HasIndex("FullUrl"); - - b.HasIndex("GanjoorMetreId"); - - b.HasIndex("Id"); - - b.ToTable("GanjoorPoems"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AffectedThePoem") - .HasColumnType("bit"); - - b.Property("ApplicationOrder") - .HasColumnType("int"); - - b.Property("Date") - .HasColumnType("datetime2"); - - b.Property("Note") - .HasColumnType("nvarchar(max)"); - - b.Property("OriginalRhythm") - .HasColumnType("nvarchar(max)"); - - b.Property("OriginalTitle") - .HasColumnType("nvarchar(max)"); - - b.Property("PoemId") - .HasColumnType("int"); - - b.Property("Result") - .HasColumnType("int"); - - b.Property("ReviewDate") - .HasColumnType("datetime2"); - - b.Property("ReviewNote") - .HasColumnType("nvarchar(max)"); - - b.Property("Reviewed") - .HasColumnType("bit"); - - b.Property("ReviewerUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Rhythm") - .HasColumnType("nvarchar(max)"); - - b.Property("RhythmResult") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("PoemId"); - - b.HasIndex("ReviewerUserId"); - - b.HasIndex("UserId"); - - b.ToTable("GanjoorPoemCorrections"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemTranslation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageId") - .HasColumnType("int"); - - b.Property("PoemId") - .HasColumnType("int"); - - b.Property("Published") - .HasColumnType("bit"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("PoemId"); - - b.HasIndex("LanguageId", "PoemId") - .IsUnique(); - - b.ToTable("PoemTranslations"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoet", b => - { - b.Property("Id") - .HasColumnType("int"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("Nickname") - .HasColumnType("nvarchar(max)"); - - b.Property("Published") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.HasIndex("Published", "Id") - .HasAnnotation("SqlServer:Include", new[] { "Name", "Nickname", "RImageId" }); - - b.ToTable("GanjoorPoets"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorSiteBanner", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Active") - .HasColumnType("bit"); - - b.Property("AlternateText") - .HasColumnType("nvarchar(max)"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("TargetUrl") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("GanjoorSiteBanners"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("PoemId") - .HasColumnType("int"); - - b.Property("Text") - .HasColumnType("nvarchar(max)"); - - b.Property("VOrder") - .HasColumnType("int"); - - b.Property("VersePosition") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("PoemId"); - - b.ToTable("GanjoorVerses"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseTranslation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageId") - .HasColumnType("int"); - - b.Property("TText") - .HasColumnType("nvarchar(max)"); - - b.Property("VerseId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("VerseId"); - - b.HasIndex("LanguageId", "VerseId") - .IsUnique(); - - b.ToTable("VerseTranslations"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseVOrderText", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("GanjoorPoemCorrectionId") - .HasColumnType("int"); - - b.Property("OriginalText") - .HasColumnType("nvarchar(max)"); - - b.Property("Result") - .HasColumnType("int"); - - b.Property("ReviewNote") - .HasColumnType("nvarchar(max)"); - - b.Property("Text") - .HasColumnType("nvarchar(max)"); - - b.Property("VORder") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("GanjoorPoemCorrectionId"); - - b.ToTable("GanjoorVerseVOrderText"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.PoemMusicTrack", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AlbumName") - .HasColumnType("nvarchar(max)"); - - b.Property("AlbumUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("ApprovalDate") - .HasColumnType("datetime2"); - - b.Property("Approved") - .HasColumnType("bit"); - - b.Property("ArtistName") - .HasColumnType("nvarchar(max)"); - - b.Property("ArtistUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("BrokenLink") - .HasColumnType("bit"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("GanjoorTrackId") - .HasColumnType("int"); - - b.Property("GolhaTrackId") - .HasColumnType("int"); - - b.Property("PoemId") - .HasColumnType("int"); - - b.Property("Rejected") - .HasColumnType("bit"); - - b.Property("RejectionCause") - .HasColumnType("nvarchar(max)"); - - b.Property("SingerId") - .HasColumnType("int"); - - b.Property("SongOrder") - .HasColumnType("int"); - - b.Property("SuggestedById") - .HasColumnType("uniqueidentifier"); - - b.Property("TrackName") - .HasColumnType("nvarchar(max)"); - - b.Property("TrackType") - .HasColumnType("int"); - - b.Property("TrackUrl") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("GanjoorTrackId"); - - b.HasIndex("GolhaTrackId"); - - b.HasIndex("PoemId"); - - b.HasIndex("SingerId"); - - b.HasIndex("SuggestedById"); - - b.HasIndex("Approved", "Rejected"); - - b.ToTable("GanjoorPoemMusicTracks"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.Recitation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AudioArtist") - .HasColumnType("nvarchar(max)"); - - b.Property("AudioArtistUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("AudioOrder") - .HasColumnType("int"); - - b.Property("AudioSrc") - .HasColumnType("nvarchar(max)"); - - b.Property("AudioSrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("AudioSyncStatus") - .HasColumnType("int"); - - b.Property("AudioTitle") - .HasColumnType("nvarchar(max)"); - - b.Property("FileLastUpdated") - .HasColumnType("datetime2"); - - b.Property("FileNameWithoutExtension") - .HasColumnType("nvarchar(max)"); - - b.Property("GanjoorAudioId") - .HasColumnType("int"); - - b.Property("GanjoorPostId") - .HasColumnType("int"); - - b.Property("LegacyAudioGuid") - .HasColumnType("uniqueidentifier"); - - b.Property("LocalMp3FilePath") - .HasColumnType("nvarchar(max)"); - - b.Property("LocalXmlFilePath") - .HasColumnType("nvarchar(max)"); - - b.Property("Mp3FileCheckSum") - .HasColumnType("nvarchar(max)"); - - b.Property("Mp3SizeInBytes") - .HasColumnType("int"); - - b.Property("OggSizeInBytes") - .HasColumnType("int"); - - b.Property("OwnerId") - .HasColumnType("uniqueidentifier"); - - b.Property("ReviewDate") - .HasColumnType("datetime2"); - - b.Property("ReviewMsg") - .HasColumnType("nvarchar(max)"); - - b.Property("ReviewStatus") - .HasColumnType("int"); - - b.Property("ReviewerId") - .HasColumnType("uniqueidentifier"); - - b.Property("SoundFilesFolder") - .HasColumnType("nvarchar(max)"); - - b.Property("UploadDate") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("GanjoorAudioId"); - - b.HasIndex("GanjoorPostId"); - - b.HasIndex("OwnerId"); - - b.HasIndex("ReviewerId"); - - b.HasIndex("ReviewStatus", "GanjoorPostId"); - - b.ToTable("Recitations"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.RecitationPublishingTracker", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("FinishDate") - .HasColumnType("datetime2"); - - b.Property("Finished") - .HasColumnType("bit"); - - b.Property("FirstDbUpdated") - .HasColumnType("bit"); - - b.Property("LastException") - .HasColumnType("nvarchar(max)"); - - b.Property("Mp3FileCopied") - .HasColumnType("bit"); - - b.Property("PoemNarrationId") - .HasColumnType("int"); - - b.Property("SecondDbUpdated") - .HasColumnType("bit"); - - b.Property("StartDate") - .HasColumnType("datetime2"); - - b.Property("XmlFileCopied") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("PoemNarrationId"); - - b.ToTable("RecitationPublishingTrackers"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserRecitationProfile", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ArtistName") - .HasColumnType("nvarchar(max)"); - - b.Property("ArtistUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("AudioSrc") - .HasColumnType("nvarchar(max)"); - - b.Property("AudioSrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("FileSuffixWithoutDash") - .HasColumnType("nvarchar(max)"); - - b.Property("IsDefault") - .HasColumnType("bit"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserRecitationProfiles"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ArtifactId") - .HasColumnType("uniqueidentifier"); - - b.Property("DisplayOnPage") - .HasColumnType("bit"); - - b.Property("GanjoorPostId") - .HasColumnType("int"); - - b.Property("GanjoorTitle") - .HasColumnType("nvarchar(max)"); - - b.Property("GanjoorUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("ItemId") - .HasColumnType("uniqueidentifier"); - - b.Property("LinkToOriginalSource") - .HasColumnType("bit"); - - b.Property("OriginalSourceUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("ReviewDate") - .HasColumnType("datetime2"); - - b.Property("ReviewResult") - .HasColumnType("int"); - - b.Property("ReviewerId") - .HasColumnType("uniqueidentifier"); - - b.Property("SuggestedById") - .HasColumnType("uniqueidentifier"); - - b.Property("SuggestionDate") - .HasColumnType("datetime2"); - - b.Property("Synchronized") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("ArtifactId"); - - b.HasIndex("ItemId"); - - b.HasIndex("ReviewerId"); - - b.HasIndex("SuggestedById"); - - b.ToTable("GanjoorLinks"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AltText") - .HasColumnType("nvarchar(max)"); - - b.Property("ArtifactId") - .HasColumnType("uniqueidentifier"); - - b.Property("GanjoorPostId") - .HasColumnType("int"); - - b.Property("GanjoorTitle") - .HasColumnType("nvarchar(max)"); - - b.Property("GanjoorUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("ItemId") - .HasColumnType("uniqueidentifier"); - - b.Property("LinkType") - .HasColumnType("int"); - - b.Property("PinterestImageUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("PinterestUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("ReviewDate") - .HasColumnType("datetime2"); - - b.Property("ReviewDesc") - .HasColumnType("nvarchar(max)"); - - b.Property("ReviewResult") - .HasColumnType("int"); - - b.Property("ReviewerId") - .HasColumnType("uniqueidentifier"); - - b.Property("SuggestedById") - .HasColumnType("uniqueidentifier"); - - b.Property("SuggestionDate") - .HasColumnType("datetime2"); - - b.Property("Synchronized") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("ArtifactId"); - - b.HasIndex("ItemId"); - - b.HasIndex("ReviewerId"); - - b.HasIndex("SuggestedById"); - - b.ToTable("PinterestLinks"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ArtifactId") - .HasColumnType("uniqueidentifier"); - - b.Property("EndTime") - .HasColumnType("datetime2"); - - b.Property("Exception") - .HasColumnType("nvarchar(max)"); - - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("JobType") - .HasColumnType("int"); - - b.Property("ProgressPercent") - .HasColumnType("decimal(18,2)"); - - b.Property("QueueTime") - .HasColumnType("datetime2"); - - b.Property("ResourceNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("SrcContent") - .HasColumnType("nvarchar(max)"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("StartTime") - .HasColumnType("datetime2"); - - b.Property("Status") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ArtifactId"); - - b.ToTable("ImportJobs"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorAlbum", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("SingerId") - .HasColumnType("int"); - - b.Property("Url") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("SingerId"); - - b.ToTable("GanjoorAlbum"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorSinger", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Url") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("Name"); - - b.HasIndex("RImageId"); - - b.ToTable("GanjoorSingers"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorTrack", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("AlbumId") - .HasColumnType("int"); - - b.Property("BlockReason") - .HasColumnType("nvarchar(max)"); - - b.Property("Blocked") - .HasColumnType("bit"); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("Url") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("AlbumId"); - - b.HasIndex("Name"); - - b.ToTable("GanjoorMusicCatalogueTracks"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaCollection", b => - { - b.Property("Id") - .HasColumnType("int"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GolhaCollections"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaProgram", b => - { - b.Property("Id") - .HasColumnType("int"); - - b.Property("GolhaCollectionId") - .HasColumnType("int"); - - b.Property("Mp3") - .HasColumnType("nvarchar(max)"); - - b.Property("ProgramOrder") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("Url") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("GolhaCollectionId"); - - b.ToTable("GolhaPrograms"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaTrack", b => - { - b.Property("Id") - .HasColumnType("int"); - - b.Property("BlockReason") - .HasColumnType("nvarchar(max)"); - - b.Property("Blocked") - .HasColumnType("bit"); - - b.Property("GolhaProgramId") - .HasColumnType("int"); - - b.Property("SingerId") - .HasColumnType("int"); - - b.Property("Timing") - .HasColumnType("nvarchar(max)"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TrackNo") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("GolhaProgramId"); - - b.HasIndex("SingerId"); - - b.ToTable("GolhaTracks"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("HtmlContent") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("Modified") - .HasColumnType("bit"); - - b.Property("NoteType") - .HasColumnType("int"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("ReferenceNoteId") - .HasColumnType("uniqueidentifier"); - - b.Property("Status") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasIndex("RArtifactMasterRecordId"); - - b.HasIndex("ReferenceNoteId"); - - b.ToTable("UserNotes"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ProcessEndTime") - .HasColumnType("datetime2"); - - b.Property("ProcessProgress") - .HasColumnType("int"); - - b.Property("ProcessStartTime") - .HasColumnType("datetime2"); - - b.Property("SessionType") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("UploadEndTime") - .HasColumnType("datetime2"); - - b.Property("UploadStartTime") - .HasColumnType("datetime2"); - - b.Property("UseId") - .HasColumnType("uniqueidentifier"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UploadSessions"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentDisposition") - .HasColumnType("nvarchar(max)"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("FileName") - .HasColumnType("nvarchar(max)"); - - b.Property("FilePath") - .HasColumnType("nvarchar(max)"); - - b.Property("Length") - .HasColumnType("bigint"); - - b.Property("MP3FileCheckSum") - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("ProcessResult") - .HasColumnType("bit"); - - b.Property("ProcessResultMsg") - .HasColumnType("nvarchar(max)"); - - b.Property("UploadSessionId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UploadSessionId"); - - b.ToTable("UploadedFiles"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Audit.Db.REvent", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("Duration") - .HasColumnType("int"); - - b.Property("EndDate") - .HasColumnType("datetime2"); - - b.Property("EventType") - .HasColumnType("nvarchar(max)"); - - b.Property("IpAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("JsonData") - .HasColumnType("nvarchar(max)"); - - b.Property("RequestUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("ResponseStatusCode") - .HasColumnType("int"); - - b.Property("StartDate") - .HasColumnType("datetime2"); - - b.Property("UserName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("AuditLogs"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.BannedEmail", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("BannedEmails"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AccessFailedCount") - .HasColumnType("int"); - - b.Property("Bio") - .HasColumnType("nvarchar(max)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("LockoutMessage") - .HasColumnType("nvarchar(max)"); - - b.Property("NickName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("ScreenName") - .HasColumnType("nvarchar(max)"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("Website") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RUserBehaviourLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserBehaviourLogs"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Generic.Db.RGenericOption", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId", "Name") - .IsUnique() - .HasFilter("[RAppUserId] IS NOT NULL AND [Name] IS NOT NULL"); - - b.ToTable("Options"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Generic.Db.RLongRunningJobStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("EndTime") - .HasColumnType("datetime2"); - - b.Property("Exception") - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasColumnType("nvarchar(max)"); - - b.Property("Progress") - .HasColumnType("float"); - - b.Property("StartTime") - .HasColumnType("datetime2"); - - b.Property("Step") - .HasColumnType("nvarchar(max)"); - - b.Property("Succeeded") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("LongRunningJobs"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Notification.RUserNotification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Subject") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Notifications"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Accounting.DonationExpenditure", b => - { - b.HasOne("RMuseum.Models.Accounting.GanjoorDonation", "GanjoorDonation") - .WithMany() - .HasForeignKey("GanjoorDonationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Accounting.GanjoorExpense", null) - .WithMany("DonationExpenditures") - .HasForeignKey("GanjoorExpenseId"); - - b.Navigation("GanjoorDonation"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CoverImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("RTag"); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.Navigation("RAppUser"); - - b.Navigation("RArtifactItemRecord"); - - b.Navigation("RArtifactMasterRecord"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Parent") - .WithMany() - .HasForeignKey("ParentId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") - .WithMany() - .HasForeignKey("PoetId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Parent"); - - b.Navigation("Poet"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorComment", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorComment", "InReplyTo") - .WithMany() - .HasForeignKey("InReplyToId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse1") - .WithMany() - .HasForeignKey("Verse1Id"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse2") - .WithMany() - .HasForeignKey("Verse2Id"); - - b.Navigation("InReplyTo"); - - b.Navigation("Poem"); - - b.Navigation("User"); - - b.Navigation("Verse1"); - - b.Navigation("Verse2"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCommentAbuseReport", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorComment", "GanjoorComment") - .WithMany() - .HasForeignKey("GanjoorCommentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "ReportedBy") - .WithMany() - .HasForeignKey("ReportedById"); - - b.Navigation("GanjoorComment"); - - b.Navigation("ReportedBy"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPage", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") - .WithMany() - .HasForeignKey("CatId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPage", "Parent") - .WithMany() - .HasForeignKey("ParentId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") - .WithMany() - .HasForeignKey("PoetId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "SecondPoet") - .WithMany() - .HasForeignKey("SecondPoetId"); - - b.Navigation("Cat"); - - b.Navigation("Parent"); - - b.Navigation("Poem"); - - b.Navigation("Poet"); - - b.Navigation("SecondPoet"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPageSnapshot", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPage", "GanjoorPage") - .WithMany() - .HasForeignKey("GanjoorPageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "MadeObsoleteByUser") - .WithMany() - .HasForeignKey("MadeObsoleteByUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("GanjoorPage"); - - b.Navigation("MadeObsoleteByUser"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") - .WithMany() - .HasForeignKey("CatId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorMetre", "GanjoorMetre") - .WithMany() - .HasForeignKey("GanjoorMetreId"); - - b.Navigation("Cat"); - - b.Navigation("GanjoorMetre"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "ReviewerUser") - .WithMany() - .HasForeignKey("ReviewerUserId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Poem"); - - b.Navigation("ReviewerUser"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemTranslation", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoemTranslation", "Language") - .WithMany() - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Language"); - - b.Navigation("Poem"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoet", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - - b.Navigation("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorSiteBanner", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Poem"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseTranslation", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorLanguage", "Language") - .WithMany() - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse") - .WithMany() - .HasForeignKey("VerseId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Language"); - - b.Navigation("Verse"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseVOrderText", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", null) - .WithMany("VerseOrderText") - .HasForeignKey("GanjoorPoemCorrectionId"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.PoemMusicTrack", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorTrack", "GanjoorTrack") - .WithMany() - .HasForeignKey("GanjoorTrackId"); - - b.HasOne("RMuseum.Models.MusicCatalogue.GolhaTrack", "GolhaTrack") - .WithMany() - .HasForeignKey("GolhaTrackId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") - .WithMany() - .HasForeignKey("SingerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - - b.Navigation("GanjoorTrack"); - - b.Navigation("GolhaTrack"); - - b.Navigation("Poem"); - - b.Navigation("Singer"); - - b.Navigation("SuggestedBy"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.Recitation", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.Navigation("Owner"); - - b.Navigation("Reviewer"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.RecitationPublishingTracker", b => - { - b.HasOne("RMuseum.Models.GanjoorAudio.Recitation", "PoemNarration") - .WithMany() - .HasForeignKey("PoemNarrationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("PoemNarration"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserRecitationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Artifact"); - - b.Navigation("Item"); - - b.Navigation("Reviewer"); - - b.Navigation("SuggestedBy"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - - b.Navigation("Artifact"); - - b.Navigation("Item"); - - b.Navigation("Reviewer"); - - b.Navigation("SuggestedBy"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.Navigation("Artifact"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorAlbum", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") - .WithMany("Albums") - .HasForeignKey("SingerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Singer"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorSinger", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - - b.Navigation("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorTrack", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorAlbum", "Album") - .WithMany("Tracks") - .HasForeignKey("AlbumId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Album"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaProgram", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GolhaCollection", "GolhaCollection") - .WithMany("Programs") - .HasForeignKey("GolhaCollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("GolhaCollection"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaTrack", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GolhaProgram", "GolhaProgram") - .WithMany("Tracks") - .HasForeignKey("GolhaProgramId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") - .WithMany() - .HasForeignKey("SingerId"); - - b.Navigation("GolhaProgram"); - - b.Navigation("Singer"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - - b.Navigation("RAppUser"); - - b.Navigation("RArtifactItemRecord"); - - b.Navigation("RArtifactMasterRecord"); - - b.Navigation("ReferenceNote"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - - b.Navigation("RImage"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("RImage"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("RAppUser"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RUserBehaviourLog", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Generic.Db.RGenericOption", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId"); - - b.Navigation("RAppUser"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.Accounting.GanjoorExpense", b => - { - b.Navigation("DonationExpenditures"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.Navigation("Images"); - - b.Navigation("Tags"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.Navigation("Items"); - - b.Navigation("Tags"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", b => - { - b.Navigation("VerseOrderText"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorAlbum", b => - { - b.Navigation("Tracks"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorSinger", b => - { - b.Navigation("Albums"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaCollection", b => - { - b.Navigation("Programs"); - }); - - modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaProgram", b => - { - b.Navigation("Tracks"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.Navigation("UploadedFiles"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppRole", b => - { - b.Navigation("Permissions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20210911151701_Translations.cs b/RMuseum/Migrations/20210911151701_Translations.cs deleted file mode 100644 index 596a2fac..00000000 --- a/RMuseum/Migrations/20210911151701_Translations.cs +++ /dev/null @@ -1,119 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class Translations : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "GanjoorLanguages", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - Name = table.Column(type: "nvarchar(450)", nullable: true), - RightToLeft = table.Column(type: "bit", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_GanjoorLanguages", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "PoemTranslations", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - LanguageId = table.Column(type: "int", nullable: false), - PoemId = table.Column(type: "int", nullable: false), - Title = table.Column(type: "nvarchar(max)", nullable: true), - Published = table.Column(type: "bit", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_PoemTranslations", x => x.Id); - table.ForeignKey( - name: "FK_PoemTranslations_GanjoorPoems_PoemId", - column: x => x.PoemId, - principalTable: "GanjoorPoems", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_PoemTranslations_PoemTranslations_LanguageId", - column: x => x.LanguageId, - principalTable: "PoemTranslations", - principalColumn: "Id"); - }); - - migrationBuilder.CreateTable( - name: "VerseTranslations", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - VerseId = table.Column(type: "int", nullable: false), - LanguageId = table.Column(type: "int", nullable: false), - TText = table.Column(type: "nvarchar(max)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_VerseTranslations", x => x.Id); - table.ForeignKey( - name: "FK_VerseTranslations_GanjoorLanguages_LanguageId", - column: x => x.LanguageId, - principalTable: "GanjoorLanguages", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_VerseTranslations_GanjoorVerses_VerseId", - column: x => x.VerseId, - principalTable: "GanjoorVerses", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_GanjoorLanguages_Name", - table: "GanjoorLanguages", - column: "Name", - unique: true, - filter: "[Name] IS NOT NULL"); - - migrationBuilder.CreateIndex( - name: "IX_PoemTranslations_LanguageId_PoemId", - table: "PoemTranslations", - columns: new[] { "LanguageId", "PoemId" }, - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_PoemTranslations_PoemId", - table: "PoemTranslations", - column: "PoemId"); - - migrationBuilder.CreateIndex( - name: "IX_VerseTranslations_LanguageId_VerseId", - table: "VerseTranslations", - columns: new[] { "LanguageId", "VerseId" }, - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_VerseTranslations_VerseId", - table: "VerseTranslations", - column: "VerseId"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "PoemTranslations"); - - migrationBuilder.DropTable( - name: "VerseTranslations"); - - migrationBuilder.DropTable( - name: "GanjoorLanguages"); - } - } -} diff --git a/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs b/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs index e10d4305..aa53e4bb 100644 --- a/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs +++ b/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs @@ -20,2996 +20,2881 @@ namespace RMuseum.Migrations .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); - b.Property("RoleId") - .HasColumnType("uniqueidentifier"); + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RoleId"); + b.HasIndex("RoleId"); - b.ToTable("AspNetRoleClaims"); - }); + b.ToTable("AspNetRoleClaims"); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("AspNetUserClaims"); - }); + b.ToTable("AspNetUserClaims"); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); - b.Property("ProviderKey") - .HasColumnType("nvarchar(450)"); + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); - b.Property("ProviderDisplayName") - .HasColumnType("nvarchar(max)"); + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.HasKey("LoginProvider", "ProviderKey"); + b.HasKey("LoginProvider", "ProviderKey"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("AspNetUserLogins"); - }); + b.ToTable("AspNetUserLogins"); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.Property("RoleId") - .HasColumnType("uniqueidentifier"); + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); - b.HasKey("UserId", "RoleId"); + b.HasKey("UserId", "RoleId"); - b.HasIndex("RoleId"); + b.HasIndex("RoleId"); - b.ToTable("AspNetUserRoles"); - }); + b.ToTable("AspNetUserRoles"); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); - b.Property("Name") - .HasColumnType("nvarchar(450)"); + b.Property("Name") + .HasColumnType("nvarchar(450)"); - b.Property("Value") - .HasColumnType("nvarchar(max)"); + b.Property("Value") + .HasColumnType("nvarchar(max)"); - b.HasKey("UserId", "LoginProvider", "Name"); + b.HasKey("UserId", "LoginProvider", "Name"); - b.ToTable("AspNetUserTokens"); - }); + b.ToTable("AspNetUserTokens"); + }); modelBuilder.Entity("RMuseum.Models.Accounting.DonationExpenditure", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Amount") - .HasColumnType("decimal(18,2)"); + b.Property("Amount") + .HasColumnType("decimal(18,2)"); - b.Property("GanjoorDonationId") - .HasColumnType("int"); + b.Property("GanjoorDonationId") + .HasColumnType("int"); - b.Property("GanjoorExpenseId") - .HasColumnType("int"); + b.Property("GanjoorExpenseId") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GanjoorDonationId"); + b.HasIndex("GanjoorDonationId"); - b.HasIndex("GanjoorExpenseId"); + b.HasIndex("GanjoorExpenseId"); - b.ToTable("DonationExpenditure"); - }); + b.ToTable("DonationExpenditure"); + }); modelBuilder.Entity("RMuseum.Models.Accounting.GanjoorDonation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Amount") - .HasColumnType("decimal(18,2)"); + b.Property("Amount") + .HasColumnType("decimal(18,2)"); - b.Property("AmountString") - .HasColumnType("nvarchar(max)"); + b.Property("AmountString") + .HasColumnType("nvarchar(max)"); - b.Property("DateString") - .HasColumnType("nvarchar(max)"); + b.Property("DateString") + .HasColumnType("nvarchar(max)"); - b.Property("DonorLink") - .HasColumnType("nvarchar(max)"); + b.Property("DonorLink") + .HasColumnType("nvarchar(max)"); - b.Property("DonorName") - .HasColumnType("nvarchar(max)"); + b.Property("DonorName") + .HasColumnType("nvarchar(max)"); - b.Property("ExpenditureDesc") - .HasColumnType("nvarchar(max)"); + b.Property("ExpenditureDesc") + .HasColumnType("nvarchar(max)"); - b.Property("ImportedRecord") - .HasColumnType("bit"); + b.Property("ImportedRecord") + .HasColumnType("bit"); - b.Property("RecordDate") - .HasColumnType("datetime2"); + b.Property("RecordDate") + .HasColumnType("datetime2"); - b.Property("Remaining") - .HasColumnType("decimal(18,2)"); + b.Property("Remaining") + .HasColumnType("decimal(18,2)"); - b.Property("Unit") - .HasColumnType("nvarchar(max)"); + b.Property("Unit") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("GanjoorDonations"); - }); + b.ToTable("GanjoorDonations"); + }); modelBuilder.Entity("RMuseum.Models.Accounting.GanjoorExpense", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Amount") - .HasColumnType("decimal(18,2)"); + b.Property("Amount") + .HasColumnType("decimal(18,2)"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("ExpenseDate") - .HasColumnType("datetime2"); + b.Property("ExpenseDate") + .HasColumnType("datetime2"); - b.Property("Unit") - .HasColumnType("nvarchar(max)"); + b.Property("Unit") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("GanjoorExpenses"); - }); + b.ToTable("GanjoorExpenses"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("CoverImageIndex") - .HasColumnType("int"); + b.Property("CoverImageIndex") + .HasColumnType("int"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("DescriptionInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); + b.Property("FriendlyUrl") + .HasColumnType("nvarchar(450)"); - b.Property("LastModified") - .HasColumnType("datetime2"); + b.Property("LastModified") + .HasColumnType("datetime2"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("NameInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("NameInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("Order") - .HasColumnType("int"); + b.Property("Order") + .HasColumnType("int"); - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactMasterRecordId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RArtifactMasterRecordId", "FriendlyUrl") - .IsUnique() - .HasFilter("[FriendlyUrl] IS NOT NULL"); + b.HasIndex("RArtifactMasterRecordId", "FriendlyUrl") + .IsUnique() + .HasFilter("[FriendlyUrl] IS NOT NULL"); - b.HasIndex("RArtifactMasterRecordId", "Order") - .IsUnique(); + b.HasIndex("RArtifactMasterRecordId", "Order") + .IsUnique(); - b.ToTable("Items"); - }); + b.ToTable("Items"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("CoverImageId") - .HasColumnType("uniqueidentifier"); + b.Property("CoverImageId") + .HasColumnType("uniqueidentifier"); - b.Property("CoverItemIndex") - .HasColumnType("int"); + b.Property("CoverItemIndex") + .HasColumnType("int"); - b.Property("DateTime") - .HasColumnType("datetime2"); + b.Property("DateTime") + .HasColumnType("datetime2"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("DescriptionInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); + b.Property("FriendlyUrl") + .HasColumnType("nvarchar(450)"); - b.Property("ItemCount") - .HasColumnType("int"); + b.Property("ItemCount") + .HasColumnType("int"); - b.Property("LastModified") - .HasColumnType("datetime2"); + b.Property("LastModified") + .HasColumnType("datetime2"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("NameInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("NameInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("CoverImageId"); + b.HasIndex("CoverImageId"); - b.HasIndex("FriendlyUrl") - .IsUnique() - .HasFilter("[FriendlyUrl] IS NOT NULL"); + b.HasIndex("FriendlyUrl") + .IsUnique() + .HasFilter("[FriendlyUrl] IS NOT NULL"); - b.HasIndex("LastModified"); + b.HasIndex("LastModified"); - b.HasIndex("CoverItemIndex", "Status"); + b.HasIndex("CoverItemIndex", "Status"); - b.ToTable("Artifacts"); - }); + b.ToTable("Artifacts"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RTag", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); + b.Property("FriendlyUrl") + .HasColumnType("nvarchar(450)"); - b.Property("GlobalValue") - .HasColumnType("bit"); + b.Property("GlobalValue") + .HasColumnType("bit"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("NameInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("NameInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("Order") - .HasColumnType("int"); + b.Property("Order") + .HasColumnType("int"); - b.Property("PluralName") - .HasColumnType("nvarchar(max)"); + b.Property("PluralName") + .HasColumnType("nvarchar(max)"); - b.Property("PluralNameInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("PluralNameInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.Property("TagType") - .HasColumnType("int"); + b.Property("TagType") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("FriendlyUrl"); + b.HasIndex("FriendlyUrl"); - b.ToTable("Tags"); - }); + b.ToTable("Tags"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(450)"); + b.Property("FriendlyUrl") + .HasColumnType("nvarchar(450)"); - b.Property("Order") - .HasColumnType("int"); + b.Property("Order") + .HasColumnType("int"); - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactItemRecordId") + .HasColumnType("uniqueidentifier"); - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactMasterRecordId") + .HasColumnType("uniqueidentifier"); - b.Property("RTagId") - .HasColumnType("uniqueidentifier"); + b.Property("RTagId") + .HasColumnType("uniqueidentifier"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.Property("Value") - .HasColumnType("nvarchar(max)"); + b.Property("Value") + .HasColumnType("nvarchar(max)"); - b.Property("ValueInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("ValueInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("ValueSupplement") - .HasColumnType("nvarchar(max)"); + b.Property("ValueSupplement") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("FriendlyUrl"); + b.HasIndex("FriendlyUrl"); - b.HasIndex("RArtifactItemRecordId"); + b.HasIndex("RArtifactItemRecordId"); - b.HasIndex("RArtifactMasterRecordId"); + b.HasIndex("RArtifactMasterRecordId"); - b.HasIndex("RTagId"); + b.HasIndex("RTagId"); - b.ToTable("TagValues"); - }); + b.ToTable("TagValues"); + }); modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("DateTime") - .HasColumnType("datetime2"); + b.Property("DateTime") + .HasColumnType("datetime2"); - b.Property("Note") - .HasColumnType("nvarchar(max)"); + b.Property("Note") + .HasColumnType("nvarchar(max)"); - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); + b.Property("RAppUserId") + .HasColumnType("uniqueidentifier"); - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactItemRecordId") + .HasColumnType("uniqueidentifier"); - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactMasterRecordId") + .HasColumnType("uniqueidentifier"); - b.Property("RBookmarkType") - .HasColumnType("int"); + b.Property("RBookmarkType") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RAppUserId"); + b.HasIndex("RAppUserId"); - b.HasIndex("RArtifactItemRecordId"); + b.HasIndex("RArtifactItemRecordId"); - b.HasIndex("RArtifactMasterRecordId"); + b.HasIndex("RArtifactMasterRecordId"); - b.ToTable("UserBookmarks"); - }); + b.ToTable("UserBookmarks"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b => - { - b.Property("Id") - .HasColumnType("int"); + { + b.Property("Id") + .HasColumnType("int"); - b.Property("FullUrl") - .HasColumnType("nvarchar(450)"); + b.Property("FullUrl") + .HasColumnType("nvarchar(450)"); - b.Property("ParentId") - .HasColumnType("int"); + b.Property("ParentId") + .HasColumnType("int"); - b.Property("PoetId") - .HasColumnType("int"); + b.Property("PoetId") + .HasColumnType("int"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); + b.Property("UrlSlug") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("FullUrl"); + b.HasIndex("FullUrl"); - b.HasIndex("PoetId"); + b.HasIndex("PoetId"); - b.HasIndex("ParentId", "PoetId") - .HasAnnotation("SqlServer:Include", new[] { "Id" }); + b.HasIndex("ParentId", "PoetId") + .HasAnnotation("SqlServer:Include", new[] { "Id" }); - b.ToTable("GanjoorCategories"); - }); + b.ToTable("GanjoorCategories"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorComment", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("AuthorEmail") - .HasColumnType("nvarchar(max)"); + b.Property("AuthorEmail") + .HasColumnType("nvarchar(max)"); - b.Property("AuthorIpAddress") - .HasColumnType("nvarchar(max)"); + b.Property("AuthorIpAddress") + .HasColumnType("nvarchar(max)"); - b.Property("AuthorName") - .HasColumnType("nvarchar(max)"); + b.Property("AuthorName") + .HasColumnType("nvarchar(max)"); - b.Property("AuthorUrl") - .HasColumnType("nvarchar(max)"); + b.Property("AuthorUrl") + .HasColumnType("nvarchar(max)"); - b.Property("CommentDate") - .HasColumnType("datetime2"); + b.Property("CommentDate") + .HasColumnType("datetime2"); - b.Property("CoupletIndex") - .HasColumnType("int"); + b.Property("CoupletIndex") + .HasColumnType("int"); - b.Property("HtmlComment") - .HasColumnType("nvarchar(max)"); + b.Property("HtmlComment") + .HasColumnType("nvarchar(max)"); - b.Property("InReplyToId") - .HasColumnType("int"); + b.Property("InReplyToId") + .HasColumnType("int"); - b.Property("PoemId") - .HasColumnType("int"); + b.Property("PoemId") + .HasColumnType("int"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.Property("Verse12d") - .HasColumnType("int"); + b.Property("Verse12d") + .HasColumnType("int"); - b.Property("Verse1Id") - .HasColumnType("int"); + b.Property("Verse1Id") + .HasColumnType("int"); - b.Property("Verse2Id") - .HasColumnType("int"); + b.Property("Verse2Id") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("CommentDate"); + b.HasIndex("CommentDate"); - b.HasIndex("InReplyToId"); + b.HasIndex("InReplyToId"); - b.HasIndex("PoemId"); + b.HasIndex("PoemId"); - b.HasIndex("Status"); + b.HasIndex("Status"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.HasIndex("Verse1Id"); + b.HasIndex("Verse1Id"); - b.HasIndex("Verse2Id"); + b.HasIndex("Verse2Id"); - b.ToTable("GanjoorComments"); - }); + b.ToTable("GanjoorComments"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCommentAbuseReport", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("GanjoorCommentId") - .HasColumnType("int"); + b.Property("GanjoorCommentId") + .HasColumnType("int"); - b.Property("ReasonCode") - .HasColumnType("nvarchar(max)"); + b.Property("ReasonCode") + .HasColumnType("nvarchar(max)"); - b.Property("ReasonText") - .HasColumnType("nvarchar(max)"); + b.Property("ReasonText") + .HasColumnType("nvarchar(max)"); - b.Property("ReportedById") - .HasColumnType("uniqueidentifier"); + b.Property("ReportedById") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GanjoorCommentId"); + b.HasIndex("GanjoorCommentId"); - b.HasIndex("ReportedById"); + b.HasIndex("ReportedById"); - b.ToTable("GanjoorReportedComments"); - }); + b.ToTable("GanjoorReportedComments"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorHealthCheckError", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("BrokenLink") - .HasColumnType("bit"); + b.Property("BrokenLink") + .HasColumnType("bit"); - b.Property("MulipleTargets") - .HasColumnType("bit"); + b.Property("MulipleTargets") + .HasColumnType("bit"); - b.Property("ReferrerPageUrl") - .HasColumnType("nvarchar(max)"); + b.Property("ReferrerPageUrl") + .HasColumnType("nvarchar(max)"); - b.Property("TargetUrl") - .HasColumnType("nvarchar(max)"); + b.Property("TargetUrl") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("GanjoorHealthCheckErrors"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorLanguage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("RightToLeft") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .IsUnique() - .HasFilter("[Name] IS NOT NULL"); - - b.ToTable("GanjoorLanguages"); - }); + b.ToTable("GanjoorHealthCheckErrors"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorMetre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("Rhythm") - .HasColumnType("nvarchar(max)"); + b.Property("Rhythm") + .HasColumnType("nvarchar(max)"); - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); + b.Property("UrlSlug") + .HasColumnType("nvarchar(max)"); - b.Property("VerseCount") - .HasColumnType("int"); + b.Property("VerseCount") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("GanjoorMetres"); - }); + b.ToTable("GanjoorMetres"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPage", b => - { - b.Property("Id") - .HasColumnType("int"); + { + b.Property("Id") + .HasColumnType("int"); - b.Property("CatId") - .HasColumnType("int"); + b.Property("CatId") + .HasColumnType("int"); - b.Property("FullTitle") - .HasColumnType("nvarchar(max)"); + b.Property("FullTitle") + .HasColumnType("nvarchar(max)"); - b.Property("FullUrl") - .HasColumnType("nvarchar(450)"); + b.Property("FullUrl") + .HasColumnType("nvarchar(450)"); - b.Property("GanjoorPageType") - .HasColumnType("int"); + b.Property("GanjoorPageType") + .HasColumnType("int"); - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); + b.Property("HtmlText") + .HasColumnType("nvarchar(max)"); - b.Property("PageOrder") - .HasColumnType("int"); + b.Property("PageOrder") + .HasColumnType("int"); - b.Property("ParentId") - .HasColumnType("int"); + b.Property("ParentId") + .HasColumnType("int"); - b.Property("PoemId") - .HasColumnType("int"); + b.Property("PoemId") + .HasColumnType("int"); - b.Property("PoetId") - .HasColumnType("int"); + b.Property("PoetId") + .HasColumnType("int"); - b.Property("PostDate") - .HasColumnType("datetime2"); + b.Property("PostDate") + .HasColumnType("datetime2"); - b.Property("Published") - .HasColumnType("bit"); + b.Property("Published") + .HasColumnType("bit"); - b.Property("SecondPoetId") - .HasColumnType("int"); + b.Property("SecondPoetId") + .HasColumnType("int"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); + b.Property("UrlSlug") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("CatId"); + b.HasIndex("CatId"); - b.HasIndex("FullUrl"); + b.HasIndex("FullUrl"); - b.HasIndex("ParentId"); + b.HasIndex("ParentId"); - b.HasIndex("PoemId"); + b.HasIndex("PoemId"); - b.HasIndex("PoetId"); + b.HasIndex("PoetId"); - b.HasIndex("SecondPoetId"); + b.HasIndex("SecondPoetId"); - b.ToTable("GanjoorPages"); - }); + b.ToTable("GanjoorPages"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPageSnapshot", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("GanjoorPageId") - .HasColumnType("int"); + b.Property("GanjoorPageId") + .HasColumnType("int"); - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); + b.Property("HtmlText") + .HasColumnType("nvarchar(max)"); - b.Property("MadeObsoleteByUserId") - .HasColumnType("uniqueidentifier"); + b.Property("MadeObsoleteByUserId") + .HasColumnType("uniqueidentifier"); - b.Property("Note") - .HasColumnType("nvarchar(max)"); + b.Property("Note") + .HasColumnType("nvarchar(max)"); - b.Property("OldTag") - .HasColumnType("nvarchar(max)"); + b.Property("OldTag") + .HasColumnType("nvarchar(max)"); - b.Property("OldTagPageUrl") - .HasColumnType("nvarchar(max)"); + b.Property("OldTagPageUrl") + .HasColumnType("nvarchar(max)"); - b.Property("RecordDate") - .HasColumnType("datetime2"); + b.Property("RecordDate") + .HasColumnType("datetime2"); - b.Property("RhymeLetters") - .HasColumnType("nvarchar(max)"); + b.Property("RhymeLetters") + .HasColumnType("nvarchar(max)"); - b.Property("Rhythm") - .HasColumnType("nvarchar(max)"); + b.Property("Rhythm") + .HasColumnType("nvarchar(max)"); - b.Property("SourceName") - .HasColumnType("nvarchar(max)"); + b.Property("SourceName") + .HasColumnType("nvarchar(max)"); - b.Property("SourceUrlSlug") - .HasColumnType("nvarchar(max)"); + b.Property("SourceUrlSlug") + .HasColumnType("nvarchar(max)"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); + b.Property("UrlSlug") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GanjoorPageId"); + b.HasIndex("GanjoorPageId"); - b.HasIndex("MadeObsoleteByUserId"); + b.HasIndex("MadeObsoleteByUserId"); - b.ToTable("GanjoorPageSnapshots"); - }); + b.ToTable("GanjoorPageSnapshots"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b => - { - b.Property("Id") - .HasColumnType("int"); + { + b.Property("Id") + .HasColumnType("int"); - b.Property("CatId") - .HasColumnType("int"); + b.Property("CatId") + .HasColumnType("int"); - b.Property("FullTitle") - .HasColumnType("nvarchar(max)"); + b.Property("FullTitle") + .HasColumnType("nvarchar(max)"); - b.Property("FullUrl") - .HasColumnType("nvarchar(450)"); + b.Property("FullUrl") + .HasColumnType("nvarchar(450)"); - b.Property("GanjoorMetreId") - .HasColumnType("int"); + b.Property("GanjoorMetreId") + .HasColumnType("int"); - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); + b.Property("HtmlText") + .HasColumnType("nvarchar(max)"); - b.Property("OldTag") - .HasColumnType("nvarchar(max)"); + b.Property("OldTag") + .HasColumnType("nvarchar(max)"); - b.Property("OldTagPageUrl") - .HasColumnType("nvarchar(max)"); + b.Property("OldTagPageUrl") + .HasColumnType("nvarchar(max)"); - b.Property("PlainText") - .HasColumnType("nvarchar(max)"); + b.Property("PlainText") + .HasColumnType("nvarchar(max)"); - b.Property("RhymeLetters") - .HasColumnType("nvarchar(max)"); + b.Property("RhymeLetters") + .HasColumnType("nvarchar(max)"); - b.Property("SourceName") - .HasColumnType("nvarchar(max)"); + b.Property("SourceName") + .HasColumnType("nvarchar(max)"); - b.Property("SourceUrlSlug") - .HasColumnType("nvarchar(max)"); + b.Property("SourceUrlSlug") + .HasColumnType("nvarchar(max)"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); + b.Property("UrlSlug") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("CatId"); + b.HasIndex("CatId"); - b.HasIndex("FullUrl"); + b.HasIndex("FullUrl"); - b.HasIndex("GanjoorMetreId"); + b.HasIndex("GanjoorMetreId"); - b.HasIndex("Id"); + b.HasIndex("Id"); - b.ToTable("GanjoorPoems"); - }); + b.ToTable("GanjoorPoems"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("AffectedThePoem") - .HasColumnType("bit"); + b.Property("AffectedThePoem") + .HasColumnType("bit"); - b.Property("ApplicationOrder") - .HasColumnType("int"); + b.Property("ApplicationOrder") + .HasColumnType("int"); - b.Property("Date") - .HasColumnType("datetime2"); + b.Property("Date") + .HasColumnType("datetime2"); - b.Property("Note") - .HasColumnType("nvarchar(max)"); + b.Property("Note") + .HasColumnType("nvarchar(max)"); - b.Property("OriginalRhythm") - .HasColumnType("nvarchar(max)"); + b.Property("OriginalRhythm") + .HasColumnType("nvarchar(max)"); - b.Property("OriginalTitle") - .HasColumnType("nvarchar(max)"); + b.Property("OriginalTitle") + .HasColumnType("nvarchar(max)"); - b.Property("PoemId") - .HasColumnType("int"); + b.Property("PoemId") + .HasColumnType("int"); - b.Property("Result") - .HasColumnType("int"); + b.Property("Result") + .HasColumnType("int"); - b.Property("ReviewDate") - .HasColumnType("datetime2"); + b.Property("ReviewDate") + .HasColumnType("datetime2"); - b.Property("ReviewNote") - .HasColumnType("nvarchar(max)"); + b.Property("ReviewNote") + .HasColumnType("nvarchar(max)"); - b.Property("Reviewed") - .HasColumnType("bit"); + b.Property("Reviewed") + .HasColumnType("bit"); - b.Property("ReviewerUserId") - .HasColumnType("uniqueidentifier"); + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); - b.Property("Rhythm") - .HasColumnType("nvarchar(max)"); + b.Property("Rhythm") + .HasColumnType("nvarchar(max)"); - b.Property("RhythmResult") - .HasColumnType("int"); + b.Property("RhythmResult") + .HasColumnType("int"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("PoemId"); + b.HasIndex("PoemId"); - b.HasIndex("ReviewerUserId"); + b.HasIndex("ReviewerUserId"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("GanjoorPoemCorrections"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemTranslation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageId") - .HasColumnType("int"); - - b.Property("PoemId") - .HasColumnType("int"); - - b.Property("Published") - .HasColumnType("bit"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("PoemId"); - - b.HasIndex("LanguageId", "PoemId") - .IsUnique(); - - b.ToTable("PoemTranslations"); - }); + b.ToTable("GanjoorPoemCorrections"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoet", b => - { - b.Property("Id") - .HasColumnType("int"); + { + b.Property("Id") + .HasColumnType("int"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("Nickname") - .HasColumnType("nvarchar(max)"); + b.Property("Nickname") + .HasColumnType("nvarchar(max)"); - b.Property("Published") - .HasColumnType("bit"); + b.Property("Published") + .HasColumnType("bit"); - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); + b.Property("RImageId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RImageId"); + b.HasIndex("RImageId"); - b.HasIndex("Published", "Id") - .HasAnnotation("SqlServer:Include", new[] { "Name", "Nickname", "RImageId" }); + b.HasIndex("Published", "Id") + .HasAnnotation("SqlServer:Include", new[] { "Name", "Nickname", "RImageId" }); - b.ToTable("GanjoorPoets"); - }); + b.ToTable("GanjoorPoets"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorSiteBanner", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Active") - .HasColumnType("bit"); + b.Property("Active") + .HasColumnType("bit"); - b.Property("AlternateText") - .HasColumnType("nvarchar(max)"); + b.Property("AlternateText") + .HasColumnType("nvarchar(max)"); - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); + b.Property("RImageId") + .HasColumnType("uniqueidentifier"); - b.Property("TargetUrl") - .HasColumnType("nvarchar(max)"); + b.Property("TargetUrl") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RImageId"); + b.HasIndex("RImageId"); - b.ToTable("GanjoorSiteBanners"); - }); + b.ToTable("GanjoorSiteBanners"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("PoemId") - .HasColumnType("int"); + b.Property("PoemId") + .HasColumnType("int"); - b.Property("Text") - .HasColumnType("nvarchar(max)"); + b.Property("Text") + .HasColumnType("nvarchar(max)"); - b.Property("VOrder") - .HasColumnType("int"); + b.Property("VOrder") + .HasColumnType("int"); - b.Property("VersePosition") - .HasColumnType("int"); + b.Property("VersePosition") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("PoemId"); + b.HasIndex("PoemId"); - b.ToTable("GanjoorVerses"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseTranslation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - b.Property("LanguageId") - .HasColumnType("int"); - - b.Property("TText") - .HasColumnType("nvarchar(max)"); - - b.Property("VerseId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("VerseId"); - - b.HasIndex("LanguageId", "VerseId") - .IsUnique(); - - b.ToTable("VerseTranslations"); - }); + b.ToTable("GanjoorVerses"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseVOrderText", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("GanjoorPoemCorrectionId") - .HasColumnType("int"); + b.Property("GanjoorPoemCorrectionId") + .HasColumnType("int"); - b.Property("OriginalText") - .HasColumnType("nvarchar(max)"); + b.Property("OriginalText") + .HasColumnType("nvarchar(max)"); - b.Property("Result") - .HasColumnType("int"); + b.Property("Result") + .HasColumnType("int"); - b.Property("ReviewNote") - .HasColumnType("nvarchar(max)"); + b.Property("ReviewNote") + .HasColumnType("nvarchar(max)"); - b.Property("Text") - .HasColumnType("nvarchar(max)"); + b.Property("Text") + .HasColumnType("nvarchar(max)"); - b.Property("VORder") - .HasColumnType("int"); + b.Property("VORder") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GanjoorPoemCorrectionId"); + b.HasIndex("GanjoorPoemCorrectionId"); - b.ToTable("GanjoorVerseVOrderText"); - }); + b.ToTable("GanjoorVerseVOrderText"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.PoemMusicTrack", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("AlbumName") - .HasColumnType("nvarchar(max)"); + b.Property("AlbumName") + .HasColumnType("nvarchar(max)"); - b.Property("AlbumUrl") - .HasColumnType("nvarchar(max)"); + b.Property("AlbumUrl") + .HasColumnType("nvarchar(max)"); - b.Property("ApprovalDate") - .HasColumnType("datetime2"); + b.Property("ApprovalDate") + .HasColumnType("datetime2"); - b.Property("Approved") - .HasColumnType("bit"); + b.Property("Approved") + .HasColumnType("bit"); - b.Property("ArtistName") - .HasColumnType("nvarchar(max)"); + b.Property("ArtistName") + .HasColumnType("nvarchar(max)"); - b.Property("ArtistUrl") - .HasColumnType("nvarchar(max)"); + b.Property("ArtistUrl") + .HasColumnType("nvarchar(max)"); - b.Property("BrokenLink") - .HasColumnType("bit"); + b.Property("BrokenLink") + .HasColumnType("bit"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("GanjoorTrackId") - .HasColumnType("int"); + b.Property("GanjoorTrackId") + .HasColumnType("int"); - b.Property("GolhaTrackId") - .HasColumnType("int"); + b.Property("GolhaTrackId") + .HasColumnType("int"); - b.Property("PoemId") - .HasColumnType("int"); + b.Property("PoemId") + .HasColumnType("int"); - b.Property("Rejected") - .HasColumnType("bit"); + b.Property("Rejected") + .HasColumnType("bit"); - b.Property("RejectionCause") - .HasColumnType("nvarchar(max)"); + b.Property("RejectionCause") + .HasColumnType("nvarchar(max)"); - b.Property("SingerId") - .HasColumnType("int"); + b.Property("SingerId") + .HasColumnType("int"); - b.Property("SongOrder") - .HasColumnType("int"); + b.Property("SongOrder") + .HasColumnType("int"); - b.Property("SuggestedById") - .HasColumnType("uniqueidentifier"); + b.Property("SuggestedById") + .HasColumnType("uniqueidentifier"); - b.Property("TrackName") - .HasColumnType("nvarchar(max)"); + b.Property("TrackName") + .HasColumnType("nvarchar(max)"); - b.Property("TrackType") - .HasColumnType("int"); + b.Property("TrackType") + .HasColumnType("int"); - b.Property("TrackUrl") - .HasColumnType("nvarchar(max)"); + b.Property("TrackUrl") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GanjoorTrackId"); + b.HasIndex("GanjoorTrackId"); - b.HasIndex("GolhaTrackId"); + b.HasIndex("GolhaTrackId"); - b.HasIndex("PoemId"); + b.HasIndex("PoemId"); - b.HasIndex("SingerId"); + b.HasIndex("SingerId"); - b.HasIndex("SuggestedById"); + b.HasIndex("SuggestedById"); - b.HasIndex("Approved", "Rejected"); + b.HasIndex("Approved", "Rejected"); - b.ToTable("GanjoorPoemMusicTracks"); - }); + b.ToTable("GanjoorPoemMusicTracks"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorAudio.Recitation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("AudioArtist") - .HasColumnType("nvarchar(max)"); + b.Property("AudioArtist") + .HasColumnType("nvarchar(max)"); - b.Property("AudioArtistUrl") - .HasColumnType("nvarchar(max)"); + b.Property("AudioArtistUrl") + .HasColumnType("nvarchar(max)"); - b.Property("AudioOrder") - .HasColumnType("int"); + b.Property("AudioOrder") + .HasColumnType("int"); - b.Property("AudioSrc") - .HasColumnType("nvarchar(max)"); + b.Property("AudioSrc") + .HasColumnType("nvarchar(max)"); - b.Property("AudioSrcUrl") - .HasColumnType("nvarchar(max)"); + b.Property("AudioSrcUrl") + .HasColumnType("nvarchar(max)"); - b.Property("AudioSyncStatus") - .HasColumnType("int"); + b.Property("AudioSyncStatus") + .HasColumnType("int"); - b.Property("AudioTitle") - .HasColumnType("nvarchar(max)"); + b.Property("AudioTitle") + .HasColumnType("nvarchar(max)"); - b.Property("FileLastUpdated") - .HasColumnType("datetime2"); + b.Property("FileLastUpdated") + .HasColumnType("datetime2"); - b.Property("FileNameWithoutExtension") - .HasColumnType("nvarchar(max)"); + b.Property("FileNameWithoutExtension") + .HasColumnType("nvarchar(max)"); - b.Property("GanjoorAudioId") - .HasColumnType("int"); + b.Property("GanjoorAudioId") + .HasColumnType("int"); - b.Property("GanjoorPostId") - .HasColumnType("int"); + b.Property("GanjoorPostId") + .HasColumnType("int"); - b.Property("LegacyAudioGuid") - .HasColumnType("uniqueidentifier"); + b.Property("LegacyAudioGuid") + .HasColumnType("uniqueidentifier"); - b.Property("LocalMp3FilePath") - .HasColumnType("nvarchar(max)"); + b.Property("LocalMp3FilePath") + .HasColumnType("nvarchar(max)"); - b.Property("LocalXmlFilePath") - .HasColumnType("nvarchar(max)"); + b.Property("LocalXmlFilePath") + .HasColumnType("nvarchar(max)"); - b.Property("Mp3FileCheckSum") - .HasColumnType("nvarchar(max)"); + b.Property("Mp3FileCheckSum") + .HasColumnType("nvarchar(max)"); - b.Property("Mp3SizeInBytes") - .HasColumnType("int"); + b.Property("Mp3SizeInBytes") + .HasColumnType("int"); - b.Property("OggSizeInBytes") - .HasColumnType("int"); + b.Property("OggSizeInBytes") + .HasColumnType("int"); - b.Property("OwnerId") - .HasColumnType("uniqueidentifier"); + b.Property("OwnerId") + .HasColumnType("uniqueidentifier"); - b.Property("ReviewDate") - .HasColumnType("datetime2"); + b.Property("ReviewDate") + .HasColumnType("datetime2"); - b.Property("ReviewMsg") - .HasColumnType("nvarchar(max)"); + b.Property("ReviewMsg") + .HasColumnType("nvarchar(max)"); - b.Property("ReviewStatus") - .HasColumnType("int"); + b.Property("ReviewStatus") + .HasColumnType("int"); - b.Property("ReviewerId") - .HasColumnType("uniqueidentifier"); + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); - b.Property("SoundFilesFolder") - .HasColumnType("nvarchar(max)"); + b.Property("SoundFilesFolder") + .HasColumnType("nvarchar(max)"); - b.Property("UploadDate") - .HasColumnType("datetime2"); + b.Property("UploadDate") + .HasColumnType("datetime2"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GanjoorAudioId"); + b.HasIndex("GanjoorAudioId"); - b.HasIndex("GanjoorPostId"); + b.HasIndex("GanjoorPostId"); - b.HasIndex("OwnerId"); + b.HasIndex("OwnerId"); - b.HasIndex("ReviewerId"); + b.HasIndex("ReviewerId"); - b.HasIndex("ReviewStatus", "GanjoorPostId"); + b.HasIndex("ReviewStatus", "GanjoorPostId"); - b.ToTable("Recitations"); - }); + b.ToTable("Recitations"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorAudio.RecitationPublishingTracker", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("FinishDate") - .HasColumnType("datetime2"); + b.Property("FinishDate") + .HasColumnType("datetime2"); - b.Property("Finished") - .HasColumnType("bit"); + b.Property("Finished") + .HasColumnType("bit"); - b.Property("FirstDbUpdated") - .HasColumnType("bit"); + b.Property("FirstDbUpdated") + .HasColumnType("bit"); - b.Property("LastException") - .HasColumnType("nvarchar(max)"); + b.Property("LastException") + .HasColumnType("nvarchar(max)"); - b.Property("Mp3FileCopied") - .HasColumnType("bit"); + b.Property("Mp3FileCopied") + .HasColumnType("bit"); - b.Property("PoemNarrationId") - .HasColumnType("int"); + b.Property("PoemNarrationId") + .HasColumnType("int"); - b.Property("SecondDbUpdated") - .HasColumnType("bit"); + b.Property("SecondDbUpdated") + .HasColumnType("bit"); - b.Property("StartDate") - .HasColumnType("datetime2"); + b.Property("StartDate") + .HasColumnType("datetime2"); - b.Property("XmlFileCopied") - .HasColumnType("bit"); + b.Property("XmlFileCopied") + .HasColumnType("bit"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("PoemNarrationId"); + b.HasIndex("PoemNarrationId"); - b.ToTable("RecitationPublishingTrackers"); - }); + b.ToTable("RecitationPublishingTrackers"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserRecitationProfile", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ArtistName") - .HasColumnType("nvarchar(max)"); + b.Property("ArtistName") + .HasColumnType("nvarchar(max)"); - b.Property("ArtistUrl") - .HasColumnType("nvarchar(max)"); + b.Property("ArtistUrl") + .HasColumnType("nvarchar(max)"); - b.Property("AudioSrc") - .HasColumnType("nvarchar(max)"); + b.Property("AudioSrc") + .HasColumnType("nvarchar(max)"); - b.Property("AudioSrcUrl") - .HasColumnType("nvarchar(max)"); + b.Property("AudioSrcUrl") + .HasColumnType("nvarchar(max)"); - b.Property("FileSuffixWithoutDash") - .HasColumnType("nvarchar(max)"); + b.Property("FileSuffixWithoutDash") + .HasColumnType("nvarchar(max)"); - b.Property("IsDefault") - .HasColumnType("bit"); + b.Property("IsDefault") + .HasColumnType("bit"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("UserRecitationProfiles"); - }); + b.ToTable("UserRecitationProfiles"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ArtifactId") - .HasColumnType("uniqueidentifier"); + b.Property("ArtifactId") + .HasColumnType("uniqueidentifier"); - b.Property("DisplayOnPage") - .HasColumnType("bit"); + b.Property("DisplayOnPage") + .HasColumnType("bit"); - b.Property("GanjoorPostId") - .HasColumnType("int"); + b.Property("GanjoorPostId") + .HasColumnType("int"); - b.Property("GanjoorTitle") - .HasColumnType("nvarchar(max)"); + b.Property("GanjoorTitle") + .HasColumnType("nvarchar(max)"); - b.Property("GanjoorUrl") - .HasColumnType("nvarchar(max)"); + b.Property("GanjoorUrl") + .HasColumnType("nvarchar(max)"); - b.Property("ItemId") - .HasColumnType("uniqueidentifier"); + b.Property("ItemId") + .HasColumnType("uniqueidentifier"); - b.Property("LinkToOriginalSource") - .HasColumnType("bit"); + b.Property("LinkToOriginalSource") + .HasColumnType("bit"); - b.Property("OriginalSourceUrl") - .HasColumnType("nvarchar(max)"); + b.Property("OriginalSourceUrl") + .HasColumnType("nvarchar(max)"); - b.Property("ReviewDate") - .HasColumnType("datetime2"); + b.Property("ReviewDate") + .HasColumnType("datetime2"); - b.Property("ReviewResult") - .HasColumnType("int"); + b.Property("ReviewResult") + .HasColumnType("int"); - b.Property("ReviewerId") - .HasColumnType("uniqueidentifier"); + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); - b.Property("SuggestedById") - .HasColumnType("uniqueidentifier"); + b.Property("SuggestedById") + .HasColumnType("uniqueidentifier"); - b.Property("SuggestionDate") - .HasColumnType("datetime2"); + b.Property("SuggestionDate") + .HasColumnType("datetime2"); - b.Property("Synchronized") - .HasColumnType("bit"); + b.Property("Synchronized") + .HasColumnType("bit"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("ArtifactId"); + b.HasIndex("ArtifactId"); - b.HasIndex("ItemId"); + b.HasIndex("ItemId"); - b.HasIndex("ReviewerId"); + b.HasIndex("ReviewerId"); - b.HasIndex("SuggestedById"); + b.HasIndex("SuggestedById"); - b.ToTable("GanjoorLinks"); - }); + b.ToTable("GanjoorLinks"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("AltText") - .HasColumnType("nvarchar(max)"); + b.Property("AltText") + .HasColumnType("nvarchar(max)"); - b.Property("ArtifactId") - .HasColumnType("uniqueidentifier"); + b.Property("ArtifactId") + .HasColumnType("uniqueidentifier"); - b.Property("GanjoorPostId") - .HasColumnType("int"); + b.Property("GanjoorPostId") + .HasColumnType("int"); - b.Property("GanjoorTitle") - .HasColumnType("nvarchar(max)"); + b.Property("GanjoorTitle") + .HasColumnType("nvarchar(max)"); - b.Property("GanjoorUrl") - .HasColumnType("nvarchar(max)"); + b.Property("GanjoorUrl") + .HasColumnType("nvarchar(max)"); - b.Property("ItemId") - .HasColumnType("uniqueidentifier"); + b.Property("ItemId") + .HasColumnType("uniqueidentifier"); - b.Property("LinkType") - .HasColumnType("int"); + b.Property("LinkType") + .HasColumnType("int"); - b.Property("PinterestImageUrl") - .HasColumnType("nvarchar(max)"); + b.Property("PinterestImageUrl") + .HasColumnType("nvarchar(max)"); - b.Property("PinterestUrl") - .HasColumnType("nvarchar(max)"); + b.Property("PinterestUrl") + .HasColumnType("nvarchar(max)"); - b.Property("ReviewDate") - .HasColumnType("datetime2"); + b.Property("ReviewDate") + .HasColumnType("datetime2"); - b.Property("ReviewDesc") - .HasColumnType("nvarchar(max)"); + b.Property("ReviewDesc") + .HasColumnType("nvarchar(max)"); - b.Property("ReviewResult") - .HasColumnType("int"); + b.Property("ReviewResult") + .HasColumnType("int"); - b.Property("ReviewerId") - .HasColumnType("uniqueidentifier"); + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); - b.Property("SuggestedById") - .HasColumnType("uniqueidentifier"); + b.Property("SuggestedById") + .HasColumnType("uniqueidentifier"); - b.Property("SuggestionDate") - .HasColumnType("datetime2"); + b.Property("SuggestionDate") + .HasColumnType("datetime2"); - b.Property("Synchronized") - .HasColumnType("bit"); + b.Property("Synchronized") + .HasColumnType("bit"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("ArtifactId"); + b.HasIndex("ArtifactId"); - b.HasIndex("ItemId"); + b.HasIndex("ItemId"); - b.HasIndex("ReviewerId"); + b.HasIndex("ReviewerId"); - b.HasIndex("SuggestedById"); + b.HasIndex("SuggestedById"); - b.ToTable("PinterestLinks"); - }); + b.ToTable("PinterestLinks"); + }); modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ArtifactId") - .HasColumnType("uniqueidentifier"); + b.Property("ArtifactId") + .HasColumnType("uniqueidentifier"); - b.Property("EndTime") - .HasColumnType("datetime2"); + b.Property("EndTime") + .HasColumnType("datetime2"); - b.Property("Exception") - .HasColumnType("nvarchar(max)"); + b.Property("Exception") + .HasColumnType("nvarchar(max)"); - b.Property("FriendlyUrl") - .HasColumnType("nvarchar(max)"); + b.Property("FriendlyUrl") + .HasColumnType("nvarchar(max)"); - b.Property("JobType") - .HasColumnType("int"); + b.Property("JobType") + .HasColumnType("int"); - b.Property("ProgressPercent") - .HasColumnType("decimal(18,2)"); + b.Property("ProgressPercent") + .HasColumnType("decimal(18,2)"); - b.Property("QueueTime") - .HasColumnType("datetime2"); + b.Property("QueueTime") + .HasColumnType("datetime2"); - b.Property("ResourceNumber") - .HasColumnType("nvarchar(max)"); + b.Property("ResourceNumber") + .HasColumnType("nvarchar(max)"); - b.Property("SrcContent") - .HasColumnType("nvarchar(max)"); + b.Property("SrcContent") + .HasColumnType("nvarchar(max)"); - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); + b.Property("SrcUrl") + .HasColumnType("nvarchar(max)"); - b.Property("StartTime") - .HasColumnType("datetime2"); + b.Property("StartTime") + .HasColumnType("datetime2"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("ArtifactId"); + b.HasIndex("ArtifactId"); - b.ToTable("ImportJobs"); - }); + b.ToTable("ImportJobs"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorAlbum", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("SingerId") - .HasColumnType("int"); + b.Property("SingerId") + .HasColumnType("int"); - b.Property("Url") - .HasColumnType("nvarchar(max)"); + b.Property("Url") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("SingerId"); + b.HasIndex("SingerId"); - b.ToTable("GanjoorAlbum"); - }); + b.ToTable("GanjoorAlbum"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorSinger", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Name") - .HasColumnType("nvarchar(450)"); + b.Property("Name") + .HasColumnType("nvarchar(450)"); - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); + b.Property("RImageId") + .HasColumnType("uniqueidentifier"); - b.Property("Url") - .HasColumnType("nvarchar(max)"); + b.Property("Url") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("Name"); + b.HasIndex("Name"); - b.HasIndex("RImageId"); + b.HasIndex("RImageId"); - b.ToTable("GanjoorSingers"); - }); + b.ToTable("GanjoorSingers"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorTrack", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("AlbumId") - .HasColumnType("int"); + b.Property("AlbumId") + .HasColumnType("int"); - b.Property("BlockReason") - .HasColumnType("nvarchar(max)"); + b.Property("BlockReason") + .HasColumnType("nvarchar(max)"); - b.Property("Blocked") - .HasColumnType("bit"); + b.Property("Blocked") + .HasColumnType("bit"); - b.Property("Name") - .HasColumnType("nvarchar(450)"); + b.Property("Name") + .HasColumnType("nvarchar(450)"); - b.Property("Url") - .HasColumnType("nvarchar(max)"); + b.Property("Url") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("AlbumId"); + b.HasIndex("AlbumId"); - b.HasIndex("Name"); + b.HasIndex("Name"); - b.ToTable("GanjoorMusicCatalogueTracks"); - }); + b.ToTable("GanjoorMusicCatalogueTracks"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaCollection", b => - { - b.Property("Id") - .HasColumnType("int"); + { + b.Property("Id") + .HasColumnType("int"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("GolhaCollections"); - }); + b.ToTable("GolhaCollections"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaProgram", b => - { - b.Property("Id") - .HasColumnType("int"); + { + b.Property("Id") + .HasColumnType("int"); - b.Property("GolhaCollectionId") - .HasColumnType("int"); + b.Property("GolhaCollectionId") + .HasColumnType("int"); - b.Property("Mp3") - .HasColumnType("nvarchar(max)"); + b.Property("Mp3") + .HasColumnType("nvarchar(max)"); - b.Property("ProgramOrder") - .HasColumnType("int"); + b.Property("ProgramOrder") + .HasColumnType("int"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("Url") - .HasColumnType("nvarchar(max)"); + b.Property("Url") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GolhaCollectionId"); + b.HasIndex("GolhaCollectionId"); - b.ToTable("GolhaPrograms"); - }); + b.ToTable("GolhaPrograms"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaTrack", b => - { - b.Property("Id") - .HasColumnType("int"); + { + b.Property("Id") + .HasColumnType("int"); - b.Property("BlockReason") - .HasColumnType("nvarchar(max)"); + b.Property("BlockReason") + .HasColumnType("nvarchar(max)"); - b.Property("Blocked") - .HasColumnType("bit"); + b.Property("Blocked") + .HasColumnType("bit"); - b.Property("GolhaProgramId") - .HasColumnType("int"); + b.Property("GolhaProgramId") + .HasColumnType("int"); - b.Property("SingerId") - .HasColumnType("int"); + b.Property("SingerId") + .HasColumnType("int"); - b.Property("Timing") - .HasColumnType("nvarchar(max)"); + b.Property("Timing") + .HasColumnType("nvarchar(max)"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("TrackNo") - .HasColumnType("int"); + b.Property("TrackNo") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GolhaProgramId"); + b.HasIndex("GolhaProgramId"); - b.HasIndex("SingerId"); + b.HasIndex("SingerId"); - b.ToTable("GolhaTracks"); - }); + b.ToTable("GolhaTracks"); + }); modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("DateTime") - .HasColumnType("datetime2"); + b.Property("DateTime") + .HasColumnType("datetime2"); - b.Property("HtmlContent") - .HasColumnType("nvarchar(max)"); + b.Property("HtmlContent") + .HasColumnType("nvarchar(max)"); - b.Property("LastModified") - .HasColumnType("datetime2"); + b.Property("LastModified") + .HasColumnType("datetime2"); - b.Property("Modified") - .HasColumnType("bit"); + b.Property("Modified") + .HasColumnType("bit"); - b.Property("NoteType") - .HasColumnType("int"); + b.Property("NoteType") + .HasColumnType("int"); - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); + b.Property("RAppUserId") + .HasColumnType("uniqueidentifier"); - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactItemRecordId") + .HasColumnType("uniqueidentifier"); - b.Property("RArtifactMasterRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactMasterRecordId") + .HasColumnType("uniqueidentifier"); - b.Property("ReferenceNoteId") - .HasColumnType("uniqueidentifier"); + b.Property("ReferenceNoteId") + .HasColumnType("uniqueidentifier"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RAppUserId"); + b.HasIndex("RAppUserId"); - b.HasIndex("RArtifactItemRecordId"); + b.HasIndex("RArtifactItemRecordId"); - b.HasIndex("RArtifactMasterRecordId"); + b.HasIndex("RArtifactMasterRecordId"); - b.HasIndex("ReferenceNoteId"); + b.HasIndex("ReferenceNoteId"); - b.ToTable("UserNotes"); - }); + b.ToTable("UserNotes"); + }); modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ProcessEndTime") - .HasColumnType("datetime2"); + b.Property("ProcessEndTime") + .HasColumnType("datetime2"); - b.Property("ProcessProgress") - .HasColumnType("int"); + b.Property("ProcessProgress") + .HasColumnType("int"); - b.Property("ProcessStartTime") - .HasColumnType("datetime2"); + b.Property("ProcessStartTime") + .HasColumnType("datetime2"); - b.Property("SessionType") - .HasColumnType("int"); + b.Property("SessionType") + .HasColumnType("int"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.Property("UploadEndTime") - .HasColumnType("datetime2"); + b.Property("UploadEndTime") + .HasColumnType("datetime2"); - b.Property("UploadStartTime") - .HasColumnType("datetime2"); + b.Property("UploadStartTime") + .HasColumnType("datetime2"); - b.Property("UseId") - .HasColumnType("uniqueidentifier"); + b.Property("UseId") + .HasColumnType("uniqueidentifier"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("UploadSessions"); - }); + b.ToTable("UploadSessions"); + }); modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ContentDisposition") - .HasColumnType("nvarchar(max)"); + b.Property("ContentDisposition") + .HasColumnType("nvarchar(max)"); - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); + b.Property("ContentType") + .HasColumnType("nvarchar(max)"); - b.Property("FileName") - .HasColumnType("nvarchar(max)"); + b.Property("FileName") + .HasColumnType("nvarchar(max)"); - b.Property("FilePath") - .HasColumnType("nvarchar(max)"); + b.Property("FilePath") + .HasColumnType("nvarchar(max)"); - b.Property("Length") - .HasColumnType("bigint"); + b.Property("Length") + .HasColumnType("bigint"); - b.Property("MP3FileCheckSum") - .HasColumnType("nvarchar(max)"); + b.Property("MP3FileCheckSum") + .HasColumnType("nvarchar(max)"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("ProcessResult") - .HasColumnType("bit"); + b.Property("ProcessResult") + .HasColumnType("bit"); - b.Property("ProcessResultMsg") - .HasColumnType("nvarchar(max)"); + b.Property("ProcessResultMsg") + .HasColumnType("nvarchar(max)"); - b.Property("UploadSessionId") - .HasColumnType("uniqueidentifier"); + b.Property("UploadSessionId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UploadSessionId"); + b.HasIndex("UploadSessionId"); - b.ToTable("UploadedFiles"); - }); + b.ToTable("UploadedFiles"); + }); modelBuilder.Entity("RSecurityBackend.Models.Audit.Db.REvent", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("Duration") - .HasColumnType("int"); + b.Property("Duration") + .HasColumnType("int"); - b.Property("EndDate") - .HasColumnType("datetime2"); + b.Property("EndDate") + .HasColumnType("datetime2"); - b.Property("EventType") - .HasColumnType("nvarchar(max)"); + b.Property("EventType") + .HasColumnType("nvarchar(max)"); - b.Property("IpAddress") - .HasColumnType("nvarchar(max)"); + b.Property("IpAddress") + .HasColumnType("nvarchar(max)"); - b.Property("JsonData") - .HasColumnType("nvarchar(max)"); + b.Property("JsonData") + .HasColumnType("nvarchar(max)"); - b.Property("RequestUrl") - .HasColumnType("nvarchar(max)"); + b.Property("RequestUrl") + .HasColumnType("nvarchar(max)"); - b.Property("ResponseStatusCode") - .HasColumnType("int"); + b.Property("ResponseStatusCode") + .HasColumnType("int"); - b.Property("StartDate") - .HasColumnType("datetime2"); + b.Property("StartDate") + .HasColumnType("datetime2"); - b.Property("UserName") - .HasColumnType("nvarchar(max)"); + b.Property("UserName") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("AuditLogs"); - }); + b.ToTable("AuditLogs"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.BannedEmail", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(max)"); + b.Property("NormalizedEmail") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("BannedEmails"); - }); + b.ToTable("BannedEmails"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); - b.ToTable("AspNetRoles"); - }); + b.ToTable("AspNetRoles"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("AccessFailedCount") - .HasColumnType("int"); + b.Property("AccessFailedCount") + .HasColumnType("int"); - b.Property("Bio") - .HasColumnType("nvarchar(max)"); + b.Property("Bio") + .HasColumnType("nvarchar(max)"); - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); - b.Property("CreateDate") - .HasColumnType("datetime2"); + b.Property("CreateDate") + .HasColumnType("datetime2"); - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); - b.Property("EmailConfirmed") - .HasColumnType("bit"); + b.Property("EmailConfirmed") + .HasColumnType("bit"); - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); + b.Property("FirstName") + .HasColumnType("nvarchar(max)"); - b.Property("LockoutEnabled") - .HasColumnType("bit"); + b.Property("LockoutEnabled") + .HasColumnType("bit"); - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); - b.Property("LockoutMessage") - .HasColumnType("nvarchar(max)"); + b.Property("LockoutMessage") + .HasColumnType("nvarchar(max)"); - b.Property("NickName") - .HasColumnType("nvarchar(max)"); + b.Property("NickName") + .HasColumnType("nvarchar(max)"); - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); + b.Property("PhoneNumber") + .HasColumnType("nvarchar(max)"); - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); + b.Property("RImageId") + .HasColumnType("uniqueidentifier"); - b.Property("ScreenName") - .HasColumnType("nvarchar(max)"); + b.Property("ScreenName") + .HasColumnType("nvarchar(max)"); - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.Property("SureName") - .HasColumnType("nvarchar(max)"); + b.Property("SureName") + .HasColumnType("nvarchar(max)"); - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); - b.Property("Website") - .HasColumnType("nvarchar(max)"); + b.Property("Website") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); - b.HasIndex("RImageId"); + b.HasIndex("RImageId"); - b.ToTable("AspNetUsers"); - }); + b.ToTable("AspNetUsers"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("DateTime") - .HasColumnType("datetime2"); + b.Property("DateTime") + .HasColumnType("datetime2"); - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); + b.Property("RImageId") + .HasColumnType("uniqueidentifier"); - b.Property("Value") - .HasColumnType("nvarchar(max)"); + b.Property("Value") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RImageId"); + b.HasIndex("RImageId"); - b.ToTable("CaptchaImages"); - }); + b.ToTable("CaptchaImages"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); + b.Property("OperationShortName") + .HasColumnType("nvarchar(max)"); - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); + b.Property("RAppRoleId") + .HasColumnType("uniqueidentifier"); - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); + b.Property("SecurableItemShortName") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RAppRoleId"); + b.HasIndex("RAppRoleId"); - b.ToTable("Permissions"); - }); + b.ToTable("Permissions"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); + b.Property("ClientAppName") + .HasColumnType("nvarchar(max)"); - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); + b.Property("ClientIPAddress") + .HasColumnType("nvarchar(max)"); - b.Property("Language") - .HasColumnType("nvarchar(max)"); + b.Property("Language") + .HasColumnType("nvarchar(max)"); - b.Property("LastRenewal") - .HasColumnType("datetime2"); + b.Property("LastRenewal") + .HasColumnType("datetime2"); - b.Property("LoginTime") - .HasColumnType("datetime2"); + b.Property("LoginTime") + .HasColumnType("datetime2"); - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); + b.Property("RAppUserId") + .HasColumnType("uniqueidentifier"); - b.Property("Token") - .HasColumnType("nvarchar(max)"); + b.Property("Token") + .HasColumnType("nvarchar(max)"); - b.Property("ValidUntil") - .HasColumnType("datetime2"); + b.Property("ValidUntil") + .HasColumnType("datetime2"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RAppUserId"); + b.HasIndex("RAppUserId"); - b.ToTable("Sessions"); - }); + b.ToTable("Sessions"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RUserBehaviourLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("DateTime") - .HasColumnType("datetime2"); + b.Property("DateTime") + .HasColumnType("datetime2"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("UserBehaviourLogs"); - }); + b.ToTable("UserBehaviourLogs"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); + b.Property("ClientAppName") + .HasColumnType("nvarchar(max)"); - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); + b.Property("ClientIPAddress") + .HasColumnType("nvarchar(max)"); - b.Property("DateTime") - .HasColumnType("datetime2"); + b.Property("DateTime") + .HasColumnType("datetime2"); - b.Property("Email") - .HasColumnType("nvarchar(max)"); + b.Property("Email") + .HasColumnType("nvarchar(max)"); - b.Property("Language") - .HasColumnType("nvarchar(max)"); + b.Property("Language") + .HasColumnType("nvarchar(max)"); - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); + b.Property("PhoneNumber") + .HasColumnType("nvarchar(max)"); - b.Property("QueueType") - .HasColumnType("int"); + b.Property("QueueType") + .HasColumnType("int"); - b.Property("Secret") - .HasColumnType("nvarchar(450)"); + b.Property("Secret") + .HasColumnType("nvarchar(450)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); + b.HasIndex("Secret") + .IsUnique() + .HasFilter("[Secret] IS NOT NULL"); - b.ToTable("VerifyQueueItems"); - }); + b.ToTable("VerifyQueueItems"); + }); modelBuilder.Entity("RSecurityBackend.Models.Generic.Db.RGenericOption", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("Name") - .HasColumnType("nvarchar(450)"); + b.Property("Name") + .HasColumnType("nvarchar(450)"); - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); + b.Property("RAppUserId") + .HasColumnType("uniqueidentifier"); - b.Property("Value") - .HasColumnType("nvarchar(max)"); + b.Property("Value") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("RAppUserId", "Name") - .IsUnique() - .HasFilter("[RAppUserId] IS NOT NULL AND [Name] IS NOT NULL"); + b.HasIndex("RAppUserId", "Name") + .IsUnique() + .HasFilter("[RAppUserId] IS NOT NULL AND [Name] IS NOT NULL"); - b.ToTable("Options"); - }); + b.ToTable("Options"); + }); modelBuilder.Entity("RSecurityBackend.Models.Generic.Db.RLongRunningJobStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("EndTime") - .HasColumnType("datetime2"); + b.Property("EndTime") + .HasColumnType("datetime2"); - b.Property("Exception") - .HasColumnType("nvarchar(max)"); + b.Property("Exception") + .HasColumnType("nvarchar(max)"); - b.Property("Name") - .HasColumnType("nvarchar(max)"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); - b.Property("Progress") - .HasColumnType("float"); + b.Property("Progress") + .HasColumnType("float"); - b.Property("StartTime") - .HasColumnType("datetime2"); + b.Property("StartTime") + .HasColumnType("datetime2"); - b.Property("Step") - .HasColumnType("nvarchar(max)"); + b.Property("Step") + .HasColumnType("nvarchar(max)"); - b.Property("Succeeded") - .HasColumnType("bit"); + b.Property("Succeeded") + .HasColumnType("bit"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("LongRunningJobs"); - }); + b.ToTable("LongRunningJobs"); + }); modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); + b.Property("ContentType") + .HasColumnType("nvarchar(max)"); - b.Property("DataTime") - .HasColumnType("datetime2"); + b.Property("DataTime") + .HasColumnType("datetime2"); - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); + b.Property("Discriminator") + .IsRequired() + .HasColumnType("nvarchar(max)"); - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); + b.Property("FileSizeInBytes") + .HasColumnType("bigint"); - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); + b.Property("FolderName") + .HasColumnType("nvarchar(max)"); - b.Property("ImageHeight") - .HasColumnType("int"); + b.Property("ImageHeight") + .HasColumnType("int"); - b.Property("ImageWidth") - .HasColumnType("int"); + b.Property("ImageWidth") + .HasColumnType("int"); - b.Property("LastModified") - .HasColumnType("datetime2"); + b.Property("LastModified") + .HasColumnType("datetime2"); - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); + b.Property("OriginalFileName") + .HasColumnType("nvarchar(max)"); - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); + b.Property("StoredFileName") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("GeneralImages"); + b.ToTable("GeneralImages"); - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); + b.HasDiscriminator("Discriminator").HasValue("RImage"); + }); modelBuilder.Entity("RSecurityBackend.Models.Notification.RUserNotification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("DateTime") - .HasColumnType("datetime2"); + b.Property("DateTime") + .HasColumnType("datetime2"); - b.Property("HtmlText") - .HasColumnType("nvarchar(max)"); + b.Property("HtmlText") + .HasColumnType("nvarchar(max)"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.Property("Subject") - .HasColumnType("nvarchar(max)"); + b.Property("Subject") + .HasColumnType("nvarchar(max)"); - b.Property("UserId") - .HasColumnType("uniqueidentifier"); + b.Property("UserId") + .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("Notifications"); - }); + b.ToTable("Notifications"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); + { + b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - b.Property("Description") - .HasColumnType("nvarchar(max)"); + b.Property("Description") + .HasColumnType("nvarchar(max)"); - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("DescriptionInEnglish") + .HasColumnType("nvarchar(max)"); - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); + b.Property("LastModifiedMeta") + .HasColumnType("datetime2"); - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); + b.Property("NormalSizeImageHeight") + .HasColumnType("int"); - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); + b.Property("NormalSizeImageStoredFileName") + .HasColumnType("nvarchar(max)"); - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); + b.Property("NormalSizeImageWidth") + .HasColumnType("int"); - b.Property("Order") - .HasColumnType("int"); + b.Property("Order") + .HasColumnType("int"); - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); + b.Property("RArtifactItemRecordId") + .HasColumnType("uniqueidentifier"); - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); + b.Property("SrcUrl") + .HasColumnType("nvarchar(max)"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .HasColumnType("int"); - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); + b.Property("ThumbnailImageHeight") + .HasColumnType("int"); - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); + b.Property("ThumbnailImageStoredFileName") + .HasColumnType("nvarchar(max)"); - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); + b.Property("ThumbnailImageWidth") + .HasColumnType("int"); - b.Property("Title") - .HasColumnType("nvarchar(max)"); + b.Property("Title") + .HasColumnType("nvarchar(max)"); - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); + b.Property("TitleInEnglish") + .HasColumnType("nvarchar(max)"); - b.HasIndex("RArtifactItemRecordId"); + b.HasIndex("RArtifactItemRecordId"); - b.HasDiscriminator().HasValue("RPictureFile"); - }); + b.HasDiscriminator().HasValue("RPictureFile"); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); modelBuilder.Entity("RMuseum.Models.Accounting.DonationExpenditure", b => - { - b.HasOne("RMuseum.Models.Accounting.GanjoorDonation", "GanjoorDonation") - .WithMany() - .HasForeignKey("GanjoorDonationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Accounting.GanjoorDonation", "GanjoorDonation") + .WithMany() + .HasForeignKey("GanjoorDonationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RMuseum.Models.Accounting.GanjoorExpense", null) - .WithMany("DonationExpenditures") - .HasForeignKey("GanjoorExpenseId"); + b.HasOne("RMuseum.Models.Accounting.GanjoorExpense", null) + .WithMany("DonationExpenditures") + .HasForeignKey("GanjoorExpenseId"); - b.Navigation("GanjoorDonation"); - }); + b.Navigation("GanjoorDonation"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + { + b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) + .WithMany("Items") + .HasForeignKey("RArtifactMasterRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") + .WithMany() + .HasForeignKey("CoverImageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("CoverImage"); - }); + b.Navigation("CoverImage"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); + { + b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) + .WithMany("Tags") + .HasForeignKey("RArtifactItemRecordId"); - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); + b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) + .WithMany("Tags") + .HasForeignKey("RArtifactMasterRecordId"); - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") + .WithMany() + .HasForeignKey("RTagId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("RTag"); - }); + b.Navigation("RTag"); + }); modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") + .WithMany() + .HasForeignKey("RAppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); + b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") + .WithMany() + .HasForeignKey("RArtifactItemRecordId"); - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); + b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") + .WithMany() + .HasForeignKey("RArtifactMasterRecordId"); - b.Navigation("RAppUser"); + b.Navigation("RAppUser"); - b.Navigation("RArtifactItemRecord"); + b.Navigation("RArtifactItemRecord"); - b.Navigation("RArtifactMasterRecord"); - }); + b.Navigation("RArtifactMasterRecord"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Parent") - .WithMany() - .HasForeignKey("ParentId"); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Parent") + .WithMany() + .HasForeignKey("ParentId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") - .WithMany() - .HasForeignKey("PoetId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") + .WithMany() + .HasForeignKey("PoetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("Parent"); + b.Navigation("Parent"); - b.Navigation("Poet"); - }); + b.Navigation("Poet"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorComment", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorComment", "InReplyTo") - .WithMany() - .HasForeignKey("InReplyToId"); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorComment", "InReplyTo") + .WithMany() + .HasForeignKey("InReplyToId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") + .WithMany() + .HasForeignKey("PoemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") + .WithMany() + .HasForeignKey("UserId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse1") - .WithMany() - .HasForeignKey("Verse1Id"); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse1") + .WithMany() + .HasForeignKey("Verse1Id"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse2") - .WithMany() - .HasForeignKey("Verse2Id"); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse2") + .WithMany() + .HasForeignKey("Verse2Id"); - b.Navigation("InReplyTo"); + b.Navigation("InReplyTo"); - b.Navigation("Poem"); + b.Navigation("Poem"); - b.Navigation("User"); + b.Navigation("User"); - b.Navigation("Verse1"); + b.Navigation("Verse1"); - b.Navigation("Verse2"); - }); + b.Navigation("Verse2"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCommentAbuseReport", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorComment", "GanjoorComment") - .WithMany() - .HasForeignKey("GanjoorCommentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorComment", "GanjoorComment") + .WithMany() + .HasForeignKey("GanjoorCommentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "ReportedBy") - .WithMany() - .HasForeignKey("ReportedById"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "ReportedBy") + .WithMany() + .HasForeignKey("ReportedById"); - b.Navigation("GanjoorComment"); + b.Navigation("GanjoorComment"); - b.Navigation("ReportedBy"); - }); + b.Navigation("ReportedBy"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPage", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") - .WithMany() - .HasForeignKey("CatId"); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") + .WithMany() + .HasForeignKey("CatId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPage", "Parent") - .WithMany() - .HasForeignKey("ParentId"); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPage", "Parent") + .WithMany() + .HasForeignKey("ParentId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId"); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") + .WithMany() + .HasForeignKey("PoemId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") - .WithMany() - .HasForeignKey("PoetId"); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") + .WithMany() + .HasForeignKey("PoetId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "SecondPoet") - .WithMany() - .HasForeignKey("SecondPoetId"); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "SecondPoet") + .WithMany() + .HasForeignKey("SecondPoetId"); - b.Navigation("Cat"); + b.Navigation("Cat"); - b.Navigation("Parent"); + b.Navigation("Parent"); - b.Navigation("Poem"); + b.Navigation("Poem"); - b.Navigation("Poet"); + b.Navigation("Poet"); - b.Navigation("SecondPoet"); - }); + b.Navigation("SecondPoet"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPageSnapshot", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPage", "GanjoorPage") - .WithMany() - .HasForeignKey("GanjoorPageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPage", "GanjoorPage") + .WithMany() + .HasForeignKey("GanjoorPageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "MadeObsoleteByUser") - .WithMany() - .HasForeignKey("MadeObsoleteByUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "MadeObsoleteByUser") + .WithMany() + .HasForeignKey("MadeObsoleteByUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("GanjoorPage"); + b.Navigation("GanjoorPage"); - b.Navigation("MadeObsoleteByUser"); - }); + b.Navigation("MadeObsoleteByUser"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") - .WithMany() - .HasForeignKey("CatId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") + .WithMany() + .HasForeignKey("CatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorMetre", "GanjoorMetre") - .WithMany() - .HasForeignKey("GanjoorMetreId"); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorMetre", "GanjoorMetre") + .WithMany() + .HasForeignKey("GanjoorMetreId"); - b.Navigation("Cat"); + b.Navigation("Cat"); - b.Navigation("GanjoorMetre"); - }); + b.Navigation("GanjoorMetre"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") + .WithMany() + .HasForeignKey("PoemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "ReviewerUser") - .WithMany() - .HasForeignKey("ReviewerUserId"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("Poem"); + b.Navigation("Poem"); - b.Navigation("ReviewerUser"); + b.Navigation("ReviewerUser"); - b.Navigation("User"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemTranslation", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoemTranslation", "Language") - .WithMany() - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Language"); - - b.Navigation("Poem"); - }); + b.Navigation("User"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoet", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); + { + b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") + .WithMany() + .HasForeignKey("RImageId"); - b.Navigation("RImage"); - }); + b.Navigation("RImage"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorSiteBanner", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") + .WithMany() + .HasForeignKey("RImageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("RImage"); - }); + b.Navigation("RImage"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") + .WithMany() + .HasForeignKey("PoemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("Poem"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseTranslation", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorLanguage", "Language") - .WithMany() - .HasForeignKey("LanguageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorVerse", "Verse") - .WithMany() - .HasForeignKey("VerseId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Language"); - - b.Navigation("Verse"); - }); + b.Navigation("Poem"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerseVOrderText", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", null) - .WithMany("VerseOrderText") - .HasForeignKey("GanjoorPoemCorrectionId"); - }); + { + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", null) + .WithMany("VerseOrderText") + .HasForeignKey("GanjoorPoemCorrectionId"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.PoemMusicTrack", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorTrack", "GanjoorTrack") - .WithMany() - .HasForeignKey("GanjoorTrackId"); + { + b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorTrack", "GanjoorTrack") + .WithMany() + .HasForeignKey("GanjoorTrackId"); - b.HasOne("RMuseum.Models.MusicCatalogue.GolhaTrack", "GolhaTrack") - .WithMany() - .HasForeignKey("GolhaTrackId"); + b.HasOne("RMuseum.Models.MusicCatalogue.GolhaTrack", "GolhaTrack") + .WithMany() + .HasForeignKey("GolhaTrackId"); - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") + .WithMany() + .HasForeignKey("PoemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") - .WithMany() - .HasForeignKey("SingerId"); + b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") + .WithMany() + .HasForeignKey("SingerId"); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") + .WithMany() + .HasForeignKey("SuggestedById"); - b.Navigation("GanjoorTrack"); + b.Navigation("GanjoorTrack"); - b.Navigation("GolhaTrack"); + b.Navigation("GolhaTrack"); - b.Navigation("Poem"); + b.Navigation("Poem"); - b.Navigation("Singer"); + b.Navigation("Singer"); - b.Navigation("SuggestedBy"); - }); + b.Navigation("SuggestedBy"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorAudio.Recitation", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") + .WithMany() + .HasForeignKey("OwnerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") + .WithMany() + .HasForeignKey("ReviewerId"); - b.Navigation("Owner"); + b.Navigation("Owner"); - b.Navigation("Reviewer"); - }); + b.Navigation("Reviewer"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorAudio.RecitationPublishingTracker", b => - { - b.HasOne("RMuseum.Models.GanjoorAudio.Recitation", "PoemNarration") - .WithMany() - .HasForeignKey("PoemNarrationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.GanjoorAudio.Recitation", "PoemNarration") + .WithMany() + .HasForeignKey("PoemNarrationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("PoemNarration"); - }); + b.Navigation("PoemNarration"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserRecitationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("User"); - }); + b.Navigation("User"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") + .WithMany() + .HasForeignKey("ArtifactId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); + b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") + .WithMany() + .HasForeignKey("ItemId"); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") + .WithMany() + .HasForeignKey("ReviewerId"); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") + .WithMany() + .HasForeignKey("SuggestedById") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("Artifact"); + b.Navigation("Artifact"); - b.Navigation("Item"); + b.Navigation("Item"); - b.Navigation("Reviewer"); + b.Navigation("Reviewer"); - b.Navigation("SuggestedBy"); - }); + b.Navigation("SuggestedBy"); + }); modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); + { + b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") + .WithMany() + .HasForeignKey("ArtifactId"); - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); + b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") + .WithMany() + .HasForeignKey("ItemId"); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") + .WithMany() + .HasForeignKey("ReviewerId"); - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") + .WithMany() + .HasForeignKey("SuggestedById"); - b.Navigation("Artifact"); + b.Navigation("Artifact"); - b.Navigation("Item"); + b.Navigation("Item"); - b.Navigation("Reviewer"); + b.Navigation("Reviewer"); - b.Navigation("SuggestedBy"); - }); + b.Navigation("SuggestedBy"); + }); modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); + { + b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") + .WithMany() + .HasForeignKey("ArtifactId"); - b.Navigation("Artifact"); - }); + b.Navigation("Artifact"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorAlbum", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") - .WithMany("Albums") - .HasForeignKey("SingerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") + .WithMany("Albums") + .HasForeignKey("SingerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("Singer"); - }); + b.Navigation("Singer"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorSinger", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); + { + b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") + .WithMany() + .HasForeignKey("RImageId"); - b.Navigation("RImage"); - }); + b.Navigation("RImage"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorTrack", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorAlbum", "Album") - .WithMany("Tracks") - .HasForeignKey("AlbumId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorAlbum", "Album") + .WithMany("Tracks") + .HasForeignKey("AlbumId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("Album"); - }); + b.Navigation("Album"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaProgram", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GolhaCollection", "GolhaCollection") - .WithMany("Programs") - .HasForeignKey("GolhaCollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.MusicCatalogue.GolhaCollection", "GolhaCollection") + .WithMany("Programs") + .HasForeignKey("GolhaCollectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("GolhaCollection"); - }); + b.Navigation("GolhaCollection"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaTrack", b => - { - b.HasOne("RMuseum.Models.MusicCatalogue.GolhaProgram", "GolhaProgram") - .WithMany("Tracks") - .HasForeignKey("GolhaProgramId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RMuseum.Models.MusicCatalogue.GolhaProgram", "GolhaProgram") + .WithMany("Tracks") + .HasForeignKey("GolhaProgramId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") - .WithMany() - .HasForeignKey("SingerId"); + b.HasOne("RMuseum.Models.MusicCatalogue.GanjoorSinger", "Singer") + .WithMany() + .HasForeignKey("SingerId"); - b.Navigation("GolhaProgram"); + b.Navigation("GolhaProgram"); - b.Navigation("Singer"); - }); + b.Navigation("Singer"); + }); modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") + .WithMany() + .HasForeignKey("RAppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); + b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") + .WithMany() + .HasForeignKey("RArtifactItemRecordId"); - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); + b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") + .WithMany() + .HasForeignKey("RArtifactMasterRecordId"); - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); + b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") + .WithMany() + .HasForeignKey("ReferenceNoteId"); - b.Navigation("RAppUser"); + b.Navigation("RAppUser"); - b.Navigation("RArtifactItemRecord"); + b.Navigation("RArtifactItemRecord"); - b.Navigation("RArtifactMasterRecord"); + b.Navigation("RArtifactMasterRecord"); - b.Navigation("ReferenceNote"); - }); + b.Navigation("ReferenceNote"); + }); modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") + .WithMany() + .HasForeignKey("UserId"); - b.Navigation("User"); - }); + b.Navigation("User"); + }); modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + { + b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) + .WithMany("UploadedFiles") + .HasForeignKey("UploadSessionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); + { + b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") + .WithMany() + .HasForeignKey("RImageId"); - b.Navigation("RImage"); - }); + b.Navigation("RImage"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") + .WithMany() + .HasForeignKey("RImageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("RImage"); - }); + b.Navigation("RImage"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) + .WithMany("Permissions") + .HasForeignKey("RAppRoleId"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") + .WithMany() + .HasForeignKey("RAppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("RAppUser"); - }); + b.Navigation("RAppUser"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RUserBehaviourLog", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("User"); - }); + b.Navigation("User"); + }); modelBuilder.Entity("RSecurityBackend.Models.Generic.Db.RGenericOption", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId"); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") + .WithMany() + .HasForeignKey("RAppUserId"); - b.Navigation("RAppUser"); - }); + b.Navigation("RAppUser"); + }); modelBuilder.Entity("RSecurityBackend.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + { + b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.Navigation("User"); - }); + b.Navigation("User"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); + { + b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) + .WithMany("Images") + .HasForeignKey("RArtifactItemRecordId"); + }); modelBuilder.Entity("RMuseum.Models.Accounting.GanjoorExpense", b => - { - b.Navigation("DonationExpenditures"); - }); + { + b.Navigation("DonationExpenditures"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.Navigation("Images"); + { + b.Navigation("Images"); - b.Navigation("Tags"); - }); + b.Navigation("Tags"); + }); modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.Navigation("Items"); + { + b.Navigation("Items"); - b.Navigation("Tags"); - }); + b.Navigation("Tags"); + }); modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoemCorrection", b => - { - b.Navigation("VerseOrderText"); - }); + { + b.Navigation("VerseOrderText"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorAlbum", b => - { - b.Navigation("Tracks"); - }); + { + b.Navigation("Tracks"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorSinger", b => - { - b.Navigation("Albums"); - }); + { + b.Navigation("Albums"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaCollection", b => - { - b.Navigation("Programs"); - }); + { + b.Navigation("Programs"); + }); modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaProgram", b => - { - b.Navigation("Tracks"); - }); + { + b.Navigation("Tracks"); + }); modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.Navigation("UploadedFiles"); - }); + { + b.Navigation("UploadedFiles"); + }); modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppRole", b => - { - b.Navigation("Permissions"); - }); + { + b.Navigation("Permissions"); + }); #pragma warning restore 612, 618 } } diff --git a/RMuseum/Models/Ganjoor/GanjoorLanguage.cs b/RMuseum/Models/Ganjoor/GanjoorLanguage.cs index ccc9b84a..32ffc785 100644 --- a/RMuseum/Models/Ganjoor/GanjoorLanguage.cs +++ b/RMuseum/Models/Ganjoor/GanjoorLanguage.cs @@ -15,9 +15,24 @@ /// public string Name { get; set; } + /// + /// code + /// + public string Code { get; set; } + + /// + /// native name + /// + public string NativeName { get; set; } + /// /// is right to left /// public bool RightToLeft { get; set; } + + /// + /// description + /// + public string Description { get; set; } } } diff --git a/RMuseum/Models/Ganjoor/GanjoorPoemTranslation.cs b/RMuseum/Models/Ganjoor/GanjoorPoemTranslation.cs index 7ce76270..32ec698c 100644 --- a/RMuseum/Models/Ganjoor/GanjoorPoemTranslation.cs +++ b/RMuseum/Models/Ganjoor/GanjoorPoemTranslation.cs @@ -1,4 +1,8 @@ -namespace RMuseum.Models.Ganjoor +using RSecurityBackend.Models.Auth.Db; +using System; +using System.Collections.Generic; + +namespace RMuseum.Models.Ganjoor { /// /// poem translation @@ -35,9 +39,29 @@ /// public string Title { get; set; } + /// + /// verses + /// + public List Verses { get; set; } + /// /// published /// public bool Published { get; set; } + + /// + /// user id + /// + public Guid UserId { get; set; } + + /// + /// user + /// + public RAppUser User { get; set; } + + /// + /// date/time + /// + public DateTime DateTime { get; set; } } } diff --git a/RMuseum/Models/Ganjoor/GanjoorVerseTranslation.cs b/RMuseum/Models/Ganjoor/GanjoorVerseTranslation.cs index 73501d7a..832b4908 100644 --- a/RMuseum/Models/Ganjoor/GanjoorVerseTranslation.cs +++ b/RMuseum/Models/Ganjoor/GanjoorVerseTranslation.cs @@ -20,16 +20,6 @@ /// public GanjoorVerse Verse { get; set; } - /// - /// language - /// - public int LanguageId { get; set; } - - /// - /// language - /// - public GanjoorLanguage Language { get; set; } - /// /// translated text /// diff --git a/RMuseum/Models/Ganjoor/ViewModels/GanjoorPoemTranslationViewModel.cs b/RMuseum/Models/Ganjoor/ViewModels/GanjoorPoemTranslationViewModel.cs index 5f256b24..6efa37a9 100644 --- a/RMuseum/Models/Ganjoor/ViewModels/GanjoorPoemTranslationViewModel.cs +++ b/RMuseum/Models/Ganjoor/ViewModels/GanjoorPoemTranslationViewModel.cs @@ -19,6 +19,11 @@ /// public string Title { get; set; } + /// + /// published + /// + public bool Published { get; set; } + /// /// translated verses /// diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml index 1ecef4ca..572b98d3 100644 --- a/RMuseum/RMuseum.xml +++ b/RMuseum/RMuseum.xml @@ -1895,11 +1895,6 @@ poem translations - - - verse translations - - donation expenditures @@ -4573,11 +4568,26 @@ name + + + code + + + + + native name + + is right to left + + + description + + Poem prosodic Metre @@ -5087,11 +5097,31 @@ title translation + + + verses + + published + + + user id + + + + + user + + + + + date/time + + Ganjoor Poet @@ -5232,16 +5262,6 @@ verse - - - language - - - - - language - - translated text @@ -6183,6 +6203,11 @@ translated title + + + published + + translated verses @@ -8421,12 +8446,11 @@ translation service implementation - + add language - - + @@ -8456,11 +8480,12 @@ - + add or update poem translation + @@ -10078,12 +10103,11 @@ translation service implementation - + add language - - + @@ -10113,10 +10137,11 @@ - + add or update poem translation + diff --git a/RMuseum/Services/IGanjoorTranslationService.cs b/RMuseum/Services/IGanjoorTranslationService.cs index 148688d1..25798e36 100644 --- a/RMuseum/Services/IGanjoorTranslationService.cs +++ b/RMuseum/Services/IGanjoorTranslationService.cs @@ -1,6 +1,7 @@ using RMuseum.Models.Ganjoor; using RMuseum.Models.Ganjoor.ViewModels; using RSecurityBackend.Models.Generic; +using System; using System.Threading.Tasks; namespace RMuseum.Services @@ -13,10 +14,9 @@ namespace RMuseum.Services /// /// add language /// - /// - /// + /// /// - Task> AddLanguageAsync(string name, bool rtl); + Task> AddLanguageAsync(GanjoorLanguage lang); /// @@ -52,8 +52,9 @@ namespace RMuseum.Services /// add or update poem translation /// /// + /// /// - Task> AddOrUpdatePoemTranslation(GanjoorPoemTranslationViewModel translation); + Task> AddPoemTranslation(Guid userId, GanjoorPoemTranslationViewModel translation); /// /// get translations for a poem diff --git a/RMuseum/Services/Implementation/GanjoorTranslationService.cs b/RMuseum/Services/Implementation/GanjoorTranslationService.cs index 6d4763ab..e4a3c749 100644 --- a/RMuseum/Services/Implementation/GanjoorTranslationService.cs +++ b/RMuseum/Services/Implementation/GanjoorTranslationService.cs @@ -18,26 +18,20 @@ namespace RMuseum.Services.Implementation /// /// add language /// - /// - /// + /// /// - public async Task> AddLanguageAsync(string name, bool rtl) + public async Task> AddLanguageAsync(GanjoorLanguage lang) { - var existing = await _context.GanjoorLanguages.Where(l => l.Name == name).FirstOrDefaultAsync(); + var existing = await _context.GanjoorLanguages.Where(l => l.Name == lang.Name || l.Code == lang.Code).FirstOrDefaultAsync(); if (existing != null) - return new RServiceResult(null, "نام تکراری است."); + return new RServiceResult(null, "اطلاعات تکراری است."); try { - var lang = new GanjoorLanguage() - { - Name = name, - RightToLeft = rtl - }; _context.GanjoorLanguages.Add(lang); await _context.SaveChangesAsync(); return new RServiceResult(lang); } - catch(Exception exp) + catch (Exception exp) { return new RServiceResult(null, exp.ToString()); } @@ -58,6 +52,9 @@ namespace RMuseum.Services.Implementation lang.Name = updated.Name; lang.RightToLeft = updated.RightToLeft; + lang.Code = updated.Code; + lang.NativeName = updated.NativeName; + lang.Description = updated.Description; _context.Update(lang); await _context.SaveChangesAsync(); @@ -129,57 +126,53 @@ namespace RMuseum.Services.Implementation /// /// add or update poem translation /// + /// /// /// - public async Task> AddOrUpdatePoemTranslation(GanjoorPoemTranslationViewModel translation) + public async Task> AddPoemTranslation(Guid userId, GanjoorPoemTranslationViewModel translation) { try { - var dbTranslation = await _context.PoemTranslations.Where(t => t.LanguageId == translation.LanguageId && t.PoemId == translation.PoemId).SingleOrDefaultAsync(); - if(dbTranslation == null) + if (translation.Published) { - dbTranslation = new GanjoorPoemTranslation() + var oldPublished = await _context.PoemTranslations.Where(t => t.LanguageId == translation.LanguageId && t.PoemId == translation.PoemId && t.Published == true).ToListAsync(); + foreach (var item in oldPublished) { - LanguageId = translation.LanguageId, - PoemId = translation.PoemId, - Title = translation.Title, - Published = true - }; - _context.PoemTranslations.Add(dbTranslation); + item.Published = false; + _context.PoemTranslations.Update(item); + } } - else + var dbTranslation = new GanjoorPoemTranslation() { - dbTranslation.Title = translation.Title; - _context.PoemTranslations.Update(dbTranslation); - } + LanguageId = translation.LanguageId, + PoemId = translation.PoemId, + Title = translation.Title, + Published = true, + Verses = new List(), + UserId = userId, + DateTime = DateTime.Now + }; var verses = await _context.GanjoorVerses.Where(v => v.PoemId == translation.PoemId).ToListAsync(); foreach (var translatedVerse in translation.TranslatedVerses) { var verse = verses.Where(v => v.VOrder == translatedVerse.VOrder).Single(); - var dbTranslatedVerse = await _context.VerseTranslations.Where(t => t.LanguageId == translation.LanguageId && t.VerseId == verse.Id).SingleOrDefaultAsync(); - if (dbTranslatedVerse == null) - { - dbTranslatedVerse = new GanjoorVerseTranslation() + dbTranslation.Verses + .Add( + new GanjoorVerseTranslation() { - LanguageId = translation.LanguageId, VerseId = verse.Id, TText = translatedVerse.TText - }; - _context.VerseTranslations.Add(dbTranslatedVerse); - } - else - { - dbTranslatedVerse.TText = translatedVerse.TText; - _context.VerseTranslations.Update(dbTranslatedVerse); - } + }); } + _context.PoemTranslations.Add(dbTranslation); + await _context.SaveChangesAsync(); return new RServiceResult(true); } - catch(Exception exp) + catch (Exception exp) { return new RServiceResult(false, exp.ToString()); } @@ -195,12 +188,11 @@ namespace RMuseum.Services.Implementation { try { - var dbTranslation = await _context.PoemTranslations.Where(t => t.LanguageId == langId && t.PoemId == poemId).SingleOrDefaultAsync(); + var dbTranslation = await _context.PoemTranslations.Include(t => t.Verses).Where(t => t.LanguageId == langId && t.PoemId == poemId && t.Published == true).SingleOrDefaultAsync(); if (dbTranslation == null) return new RServiceResult(null); //not found var verses = await _context.GanjoorVerses.Where(v => v.PoemId == poemId).ToListAsync(); var verseIds = verses.Select(v => v.Id).ToList(); - var dbVerseTranslations = await _context.VerseTranslations.Where(t => t.LanguageId == langId && verseIds.Contains(t.VerseId)).OrderBy(t => t.VerseId).ToArrayAsync(); return new RServiceResult ( @@ -209,7 +201,7 @@ namespace RMuseum.Services.Implementation LanguageId = langId, PoemId = poemId, Title = dbTranslation == null ? null : dbTranslation.Title, - TranslatedVerses = dbVerseTranslations.Select(v => + TranslatedVerses = dbTranslation.Verses.Select(v => new GanjoorVerseTranslationViewModel() { VOrder = verses.Where(pv => pv.Id == v.VerseId).Single().VOrder, @@ -220,7 +212,7 @@ namespace RMuseum.Services.Implementation ); } - catch(Exception exp) + catch (Exception exp) { return new RServiceResult(null, exp.ToString()); } @@ -235,17 +227,16 @@ namespace RMuseum.Services.Implementation { try { - var dbTranslations = await _context.PoemTranslations.Where(t => t.PoemId == poemId).OrderBy(t => t.LanguageId).ToArrayAsync(); + var dbTranslations = await _context.PoemTranslations.Include(t => t.Verses).Where(t => t.PoemId == poemId && t.Published == true).OrderBy(t => t.LanguageId).ToArrayAsync(); List res = new List(); - if(dbTranslations.Length > 0) + if (dbTranslations.Length > 0) { } var verses = await _context.GanjoorVerses.Where(v => v.PoemId == poemId).ToListAsync(); var verseIds = verses.Select(v => v.Id).ToList(); - foreach(var dbTranslation in dbTranslations) + foreach (var dbTranslation in dbTranslations) { - var dbVerseTranslations = await _context.VerseTranslations.Where(t => t.LanguageId == dbTranslation.LanguageId && verseIds.Contains(t.VerseId)).OrderBy(t => t.VerseId).ToArrayAsync(); res.Add( new GanjoorPoemTranslationViewModel() @@ -253,7 +244,7 @@ namespace RMuseum.Services.Implementation LanguageId = dbTranslation.LanguageId, PoemId = poemId, Title = dbTranslation == null ? null : dbTranslation.Title, - TranslatedVerses = dbVerseTranslations.Select(v => + TranslatedVerses = dbTranslation.Verses.Select(v => new GanjoorVerseTranslationViewModel() { VOrder = verses.Where(pv => pv.Id == v.VerseId).Single().VOrder,