From dd7b240231d5559c63faa7f6e1e3b09a5235e9f9 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 11:05:51 +0100 Subject: [PATCH 01/23] Allow to choose no company when creating document company. --- cicm_web/Areas/Admin/Views/DocumentCompanies/Create.cshtml | 4 ++++ cicm_web/cicm_web.csproj | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cicm_web/Areas/Admin/Views/DocumentCompanies/Create.cshtml b/cicm_web/Areas/Admin/Views/DocumentCompanies/Create.cshtml index 6c393766..2da050e7 100644 --- a/cicm_web/Areas/Admin/Views/DocumentCompanies/Create.cshtml +++ b/cicm_web/Areas/Admin/Views/DocumentCompanies/Create.cshtml @@ -31,6 +31,10 @@
diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index fae80aae..37064e82 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.845 + 3.0.99.846 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 27f6c1e0695c37ffa78b8f7ef221edb1cf75f87f Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 11:45:43 +0100 Subject: [PATCH 02/23] Fix one to one relationship between company and document company. --- ...617_FixDocumentCompanyOneToOne.Designer.cs | 8186 +++++++++++++++++ ...190630103617_FixDocumentCompanyOneToOne.cs | 35 + .../Migrations/cicmContextModelSnapshot.cs | 13 +- Cicm.Database/Models/cicmContext.cs | 3 - cicm_web/cicm_web.csproj | 2 +- 5 files changed, 8230 insertions(+), 9 deletions(-) create mode 100644 Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.Designer.cs create mode 100644 Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.cs diff --git a/Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.Designer.cs b/Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.Designer.cs new file mode 100644 index 00000000..2e0456ed --- /dev/null +++ b/Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.Designer.cs @@ -0,0 +1,8186 @@ +// +using System; +using Cicm.Database.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace Cicm.Database.Migrations +{ + [DbContext(typeof(cicmContext))] + [Migration("20190630103617_FixDocumentCompanyOneToOne")] + partial class FixDocumentCompanyOneToOne + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Cicm.Database.Models.Book", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("Edition"); + + b.Property("Isbn") + .HasMaxLength(13); + + b.Property("NativeTitle"); + + b.Property("Pages"); + + b.Property("PreviousId"); + + b.Property("Published"); + + b.Property("SourceId"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("Edition"); + + b.HasIndex("Isbn"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Pages"); + + b.HasIndex("PreviousId") + .IsUnique(); + + b.HasIndex("Published"); + + b.HasIndex("SourceId"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Books"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("MachineId"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("MachineId"); + + b.ToTable("BooksByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("MachineFamilyId"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("MachineFamilyId"); + + b.ToTable("BooksByMachineFamilies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BrowserTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Agif") + .ValueGeneratedOnAdd() + .HasColumnName("agif") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("varchar(64)") + .HasDefaultValueSql("''") + .HasMaxLength(64); + + b.Property("Colors") + .ValueGeneratedOnAdd() + .HasColumnName("colors") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Flash") + .ValueGeneratedOnAdd() + .HasColumnName("flash") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Frames") + .ValueGeneratedOnAdd() + .HasColumnName("frames") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Gif87") + .ValueGeneratedOnAdd() + .HasColumnName("gif87") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Gif89") + .ValueGeneratedOnAdd() + .HasColumnName("gif89") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Jpeg") + .ValueGeneratedOnAdd() + .HasColumnName("jpeg") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Js") + .ValueGeneratedOnAdd() + .HasColumnName("js") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Os") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("os") + .HasColumnType("varchar(32)") + .HasDefaultValueSql("''") + .HasMaxLength(32); + + b.Property("Platform") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("platform") + .HasColumnType("varchar(8)") + .HasDefaultValueSql("''") + .HasMaxLength(8); + + b.Property("Png") + .ValueGeneratedOnAdd() + .HasColumnName("png") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Pngt") + .ValueGeneratedOnAdd() + .HasColumnName("pngt") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Table") + .ValueGeneratedOnAdd() + .HasColumnName("table") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("UserAgent") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("user_agent") + .HasColumnType("varchar(128)") + .HasDefaultValueSql("''") + .HasMaxLength(128); + + b.Property("Version") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("version") + .HasColumnType("varchar(16)") + .HasDefaultValueSql("''") + .HasMaxLength(16); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_browser_tests_browser"); + + b.HasIndex("Os") + .HasName("idx_browser_tests_os"); + + b.HasIndex("Platform") + .HasName("idx_browser_tests_platform"); + + b.HasIndex("UserAgent") + .HasName("idx_browser_tests_user_agent"); + + b.HasIndex("Version") + .HasName("idx_browser_tests_version"); + + b.ToTable("browser_tests"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CicmDb", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Updated") + .ValueGeneratedOnAdd() + .HasColumnName("updated") + .HasColumnType("datetime") + .HasDefaultValueSql("'CURRENT_TIMESTAMP'"); + + b.Property("Version") + .HasColumnName("version") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.ToTable("cicm_db"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByBook", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("CompanyId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("CompanyId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByBooks"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("DocumentId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByDocuments"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByMagazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("MagazineId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("MagazineId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByMagazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Company", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Address") + .HasColumnName("address") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("City") + .HasColumnName("city") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("CountryId") + .HasColumnName("country") + .HasColumnType("smallint(3)"); + + b.Property("DocumentCompanyId"); + + b.Property("Facebook") + .HasColumnName("facebook") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Founded") + .HasColumnName("founded") + .HasColumnType("datetime"); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("varchar(128)") + .HasDefaultValueSql("''"); + + b.Property("PostalCode") + .HasColumnName("postal_code") + .HasColumnType("varchar(25)") + .HasMaxLength(25); + + b.Property("Province") + .HasColumnName("province") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("Sold") + .HasColumnName("sold") + .HasColumnType("datetime"); + + b.Property("SoldToId") + .HasColumnName("sold_to") + .HasColumnType("int(11)"); + + b.Property("Status") + .HasColumnName("status") + .HasColumnType("int(11)"); + + b.Property("Twitter") + .HasColumnName("twitter") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Website") + .HasColumnName("website") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.HasKey("Id"); + + b.HasIndex("Address") + .HasName("idx_companies_address"); + + b.HasIndex("City") + .HasName("idx_companies_city"); + + b.HasIndex("CountryId") + .HasName("idx_companies_country"); + + b.HasIndex("Facebook") + .HasName("idx_companies_facebook"); + + b.HasIndex("Founded") + .HasName("idx_companies_founded"); + + b.HasIndex("Name") + .HasName("idx_companies_name"); + + b.HasIndex("PostalCode") + .HasName("idx_companies_postal_code"); + + b.HasIndex("Province") + .HasName("idx_companies_province"); + + b.HasIndex("Sold") + .HasName("idx_companies_sold"); + + b.HasIndex("SoldToId") + .HasName("idx_companies_sold_to"); + + b.HasIndex("Status") + .HasName("idx_companies_status"); + + b.HasIndex("Twitter") + .HasName("idx_companies_twitter"); + + b.HasIndex("Website") + .HasName("idx_companies_website"); + + b.ToTable("companies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyDescription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("Html") + .HasMaxLength(262144); + + b.Property("Text") + .IsRequired() + .HasMaxLength(262144); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("Text") + .HasAnnotation("MySql:FullTextIndex", true); + + b.ToTable("CompanyDescriptions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyLogo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company_id") + .HasColumnType("int(11)"); + + b.Property("Guid") + .HasColumnName("logo_guid") + .HasColumnType("char(36)"); + + b.Property("Year") + .HasColumnName("year") + .HasColumnType("int(4)"); + + b.HasKey("Id", "CompanyId", "Guid"); + + b.HasIndex("CompanyId") + .HasName("idx_company_id"); + + b.HasIndex("Guid") + .HasName("idx_guid"); + + b.HasIndex("Id") + .IsUnique() + .HasName("idx_id"); + + b.ToTable("company_logos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Document", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("NativeTitle"); + + b.Property("Published"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Published"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Documents"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentCompany", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .IsUnique(); + + b.HasIndex("Name"); + + b.ToTable("DocumentCompanies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentPerson", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.Property("PersonId"); + + b.Property("Surname") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.HasIndex("PersonId") + .IsUnique(); + + b.HasIndex("Surname"); + + b.ToTable("DocumentPeople"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(3)"); + + b.Property("Enabled") + .ValueGeneratedOnAdd() + .HasDefaultValue(true); + + b.Property("Name"); + + b.HasKey("Id"); + + b.HasIndex("Enabled"); + + b.HasIndex("Name"); + + b.ToTable("DocumentRoles"); + + b.HasData( + new + { + Id = "abr", + Enabled = true, + Name = "Abridger" + }, + new + { + Id = "acp", + Enabled = true, + Name = "Art copyist" + }, + new + { + Id = "act", + Enabled = true, + Name = "Actor" + }, + new + { + Id = "adi", + Enabled = true, + Name = "Art director" + }, + new + { + Id = "adp", + Enabled = true, + Name = "Adapter" + }, + new + { + Id = "aft", + Enabled = true, + Name = "Author of afterword, colophon, etc." + }, + new + { + Id = "anl", + Enabled = true, + Name = "Analyst" + }, + new + { + Id = "anm", + Enabled = true, + Name = "Animator" + }, + new + { + Id = "ann", + Enabled = true, + Name = "Annotator" + }, + new + { + Id = "ant", + Enabled = true, + Name = "Bibliographic antecedent" + }, + new + { + Id = "ape", + Enabled = true, + Name = "Appellee" + }, + new + { + Id = "apl", + Enabled = true, + Name = "Appellant" + }, + new + { + Id = "app", + Enabled = true, + Name = "Applicant" + }, + new + { + Id = "aqt", + Enabled = true, + Name = "Author in quotations or text abstracts" + }, + new + { + Id = "arc", + Enabled = true, + Name = "Architect" + }, + new + { + Id = "ard", + Enabled = true, + Name = "Artistic director" + }, + new + { + Id = "arr", + Enabled = true, + Name = "Arranger" + }, + new + { + Id = "art", + Enabled = true, + Name = "Artist" + }, + new + { + Id = "asg", + Enabled = true, + Name = "Assignee" + }, + new + { + Id = "asn", + Enabled = true, + Name = "Associated name" + }, + new + { + Id = "ato", + Enabled = true, + Name = "Autographer" + }, + new + { + Id = "att", + Enabled = true, + Name = "Attributed name" + }, + new + { + Id = "auc", + Enabled = true, + Name = "Auctioneer" + }, + new + { + Id = "aud", + Enabled = true, + Name = "Author of dialog" + }, + new + { + Id = "aui", + Enabled = true, + Name = "Author of introduction, etc." + }, + new + { + Id = "aus", + Enabled = true, + Name = "Screenwriter" + }, + new + { + Id = "aut", + Enabled = true, + Name = "Author" + }, + new + { + Id = "bdd", + Enabled = true, + Name = "Binding designer" + }, + new + { + Id = "bjd", + Enabled = true, + Name = "Bookjacket designer" + }, + new + { + Id = "bkd", + Enabled = true, + Name = "Book designer" + }, + new + { + Id = "bkp", + Enabled = true, + Name = "Book producer" + }, + new + { + Id = "blw", + Enabled = true, + Name = "Blurb writer" + }, + new + { + Id = "bnd", + Enabled = true, + Name = "Binder" + }, + new + { + Id = "bpd", + Enabled = true, + Name = "Bookplate designer" + }, + new + { + Id = "brd", + Enabled = true, + Name = "Broadcaster" + }, + new + { + Id = "brl", + Enabled = true, + Name = "Braille embosser" + }, + new + { + Id = "bsl", + Enabled = true, + Name = "Bookseller" + }, + new + { + Id = "cas", + Enabled = true, + Name = "Caster" + }, + new + { + Id = "ccp", + Enabled = true, + Name = "Conceptor" + }, + new + { + Id = "chr", + Enabled = true, + Name = "Choreographer" + }, + new + { + Id = "clb", + Enabled = false, + Name = "Collaborator" + }, + new + { + Id = "cli", + Enabled = true, + Name = "Client" + }, + new + { + Id = "cll", + Enabled = true, + Name = "Calligrapher" + }, + new + { + Id = "clr", + Enabled = true, + Name = "Colorist" + }, + new + { + Id = "clt", + Enabled = true, + Name = "Collotyper" + }, + new + { + Id = "cmm", + Enabled = true, + Name = "Commentator" + }, + new + { + Id = "cmp", + Enabled = true, + Name = "Composer" + }, + new + { + Id = "cmt", + Enabled = true, + Name = "Compositor" + }, + new + { + Id = "cnd", + Enabled = true, + Name = "Conductor" + }, + new + { + Id = "cng", + Enabled = true, + Name = "Cinematographer" + }, + new + { + Id = "cns", + Enabled = true, + Name = "Censor" + }, + new + { + Id = "coe", + Enabled = true, + Name = "Contestant-appellee" + }, + new + { + Id = "col", + Enabled = true, + Name = "Collector" + }, + new + { + Id = "com", + Enabled = true, + Name = "Compiler" + }, + new + { + Id = "con", + Enabled = true, + Name = "Conservator" + }, + new + { + Id = "cor", + Enabled = true, + Name = "Collection registrar" + }, + new + { + Id = "cos", + Enabled = true, + Name = "Contestant" + }, + new + { + Id = "cot", + Enabled = true, + Name = "Contestant-appellant" + }, + new + { + Id = "cou", + Enabled = true, + Name = "Court governed" + }, + new + { + Id = "cov", + Enabled = true, + Name = "Cover designer" + }, + new + { + Id = "cpc", + Enabled = true, + Name = "Copyright claimant" + }, + new + { + Id = "cpe", + Enabled = true, + Name = "Complainant-appellee" + }, + new + { + Id = "cph", + Enabled = true, + Name = "Copyright holder" + }, + new + { + Id = "cpl", + Enabled = true, + Name = "Complainant" + }, + new + { + Id = "cpt", + Enabled = true, + Name = "Complainant-appellant" + }, + new + { + Id = "cre", + Enabled = true, + Name = "Creator" + }, + new + { + Id = "crp", + Enabled = true, + Name = "Correspondent" + }, + new + { + Id = "crr", + Enabled = true, + Name = "Corrector" + }, + new + { + Id = "crt", + Enabled = true, + Name = "Court reporter" + }, + new + { + Id = "csl", + Enabled = true, + Name = "Consultant" + }, + new + { + Id = "csp", + Enabled = true, + Name = "Consultant to a project" + }, + new + { + Id = "cst", + Enabled = true, + Name = "Costume designer" + }, + new + { + Id = "ctb", + Enabled = true, + Name = "Contributor" + }, + new + { + Id = "cte", + Enabled = true, + Name = "Contestee-appellee" + }, + new + { + Id = "ctg", + Enabled = true, + Name = "Cartographer" + }, + new + { + Id = "ctr", + Enabled = true, + Name = "Contractor" + }, + new + { + Id = "cts", + Enabled = true, + Name = "Contestee" + }, + new + { + Id = "ctt", + Enabled = true, + Name = "Contestee-appellant" + }, + new + { + Id = "cur", + Enabled = true, + Name = "Curator" + }, + new + { + Id = "cwt", + Enabled = true, + Name = "Commentator for written text" + }, + new + { + Id = "dbp", + Enabled = true, + Name = "Distribution place" + }, + new + { + Id = "dfd", + Enabled = true, + Name = "Defendant" + }, + new + { + Id = "dfe", + Enabled = true, + Name = "Defendant-appellee" + }, + new + { + Id = "dft", + Enabled = true, + Name = "Defendant-appellant" + }, + new + { + Id = "dgg", + Enabled = true, + Name = "Degree granting institution" + }, + new + { + Id = "dgs", + Enabled = true, + Name = "Degree supervisor" + }, + new + { + Id = "dis", + Enabled = true, + Name = "Dissertant" + }, + new + { + Id = "dln", + Enabled = true, + Name = "Delineator" + }, + new + { + Id = "dnc", + Enabled = true, + Name = "Dancer" + }, + new + { + Id = "dnr", + Enabled = true, + Name = "Donor" + }, + new + { + Id = "dpc", + Enabled = true, + Name = "Depicted" + }, + new + { + Id = "dpt", + Enabled = true, + Name = "Depositor" + }, + new + { + Id = "drm", + Enabled = true, + Name = "Draftsman" + }, + new + { + Id = "drt", + Enabled = true, + Name = "Director" + }, + new + { + Id = "dsr", + Enabled = true, + Name = "Designer" + }, + new + { + Id = "dst", + Enabled = true, + Name = "Distributor" + }, + new + { + Id = "dtc", + Enabled = true, + Name = "Data contributor" + }, + new + { + Id = "dte", + Enabled = true, + Name = "Dedicatee" + }, + new + { + Id = "dtm", + Enabled = true, + Name = "Data manager" + }, + new + { + Id = "dto", + Enabled = true, + Name = "Dedicator" + }, + new + { + Id = "dub", + Enabled = true, + Name = "Dubious author" + }, + new + { + Id = "edc", + Enabled = true, + Name = "Editor of compilation" + }, + new + { + Id = "edm", + Enabled = true, + Name = "Editor of moving image work" + }, + new + { + Id = "edt", + Enabled = true, + Name = "Editor" + }, + new + { + Id = "egr", + Enabled = true, + Name = "Engraver" + }, + new + { + Id = "elg", + Enabled = true, + Name = "Electrician" + }, + new + { + Id = "elt", + Enabled = true, + Name = "Electrotyper" + }, + new + { + Id = "eng", + Enabled = true, + Name = "Engineer" + }, + new + { + Id = "enj", + Enabled = true, + Name = "Enacting jurisdiction" + }, + new + { + Id = "etr", + Enabled = true, + Name = "Etcher" + }, + new + { + Id = "evp", + Enabled = true, + Name = "Event place" + }, + new + { + Id = "exp", + Enabled = true, + Name = "Expert" + }, + new + { + Id = "fac", + Enabled = true, + Name = "Facsimilist" + }, + new + { + Id = "fds", + Enabled = true, + Name = "Film distributor" + }, + new + { + Id = "fld", + Enabled = true, + Name = "Field director" + }, + new + { + Id = "flm", + Enabled = true, + Name = "Film editor" + }, + new + { + Id = "fmd", + Enabled = true, + Name = "Film director" + }, + new + { + Id = "fmk", + Enabled = true, + Name = "Filmmaker" + }, + new + { + Id = "fmo", + Enabled = true, + Name = "Former owner" + }, + new + { + Id = "fmp", + Enabled = true, + Name = "Film producer" + }, + new + { + Id = "fnd", + Enabled = true, + Name = "Funder" + }, + new + { + Id = "fpy", + Enabled = true, + Name = "First party" + }, + new + { + Id = "frg", + Enabled = true, + Name = "Forger" + }, + new + { + Id = "gis", + Enabled = true, + Name = "Geographic information specialist" + }, + new + { + Id = "grt", + Enabled = false, + Name = "Graphic technician" + }, + new + { + Id = "his", + Enabled = true, + Name = "Host institution" + }, + new + { + Id = "hnr", + Enabled = true, + Name = "Honoree" + }, + new + { + Id = "hst", + Enabled = true, + Name = "Host" + }, + new + { + Id = "ill", + Enabled = true, + Name = "Illustrator" + }, + new + { + Id = "ilu", + Enabled = true, + Name = "Illuminator" + }, + new + { + Id = "ins", + Enabled = true, + Name = "Inscriber" + }, + new + { + Id = "inv", + Enabled = true, + Name = "Inventor" + }, + new + { + Id = "isb", + Enabled = true, + Name = "Issuing body" + }, + new + { + Id = "itr", + Enabled = true, + Name = "Instrumentalist" + }, + new + { + Id = "ive", + Enabled = true, + Name = "Interviewee" + }, + new + { + Id = "ivr", + Enabled = true, + Name = "Interviewer" + }, + new + { + Id = "jud", + Enabled = true, + Name = "Judge" + }, + new + { + Id = "jug", + Enabled = true, + Name = "Jurisdiction governed" + }, + new + { + Id = "lbr", + Enabled = true, + Name = "Laboratory" + }, + new + { + Id = "lbt", + Enabled = true, + Name = "Librettist" + }, + new + { + Id = "ldr", + Enabled = true, + Name = "Laboratory director" + }, + new + { + Id = "led", + Enabled = true, + Name = "Lead" + }, + new + { + Id = "lee", + Enabled = true, + Name = "Libelee-appellee" + }, + new + { + Id = "lel", + Enabled = true, + Name = "Libelee" + }, + new + { + Id = "len", + Enabled = true, + Name = "Lender" + }, + new + { + Id = "let", + Enabled = true, + Name = "Libelee-appellant" + }, + new + { + Id = "lgd", + Enabled = true, + Name = "Lighting designer" + }, + new + { + Id = "lie", + Enabled = true, + Name = "Libelant-appellee" + }, + new + { + Id = "lil", + Enabled = true, + Name = "Libelant" + }, + new + { + Id = "lit", + Enabled = true, + Name = "Libelant-appellant" + }, + new + { + Id = "lsa", + Enabled = true, + Name = "Landscape architect" + }, + new + { + Id = "lse", + Enabled = true, + Name = "Licensee" + }, + new + { + Id = "lso", + Enabled = true, + Name = "Licensor" + }, + new + { + Id = "ltg", + Enabled = true, + Name = "Lithographer" + }, + new + { + Id = "lyr", + Enabled = true, + Name = "Lyricist" + }, + new + { + Id = "mcp", + Enabled = true, + Name = "Music copyist" + }, + new + { + Id = "mdc", + Enabled = true, + Name = "Metadata contact" + }, + new + { + Id = "med", + Enabled = true, + Name = "Medium" + }, + new + { + Id = "mfp", + Enabled = true, + Name = "Manufacture place" + }, + new + { + Id = "mfr", + Enabled = true, + Name = "Manufacturer" + }, + new + { + Id = "mod", + Enabled = true, + Name = "Moderator" + }, + new + { + Id = "mon", + Enabled = true, + Name = "Monitor" + }, + new + { + Id = "mrb", + Enabled = true, + Name = "Marbler" + }, + new + { + Id = "mrk", + Enabled = true, + Name = "Markup editor" + }, + new + { + Id = "msd", + Enabled = true, + Name = "Musical director" + }, + new + { + Id = "mte", + Enabled = true, + Name = "Metal-engraver" + }, + new + { + Id = "mtk", + Enabled = true, + Name = "Minute taker" + }, + new + { + Id = "mus", + Enabled = true, + Name = "Musician" + }, + new + { + Id = "nrt", + Enabled = true, + Name = "Narrator" + }, + new + { + Id = "opn", + Enabled = true, + Name = "Opponent" + }, + new + { + Id = "org", + Enabled = true, + Name = "Originator" + }, + new + { + Id = "orm", + Enabled = true, + Name = "Organizer" + }, + new + { + Id = "osp", + Enabled = true, + Name = "Onscreen presenter" + }, + new + { + Id = "oth", + Enabled = true, + Name = "Other" + }, + new + { + Id = "own", + Enabled = true, + Name = "Owner" + }, + new + { + Id = "pan", + Enabled = true, + Name = "Panelist" + }, + new + { + Id = "pat", + Enabled = true, + Name = "Patron" + }, + new + { + Id = "pbd", + Enabled = true, + Name = "Publishing director" + }, + new + { + Id = "pbl", + Enabled = true, + Name = "Publisher" + }, + new + { + Id = "pdr", + Enabled = true, + Name = "Project director" + }, + new + { + Id = "pfr", + Enabled = true, + Name = "Proofreader" + }, + new + { + Id = "pht", + Enabled = true, + Name = "Photographer" + }, + new + { + Id = "plt", + Enabled = true, + Name = "Platemaker" + }, + new + { + Id = "pma", + Enabled = true, + Name = "Permitting agency" + }, + new + { + Id = "pmn", + Enabled = true, + Name = "Production manager" + }, + new + { + Id = "pop", + Enabled = true, + Name = "Printer of plates" + }, + new + { + Id = "ppm", + Enabled = true, + Name = "Papermaker" + }, + new + { + Id = "ppt", + Enabled = true, + Name = "Puppeteer" + }, + new + { + Id = "pra", + Enabled = true, + Name = "Praeses" + }, + new + { + Id = "prc", + Enabled = true, + Name = "Process contact" + }, + new + { + Id = "prd", + Enabled = true, + Name = "Production personnel" + }, + new + { + Id = "pre", + Enabled = true, + Name = "Presenter" + }, + new + { + Id = "prf", + Enabled = true, + Name = "Performer" + }, + new + { + Id = "prg", + Enabled = true, + Name = "Programmer" + }, + new + { + Id = "prm", + Enabled = true, + Name = "Printmaker" + }, + new + { + Id = "prn", + Enabled = true, + Name = "Production company" + }, + new + { + Id = "pro", + Enabled = true, + Name = "Producer" + }, + new + { + Id = "prp", + Enabled = true, + Name = "Production place" + }, + new + { + Id = "prs", + Enabled = true, + Name = "Production designer" + }, + new + { + Id = "prt", + Enabled = true, + Name = "Printer" + }, + new + { + Id = "prv", + Enabled = true, + Name = "Provider" + }, + new + { + Id = "pta", + Enabled = true, + Name = "Patent applicant" + }, + new + { + Id = "pte", + Enabled = true, + Name = "Plaintiff-appellee" + }, + new + { + Id = "ptf", + Enabled = true, + Name = "Plaintiff" + }, + new + { + Id = "pth", + Enabled = true, + Name = "Patent holder" + }, + new + { + Id = "ptt", + Enabled = true, + Name = "Plaintiff-appellant" + }, + new + { + Id = "pup", + Enabled = true, + Name = "Publication place" + }, + new + { + Id = "rbr", + Enabled = true, + Name = "Rubricator" + }, + new + { + Id = "rcd", + Enabled = true, + Name = "Recordist" + }, + new + { + Id = "rce", + Enabled = true, + Name = "Recording engineer" + }, + new + { + Id = "rcp", + Enabled = true, + Name = "Addressee" + }, + new + { + Id = "rdd", + Enabled = true, + Name = "Radio director" + }, + new + { + Id = "red", + Enabled = true, + Name = "Redaktor" + }, + new + { + Id = "ren", + Enabled = true, + Name = "Renderer" + }, + new + { + Id = "res", + Enabled = true, + Name = "Researcher" + }, + new + { + Id = "rev", + Enabled = true, + Name = "Reviewer" + }, + new + { + Id = "rpc", + Enabled = true, + Name = "Radio producer" + }, + new + { + Id = "rps", + Enabled = true, + Name = "Repository" + }, + new + { + Id = "rpt", + Enabled = true, + Name = "Reporter" + }, + new + { + Id = "rpy", + Enabled = true, + Name = "Responsible party" + }, + new + { + Id = "rse", + Enabled = true, + Name = "Respondent-appellee" + }, + new + { + Id = "rsg", + Enabled = true, + Name = "Restager" + }, + new + { + Id = "rsp", + Enabled = true, + Name = "Respondent" + }, + new + { + Id = "rsr", + Enabled = true, + Name = "Restorationist" + }, + new + { + Id = "rst", + Enabled = true, + Name = "Respondent-appellant" + }, + new + { + Id = "rth", + Enabled = true, + Name = "Research team head" + }, + new + { + Id = "rtm", + Enabled = true, + Name = "Research team member" + }, + new + { + Id = "sad", + Enabled = true, + Name = "Scientific advisor" + }, + new + { + Id = "sce", + Enabled = true, + Name = "Scenarist" + }, + new + { + Id = "scl", + Enabled = true, + Name = "Sculptor" + }, + new + { + Id = "scr", + Enabled = true, + Name = "Scribe" + }, + new + { + Id = "sds", + Enabled = true, + Name = "Sound designer" + }, + new + { + Id = "sec", + Enabled = true, + Name = "Secretary" + }, + new + { + Id = "sgd", + Enabled = true, + Name = "Stage director" + }, + new + { + Id = "sgn", + Enabled = true, + Name = "Signer" + }, + new + { + Id = "sht", + Enabled = true, + Name = "Supporting host" + }, + new + { + Id = "sll", + Enabled = true, + Name = "Seller" + }, + new + { + Id = "sng", + Enabled = true, + Name = "Singer" + }, + new + { + Id = "spk", + Enabled = true, + Name = "Speaker" + }, + new + { + Id = "spn", + Enabled = true, + Name = "Sponsor" + }, + new + { + Id = "spy", + Enabled = true, + Name = "Second party" + }, + new + { + Id = "srv", + Enabled = true, + Name = "Surveyor" + }, + new + { + Id = "std", + Enabled = true, + Name = "Set designer" + }, + new + { + Id = "stg", + Enabled = true, + Name = "Setting" + }, + new + { + Id = "stl", + Enabled = true, + Name = "Storyteller" + }, + new + { + Id = "stm", + Enabled = true, + Name = "Stage manager" + }, + new + { + Id = "stn", + Enabled = true, + Name = "Standards body" + }, + new + { + Id = "str", + Enabled = true, + Name = "Stereotyper" + }, + new + { + Id = "tcd", + Enabled = true, + Name = "Technical director" + }, + new + { + Id = "tch", + Enabled = true, + Name = "Teacher" + }, + new + { + Id = "ths", + Enabled = true, + Name = "Thesis advisor" + }, + new + { + Id = "tld", + Enabled = true, + Name = "Television director" + }, + new + { + Id = "tlp", + Enabled = true, + Name = "Television producer" + }, + new + { + Id = "trc", + Enabled = true, + Name = "Transcriber" + }, + new + { + Id = "trl", + Enabled = true, + Name = "Translator" + }, + new + { + Id = "tyd", + Enabled = true, + Name = "Type designer" + }, + new + { + Id = "tyg", + Enabled = true, + Name = "Typographer" + }, + new + { + Id = "uvp", + Enabled = true, + Name = "University place" + }, + new + { + Id = "vac", + Enabled = true, + Name = "Voice actor" + }, + new + { + Id = "vdg", + Enabled = true, + Name = "Videographer" + }, + new + { + Id = "voc", + Enabled = false, + Name = "Vocalist" + }, + new + { + Id = "wac", + Enabled = true, + Name = "Writer of added commentary" + }, + new + { + Id = "wal", + Enabled = true, + Name = "Writer of added lyrics" + }, + new + { + Id = "wam", + Enabled = true, + Name = "Writer of accompanying material" + }, + new + { + Id = "wat", + Enabled = true, + Name = "Writer of added text" + }, + new + { + Id = "wdc", + Enabled = true, + Name = "Woodcutter" + }, + new + { + Id = "wde", + Enabled = true, + Name = "Wood engraver" + }, + new + { + Id = "win", + Enabled = true, + Name = "Writer of introduction" + }, + new + { + Id = "wit", + Enabled = true, + Name = "Witness" + }, + new + { + Id = "wpr", + Enabled = true, + Name = "Writer of preface" + }, + new + { + Id = "wst", + Enabled = true, + Name = "Writer of supplementary textual content" + }); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("MachineId"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("MachineId"); + + b.ToTable("DocumentsByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("MachineFamilyId"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("MachineFamilyId"); + + b.ToTable("DocumentsByMachineFamily"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Forbidden", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Date") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("date") + .HasColumnType("char(20)") + .HasDefaultValueSql("''"); + + b.Property("Ip") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("ip") + .HasColumnType("char(16)") + .HasDefaultValueSql("''"); + + b.Property("Referer") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("referer") + .HasColumnType("char(255)") + .HasDefaultValueSql("''"); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_forbidden_browser"); + + b.HasIndex("Date") + .HasName("idx_forbidden_date"); + + b.HasIndex("Ip") + .HasName("idx_forbidden_ip"); + + b.HasIndex("Referer") + .HasName("idx_forbidden_referer"); + + b.ToTable("forbidden"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Gpu", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("DieSize") + .HasColumnName("die_size"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(128)") + .HasDefaultValueSql("''") + .HasMaxLength(128); + + b.Property("Package") + .HasColumnName("package") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Process") + .HasColumnName("process") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("ProcessNm") + .HasColumnName("process_nm"); + + b.Property("Transistors") + .HasColumnName("transistors") + .HasColumnType("bigint(20)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_gpus_company"); + + b.HasIndex("DieSize") + .HasName("idx_gpus_die_size"); + + b.HasIndex("Introduced") + .HasName("idx_gpus_introduced"); + + b.HasIndex("ModelCode") + .HasName("idx_gpus_model_code"); + + b.HasIndex("Name") + .HasName("idx_gpus_name"); + + b.HasIndex("Package") + .HasName("idx_gpus_package"); + + b.HasIndex("Process") + .HasName("idx_gpus_process"); + + b.HasIndex("ProcessNm") + .HasName("idx_gpus_process_nm"); + + b.HasIndex("Transistors") + .HasName("idx_gpus_transistors"); + + b.ToTable("gpus"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("GpuId") + .HasColumnName("gpu") + .HasColumnType("int(11)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("GpuId") + .HasName("idx_gpus_by_machine_gpus"); + + b.HasIndex("MachineId") + .HasName("idx_gpus_by_machine_machine"); + + b.ToTable("gpus_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("GpuId"); + + b.Property("OwnedMachineId"); + + b.HasKey("Id"); + + b.HasIndex("GpuId"); + + b.HasIndex("OwnedMachineId"); + + b.ToTable("GpusByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSet", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("instruction_set") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.HasKey("Id"); + + b.ToTable("instruction_sets"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtension", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Extension") + .IsRequired() + .HasColumnName("extension") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.HasKey("Id"); + + b.ToTable("instruction_set_extensions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtensionsByProcessor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("ProcessorId") + .HasColumnName("processor_id") + .HasColumnType("int(11)"); + + b.Property("ExtensionId") + .HasColumnName("extension_id") + .HasColumnType("int(11)"); + + b.HasKey("Id", "ProcessorId", "ExtensionId"); + + b.HasIndex("ExtensionId") + .HasName("idx_setextension_extension"); + + b.HasIndex("ProcessorId") + .HasName("idx_setextension_processor"); + + b.ToTable("instruction_set_extensions_by_processor"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Iso31661Numeric", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("smallint(3)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(64)") + .HasMaxLength(64); + + b.HasKey("Id"); + + b.HasIndex("Name") + .HasName("idx_name"); + + b.ToTable("iso3166_1_numeric"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Iso639", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(3)"); + + b.Property("Comment") + .HasColumnType("varchar(150)"); + + b.Property("Part1") + .HasColumnType("char(2)"); + + b.Property("Part2B") + .HasColumnType("char(3)"); + + b.Property("Part2T") + .HasColumnType("char(3)"); + + b.Property("ReferenceName") + .IsRequired() + .HasColumnName("Ref_Name") + .HasColumnType("varchar(150)"); + + b.Property("Scope") + .IsRequired() + .HasColumnType("char(1)"); + + b.Property("Type") + .IsRequired() + .HasColumnType("char(1)"); + + b.HasKey("Id"); + + b.HasIndex("Comment"); + + b.HasIndex("Part1"); + + b.HasIndex("Part2B"); + + b.HasIndex("Part2T"); + + b.HasIndex("ReferenceName"); + + b.HasIndex("Scope"); + + b.HasIndex("Type"); + + b.ToTable("ISO_639-3"); + }); + + modelBuilder.Entity("Cicm.Database.Models.License", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FsfApproved"); + + b.Property("Link") + .HasMaxLength(512); + + b.Property("Name") + .IsRequired(); + + b.Property("OsiApproved"); + + b.Property("SPDX"); + + b.Property("Text") + .HasColumnType("longtext") + .HasMaxLength(131072); + + b.HasKey("Id"); + + b.HasIndex("FsfApproved"); + + b.HasIndex("Name"); + + b.HasIndex("OsiApproved"); + + b.HasIndex("SPDX"); + + b.ToTable("Licenses"); + + b.HasData( + new + { + Id = 1, + FsfApproved = false, + Name = "Fair use", + OsiApproved = false + }, + new + { + Id = 2, + FsfApproved = false, + Name = "Advertisement use", + OsiApproved = false + }, + new + { + Id = 3, + FsfApproved = false, + Name = "All rights reserved", + OsiApproved = false + }, + new + { + Id = 4, + FsfApproved = false, + Link = "https://spdx.org/licenses/0BSD.html#licenseText", + Name = "BSD Zero Clause License", + OsiApproved = true, + SPDX = "0BSD" + }, + new + { + Id = 5, + FsfApproved = false, + Link = "https://spdx.org/licenses/AAL.html#licenseText", + Name = "Attribution Assurance License", + OsiApproved = true, + SPDX = "AAL" + }, + new + { + Id = 6, + FsfApproved = false, + Link = "https://spdx.org/licenses/Abstyles.html#licenseText", + Name = "Abstyles License", + OsiApproved = false, + SPDX = "Abstyles" + }, + new + { + Id = 7, + FsfApproved = false, + Link = "https://spdx.org/licenses/Adobe-2006.html#licenseText", + Name = "Adobe Systems Incorporated Source Code License Agreement", + OsiApproved = false, + SPDX = "Adobe-2006" + }, + new + { + Id = 8, + FsfApproved = false, + Link = "https://spdx.org/licenses/Adobe-Glyph.html#licenseText", + Name = "Adobe Glyph List License", + OsiApproved = false, + SPDX = "Adobe-Glyph" + }, + new + { + Id = 9, + FsfApproved = false, + Link = "https://spdx.org/licenses/ADSL.html#licenseText", + Name = "Amazon Digital Services License", + OsiApproved = false, + SPDX = "ADSL" + }, + new + { + Id = 10, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-1.1.html#licenseText", + Name = "Academic Free License v1.1", + OsiApproved = true, + SPDX = "AFL-1.1" + }, + new + { + Id = 11, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-1.2.html#licenseText", + Name = "Academic Free License v1.2", + OsiApproved = true, + SPDX = "AFL-1.2" + }, + new + { + Id = 12, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-2.0.html#licenseText", + Name = "Academic Free License v2.0", + OsiApproved = true, + SPDX = "AFL-2.0" + }, + new + { + Id = 13, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-2.1.html#licenseText", + Name = "Academic Free License v2.1", + OsiApproved = true, + SPDX = "AFL-2.1" + }, + new + { + Id = 14, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-3.0.html#licenseText", + Name = "Academic Free License v3.0", + OsiApproved = true, + SPDX = "AFL-3.0" + }, + new + { + Id = 15, + FsfApproved = false, + Link = "https://spdx.org/licenses/Afmparse.html#licenseText", + Name = "Afmparse License", + OsiApproved = false, + SPDX = "Afmparse" + }, + new + { + Id = 16, + FsfApproved = false, + Link = "https://spdx.org/licenses/AGPL-1.0-only.html#licenseText", + Name = "Affero General Public License v1.0 only", + OsiApproved = false, + SPDX = "AGPL-1.0-only" + }, + new + { + Id = 17, + FsfApproved = false, + Link = "https://spdx.org/licenses/AGPL-1.0-or-later.html#licenseText", + Name = "Affero General Public License v1.0 or later", + OsiApproved = false, + SPDX = "AGPL-1.0-or-later" + }, + new + { + Id = 18, + FsfApproved = true, + Link = "https://spdx.org/licenses/AGPL-3.0-only.html#licenseText", + Name = "GNU Affero General Public License v3.0 only", + OsiApproved = true, + SPDX = "AGPL-3.0-only" + }, + new + { + Id = 19, + FsfApproved = true, + Link = "https://spdx.org/licenses/AGPL-3.0-or-later.html#licenseText", + Name = "GNU Affero General Public License v3.0 or later", + OsiApproved = true, + SPDX = "AGPL-3.0-or-later" + }, + new + { + Id = 20, + FsfApproved = false, + Link = "https://spdx.org/licenses/Aladdin.html#licenseText", + Name = "Aladdin Free Public License", + OsiApproved = false, + SPDX = "Aladdin" + }, + new + { + Id = 21, + FsfApproved = false, + Link = "https://spdx.org/licenses/AMDPLPA.html#licenseText", + Name = "AMD's plpa_map.c License", + OsiApproved = false, + SPDX = "AMDPLPA" + }, + new + { + Id = 22, + FsfApproved = false, + Link = "https://spdx.org/licenses/AML.html#licenseText", + Name = "Apple MIT License", + OsiApproved = false, + SPDX = "AML" + }, + new + { + Id = 23, + FsfApproved = false, + Link = "https://spdx.org/licenses/AMPAS.html#licenseText", + Name = "Academy of Motion Picture Arts and Sciences BSD", + OsiApproved = false, + SPDX = "AMPAS" + }, + new + { + Id = 24, + FsfApproved = false, + Link = "https://spdx.org/licenses/ANTLR-PD.html#licenseText", + Name = "ANTLR Software Rights Notice", + OsiApproved = false, + SPDX = "ANTLR-PD" + }, + new + { + Id = 25, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-1.0.html#licenseText", + Name = "Apache License 1.0", + OsiApproved = false, + SPDX = "Apache-1.0" + }, + new + { + Id = 26, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-1.1.html#licenseText", + Name = "Apache License 1.1", + OsiApproved = true, + SPDX = "Apache-1.1" + }, + new + { + Id = 27, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-2.0.html#licenseText", + Name = "Apache License 2.0", + OsiApproved = true, + SPDX = "Apache-2.0" + }, + new + { + Id = 28, + FsfApproved = false, + Link = "https://spdx.org/licenses/APAFML.html#licenseText", + Name = "Adobe Postscript AFM License", + OsiApproved = false, + SPDX = "APAFML" + }, + new + { + Id = 29, + FsfApproved = false, + Link = "https://spdx.org/licenses/APL-1.0.html#licenseText", + Name = "Adaptive Public License 1.0", + OsiApproved = true, + SPDX = "APL-1.0" + }, + new + { + Id = 30, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.0.html#licenseText", + Name = "Apple Public Source License 1.0", + OsiApproved = true, + SPDX = "APSL-1.0" + }, + new + { + Id = 31, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.1.html#licenseText", + Name = "Apple Public Source License 1.1", + OsiApproved = true, + SPDX = "APSL-1.1" + }, + new + { + Id = 32, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.2.html#licenseText", + Name = "Apple Public Source License 1.2", + OsiApproved = true, + SPDX = "APSL-1.2" + }, + new + { + Id = 33, + FsfApproved = true, + Link = "https://spdx.org/licenses/APSL-2.0.html#licenseText", + Name = "Apple Public Source License 2.0", + OsiApproved = true, + SPDX = "APSL-2.0" + }, + new + { + Id = 34, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0.html#licenseText", + Name = "Artistic License 1.0", + OsiApproved = true, + SPDX = "Artistic-1.0" + }, + new + { + Id = 35, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0-cl8.html#licenseText", + Name = "Artistic License 1.0 w/clause 8", + OsiApproved = true, + SPDX = "Artistic-1.0-cl8" + }, + new + { + Id = 36, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0-Perl.html#licenseText", + Name = "Artistic License 1.0 (Perl)", + OsiApproved = true, + SPDX = "Artistic-1.0-Perl" + }, + new + { + Id = 37, + FsfApproved = true, + Link = "https://spdx.org/licenses/Artistic-2.0.html#licenseText", + Name = "Artistic License 2.0", + OsiApproved = true, + SPDX = "Artistic-2.0" + }, + new + { + Id = 38, + FsfApproved = false, + Link = "https://spdx.org/licenses/Bahyph.html#licenseText", + Name = "Bahyph License", + OsiApproved = false, + SPDX = "Bahyph" + }, + new + { + Id = 39, + FsfApproved = false, + Link = "https://spdx.org/licenses/Barr.html#licenseText", + Name = "Barr License", + OsiApproved = false, + SPDX = "Barr" + }, + new + { + Id = 40, + FsfApproved = false, + Link = "https://spdx.org/licenses/Beerware.html#licenseText", + Name = "Beerware License", + OsiApproved = false, + SPDX = "Beerware" + }, + new + { + Id = 41, + FsfApproved = false, + Link = "https://spdx.org/licenses/BitTorrent-1.0.html#licenseText", + Name = "BitTorrent Open Source License v1.0", + OsiApproved = false, + SPDX = "BitTorrent-1.0" + }, + new + { + Id = 42, + FsfApproved = true, + Link = "https://spdx.org/licenses/BitTorrent-1.1.html#licenseText", + Name = "BitTorrent Open Source License v1.1", + OsiApproved = false, + SPDX = "BitTorrent-1.1" + }, + new + { + Id = 43, + FsfApproved = false, + Link = "https://spdx.org/licenses/Borceux.html#licenseText", + Name = "Borceux license", + OsiApproved = false, + SPDX = "Borceux" + }, + new + { + Id = 44, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-1-Clause.html#licenseText", + Name = "BSD 1-Clause License", + OsiApproved = false, + SPDX = "BSD-1-Clause" + }, + new + { + Id = 45, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause.html#licenseText", + Name = "BSD 2-Clause \"Simplified\" License", + OsiApproved = true, + SPDX = "BSD-2-Clause" + }, + new + { + Id = 46, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-2-Clause-FreeBSD.html#licenseText", + Name = "BSD 2-Clause FreeBSD License", + OsiApproved = false, + SPDX = "BSD-2-Clause-FreeBSD" + }, + new + { + Id = 47, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause-NetBSD.html#licenseText", + Name = "BSD 2-Clause NetBSD License", + OsiApproved = false, + SPDX = "BSD-2-Clause-NetBSD" + }, + new + { + Id = 48, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause-Patent.html#licenseText", + Name = "BSD-2-Clause Plus Patent License", + OsiApproved = true, + SPDX = "BSD-2-Clause-Patent" + }, + new + { + Id = 49, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-3-Clause.html#licenseText", + Name = "BSD 3-Clause \"New\" or \"Revised\" License", + OsiApproved = true, + SPDX = "BSD-3-Clause" + }, + new + { + Id = 50, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-Attribution.html#licenseText", + Name = "BSD with attribution", + OsiApproved = false, + SPDX = "BSD-3-Clause-Attribution" + }, + new + { + Id = 51, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-3-Clause-Clear.html#licenseText", + Name = "BSD 3-Clause Clear License", + OsiApproved = false, + SPDX = "BSD-3-Clause-Clear" + }, + new + { + Id = 52, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-LBNL.html#licenseText", + Name = "Lawrence Berkeley National Labs BSD variant license", + OsiApproved = false, + SPDX = "BSD-3-Clause-LBNL" + }, + new + { + Id = 53, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.html#licenseText", + Name = "BSD 3-Clause No Nuclear License", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-License" + }, + new + { + Id = 54, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License-2014.html#licenseText", + Name = "BSD 3-Clause No Nuclear License 2014", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-License-2014" + }, + new + { + Id = 55, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.html#licenseText", + Name = "BSD 3-Clause No Nuclear Warranty", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-Warranty" + }, + new + { + Id = 56, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-4-Clause.html#licenseText", + Name = "BSD 4-Clause \"Original\" or \"Old\" License", + OsiApproved = false, + SPDX = "BSD-4-Clause" + }, + new + { + Id = 57, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-4-Clause-UC.html#licenseText", + Name = "BSD-4-Clause (University of California-Specific)", + OsiApproved = false, + SPDX = "BSD-4-Clause-UC" + }, + new + { + Id = 58, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-Protection.html#licenseText", + Name = "BSD Protection License", + OsiApproved = false, + SPDX = "BSD-Protection" + }, + new + { + Id = 59, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-Source-Code.html#licenseText", + Name = "BSD Source Code Attribution", + OsiApproved = false, + SPDX = "BSD-Source-Code" + }, + new + { + Id = 60, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSL-1.0.html#licenseText", + Name = "Boost Software License 1.0", + OsiApproved = true, + SPDX = "BSL-1.0" + }, + new + { + Id = 61, + FsfApproved = false, + Link = "https://spdx.org/licenses/bzip2-1.0.5.html#licenseText", + Name = "bzip2 and libbzip2 License v1.0.5", + OsiApproved = false, + SPDX = "bzip2-1.0.5" + }, + new + { + Id = 62, + FsfApproved = false, + Link = "https://spdx.org/licenses/bzip2-1.0.6.html#licenseText", + Name = "bzip2 and libbzip2 License v1.0.6", + OsiApproved = false, + SPDX = "bzip2-1.0.6" + }, + new + { + Id = 63, + FsfApproved = false, + Link = "https://spdx.org/licenses/Caldera.html#licenseText", + Name = "Caldera License", + OsiApproved = false, + SPDX = "Caldera" + }, + new + { + Id = 64, + FsfApproved = false, + Link = "https://spdx.org/licenses/CATOSL-1.1.html#licenseText", + Name = "Computer Associates Trusted Open Source License 1.1", + OsiApproved = true, + SPDX = "CATOSL-1.1" + }, + new + { + Id = 65, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-1.0.html#licenseText", + Name = "Creative Commons Attribution 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-1.0" + }, + new + { + Id = 66, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-2.0.html#licenseText", + Name = "Creative Commons Attribution 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-2.0" + }, + new + { + Id = 67, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-2.5.html#licenseText", + Name = "Creative Commons Attribution 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-2.5" + }, + new + { + Id = 68, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-3.0.html#licenseText", + Name = "Creative Commons Attribution 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-3.0" + }, + new + { + Id = 69, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC-BY-4.0.html#licenseText", + Name = "Creative Commons Attribution 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-4.0" + }, + new + { + Id = 70, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-1.0" + }, + new + { + Id = 71, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-2.0" + }, + new + { + Id = 72, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-2.5" + }, + new + { + Id = 73, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-3.0" + }, + new + { + Id = 74, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-4.0" + }, + new + { + Id = 75, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-1.0" + }, + new + { + Id = 76, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-2.0" + }, + new + { + Id = 77, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-2.5" + }, + new + { + Id = 78, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-3.0" + }, + new + { + Id = 79, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-4.0" + }, + new + { + Id = 80, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-1.0" + }, + new + { + Id = 81, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-2.0" + }, + new + { + Id = 82, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-2.5" + }, + new + { + Id = 83, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-3.0" + }, + new + { + Id = 84, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-4.0" + }, + new + { + Id = 85, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-1.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-1.0" + }, + new + { + Id = 86, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-2.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-2.0" + }, + new + { + Id = 87, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-2.5.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-2.5" + }, + new + { + Id = 88, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-3.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-ND-3.0" + }, + new + { + Id = 89, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-4.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-ND-4.0" + }, + new + { + Id = 90, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-1.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-1.0" + }, + new + { + Id = 91, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-2.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-2.0" + }, + new + { + Id = 92, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-2.5.html#licenseText", + Name = "Creative Commons Attribution Share Alike 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-2.5" + }, + new + { + Id = 93, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-3.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-SA-3.0" + }, + new + { + Id = 94, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC-BY-SA-4.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-SA-4.0" + }, + new + { + Id = 95, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC0-1.0.html#licenseText", + Name = "Creative Commons Zero v1.0 Universal", + OsiApproved = false, + SPDX = "CC0-1.0" + }, + new + { + Id = 96, + FsfApproved = true, + Link = "https://spdx.org/licenses/CDDL-1.0.html#licenseText", + Name = "Common Development and Distribution License 1.0", + OsiApproved = true, + SPDX = "CDDL-1.0" + }, + new + { + Id = 97, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDDL-1.1.html#licenseText", + Name = "Common Development and Distribution License 1.1", + OsiApproved = false, + SPDX = "CDDL-1.1" + }, + new + { + Id = 98, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDLA-Permissive-1.0.html#licenseText", + Name = "Community Data License Agreement Permissive 1.0", + OsiApproved = false, + SPDX = "CDLA-Permissive-1.0" + }, + new + { + Id = 99, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDLA-Sharing-1.0.html#licenseText", + Name = "Community Data License Agreement Sharing 1.0", + OsiApproved = false, + SPDX = "CDLA-Sharing-1.0" + }, + new + { + Id = 100, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-1.0.html#licenseText", + Name = "CeCILL Free Software License Agreement v1.0", + OsiApproved = false, + SPDX = "CECILL-1.0" + }, + new + { + Id = 101, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-1.1.html#licenseText", + Name = "CeCILL Free Software License Agreement v1.1", + OsiApproved = false, + SPDX = "CECILL-1.1" + }, + new + { + Id = 102, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-2.0.html#licenseText", + Name = "CeCILL Free Software License Agreement v2.0", + OsiApproved = false, + SPDX = "CECILL-2.0" + }, + new + { + Id = 103, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-2.1.html#licenseText", + Name = "CeCILL Free Software License Agreement v2.1", + OsiApproved = true, + SPDX = "CECILL-2.1" + }, + new + { + Id = 104, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-B.html#licenseText", + Name = "CeCILL-B Free Software License Agreement", + OsiApproved = false, + SPDX = "CECILL-B" + }, + new + { + Id = 105, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-C.html#licenseText", + Name = "CeCILL-C Free Software License Agreement", + OsiApproved = false, + SPDX = "CECILL-C" + }, + new + { + Id = 106, + FsfApproved = false, + Link = "https://spdx.org/licenses/CERN-OHL-1.1.html#licenseText", + Name = "CERN Open Hardware License v1.1", + OsiApproved = false, + SPDX = "CERN-OHL-1.1" + }, + new + { + Id = 107, + FsfApproved = false, + Link = "https://spdx.org/licenses/CERN-OHL-1.2.html#licenseText", + Name = "CERN Open Hardware Licence v1.2", + OsiApproved = false, + SPDX = "CERN-OHL-1.2" + }, + new + { + Id = 108, + FsfApproved = true, + Link = "https://spdx.org/licenses/ClArtistic.html#licenseText", + Name = "Clarified Artistic License", + OsiApproved = false, + SPDX = "ClArtistic" + }, + new + { + Id = 109, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Jython.html#licenseText", + Name = "CNRI Jython License", + OsiApproved = false, + SPDX = "CNRI-Jython" + }, + new + { + Id = 110, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Python.html#licenseText", + Name = "CNRI Python License", + OsiApproved = true, + SPDX = "CNRI-Python" + }, + new + { + Id = 111, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Python-GPL-Compatible.html#licenseText", + Name = "CNRI Python Open Source GPL Compatible License Agreement", + OsiApproved = false, + SPDX = "CNRI-Python-GPL-Compatible" + }, + new + { + Id = 112, + FsfApproved = true, + Link = "https://spdx.org/licenses/Condor-1.1.html#licenseText", + Name = "Condor Public License v1.1", + OsiApproved = false, + SPDX = "Condor-1.1" + }, + new + { + Id = 113, + FsfApproved = false, + Link = "https://spdx.org/licenses/copyleft-next-0.3.0.html#licenseText", + Name = "copyleft-next 0.3.0", + OsiApproved = false, + SPDX = "copyleft-next-0.3.0" + }, + new + { + Id = 114, + FsfApproved = false, + Link = "https://spdx.org/licenses/copyleft-next-0.3.1.html#licenseText", + Name = "copyleft-next 0.3.1", + OsiApproved = false, + SPDX = "copyleft-next-0.3.1" + }, + new + { + Id = 115, + FsfApproved = true, + Link = "https://spdx.org/licenses/CPAL-1.0.html#licenseText", + Name = "Common Public Attribution License 1.0", + OsiApproved = true, + SPDX = "CPAL-1.0" + }, + new + { + Id = 116, + FsfApproved = true, + Link = "https://spdx.org/licenses/CPL-1.0.html#licenseText", + Name = "Common Public License 1.0", + OsiApproved = true, + SPDX = "CPL-1.0" + }, + new + { + Id = 117, + FsfApproved = false, + Link = "https://spdx.org/licenses/CPOL-1.02.html#licenseText", + Name = "Code Project Open License 1.02", + OsiApproved = false, + SPDX = "CPOL-1.02" + }, + new + { + Id = 118, + FsfApproved = false, + Link = "https://spdx.org/licenses/Crossword.html#licenseText", + Name = "Crossword License", + OsiApproved = false, + SPDX = "Crossword" + }, + new + { + Id = 119, + FsfApproved = false, + Link = "https://spdx.org/licenses/CrystalStacker.html#licenseText", + Name = "CrystalStacker License", + OsiApproved = false, + SPDX = "CrystalStacker" + }, + new + { + Id = 120, + FsfApproved = false, + Link = "https://spdx.org/licenses/CUA-OPL-1.0.html#licenseText", + Name = "CUA Office Public License v1.0", + OsiApproved = true, + SPDX = "CUA-OPL-1.0" + }, + new + { + Id = 121, + FsfApproved = false, + Link = "https://spdx.org/licenses/Cube.html#licenseText", + Name = "Cube License", + OsiApproved = false, + SPDX = "Cube" + }, + new + { + Id = 122, + FsfApproved = false, + Link = "https://spdx.org/licenses/curl.html#licenseText", + Name = "curl License", + OsiApproved = false, + SPDX = "curl" + }, + new + { + Id = 123, + FsfApproved = false, + Link = "https://spdx.org/licenses/D-FSL-1.0.html#licenseText", + Name = "Deutsche Freie Software Lizenz", + OsiApproved = false, + SPDX = "D-FSL-1.0" + }, + new + { + Id = 124, + FsfApproved = false, + Link = "https://spdx.org/licenses/diffmark.html#licenseText", + Name = "diffmark license", + OsiApproved = false, + SPDX = "diffmark" + }, + new + { + Id = 125, + FsfApproved = false, + Link = "https://spdx.org/licenses/DOC.html#licenseText", + Name = "DOC License", + OsiApproved = false, + SPDX = "DOC" + }, + new + { + Id = 126, + FsfApproved = false, + Link = "https://spdx.org/licenses/Dotseqn.html#licenseText", + Name = "Dotseqn License", + OsiApproved = false, + SPDX = "Dotseqn" + }, + new + { + Id = 127, + FsfApproved = false, + Link = "https://spdx.org/licenses/DSDP.html#licenseText", + Name = "DSDP License", + OsiApproved = false, + SPDX = "DSDP" + }, + new + { + Id = 128, + FsfApproved = false, + Link = "https://spdx.org/licenses/dvipdfm.html#licenseText", + Name = "dvipdfm License", + OsiApproved = false, + SPDX = "dvipdfm" + }, + new + { + Id = 129, + FsfApproved = false, + Link = "https://spdx.org/licenses/ECL-1.0.html#licenseText", + Name = "Educational Community License v1.0", + OsiApproved = true, + SPDX = "ECL-1.0" + }, + new + { + Id = 130, + FsfApproved = true, + Link = "https://spdx.org/licenses/ECL-2.0.html#licenseText", + Name = "Educational Community License v2.0", + OsiApproved = true, + SPDX = "ECL-2.0" + }, + new + { + Id = 131, + FsfApproved = false, + Link = "https://spdx.org/licenses/EFL-1.0.html#licenseText", + Name = "Eiffel Forum License v1.0", + OsiApproved = true, + SPDX = "EFL-1.0" + }, + new + { + Id = 132, + FsfApproved = true, + Link = "https://spdx.org/licenses/EFL-2.0.html#licenseText", + Name = "Eiffel Forum License v2.0", + OsiApproved = true, + SPDX = "EFL-2.0" + }, + new + { + Id = 133, + FsfApproved = false, + Link = "https://spdx.org/licenses/eGenix.html#licenseText", + Name = "eGenix.com Public License 1.1.0", + OsiApproved = false, + SPDX = "eGenix" + }, + new + { + Id = 134, + FsfApproved = false, + Link = "https://spdx.org/licenses/Entessa.html#licenseText", + Name = "Entessa Public License v1.0", + OsiApproved = true, + SPDX = "Entessa" + }, + new + { + Id = 135, + FsfApproved = true, + Link = "https://spdx.org/licenses/EPL-1.0.html#licenseText", + Name = "Eclipse Public License 1.0", + OsiApproved = true, + SPDX = "EPL-1.0" + }, + new + { + Id = 136, + FsfApproved = true, + Link = "https://spdx.org/licenses/EPL-2.0.html#licenseText", + Name = "Eclipse Public License 2.0", + OsiApproved = true, + SPDX = "EPL-2.0" + }, + new + { + Id = 137, + FsfApproved = false, + Link = "https://spdx.org/licenses/ErlPL-1.1.html#licenseText", + Name = "Erlang Public License v1.1", + OsiApproved = false, + SPDX = "ErlPL-1.1" + }, + new + { + Id = 138, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUDatagrid.html#licenseText", + Name = "EU DataGrid Software License", + OsiApproved = true, + SPDX = "EUDatagrid" + }, + new + { + Id = 139, + FsfApproved = false, + Link = "https://spdx.org/licenses/EUPL-1.0.html#licenseText", + Name = "European Union Public License 1.0", + OsiApproved = false, + SPDX = "EUPL-1.0" + }, + new + { + Id = 140, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUPL-1.1.html#licenseText", + Name = "European Union Public License 1.1", + OsiApproved = true, + SPDX = "EUPL-1.1" + }, + new + { + Id = 141, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUPL-1.2.html#licenseText", + Name = "European Union Public License 1.2", + OsiApproved = true, + SPDX = "EUPL-1.2" + }, + new + { + Id = 142, + FsfApproved = false, + Link = "https://spdx.org/licenses/Eurosym.html#licenseText", + Name = "Eurosym License", + OsiApproved = false, + SPDX = "Eurosym" + }, + new + { + Id = 143, + FsfApproved = false, + Link = "https://spdx.org/licenses/Fair.html#licenseText", + Name = "Fair License", + OsiApproved = true, + SPDX = "Fair" + }, + new + { + Id = 144, + FsfApproved = false, + Link = "https://spdx.org/licenses/Frameworx-1.0.html#licenseText", + Name = "Frameworx Open License 1.0", + OsiApproved = true, + SPDX = "Frameworx-1.0" + }, + new + { + Id = 145, + FsfApproved = false, + Link = "https://spdx.org/licenses/FreeImage.html#licenseText", + Name = "FreeImage Public License v1.0", + OsiApproved = false, + SPDX = "FreeImage" + }, + new + { + Id = 146, + FsfApproved = true, + Link = "https://spdx.org/licenses/FSFAP.html#licenseText", + Name = "FSF All Permissive License", + OsiApproved = false, + SPDX = "FSFAP" + }, + new + { + Id = 147, + FsfApproved = false, + Link = "https://spdx.org/licenses/FSFUL.html#licenseText", + Name = "FSF Unlimited License", + OsiApproved = false, + SPDX = "FSFUL" + }, + new + { + Id = 148, + FsfApproved = false, + Link = "https://spdx.org/licenses/FSFULLR.html#licenseText", + Name = "FSF Unlimited License (with License Retention)", + OsiApproved = false, + SPDX = "FSFULLR" + }, + new + { + Id = 149, + FsfApproved = true, + Link = "https://spdx.org/licenses/FTL.html#licenseText", + Name = "Freetype Project License", + OsiApproved = false, + SPDX = "FTL" + }, + new + { + Id = 150, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.1-only.html#licenseText", + Name = "GNU Free Documentation License v1.1 only", + OsiApproved = false, + SPDX = "GFDL-1.1-only" + }, + new + { + Id = 151, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.1-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.1 or later", + OsiApproved = false, + SPDX = "GFDL-1.1-or-later" + }, + new + { + Id = 152, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.2-only.html#licenseText", + Name = "GNU Free Documentation License v1.2 only", + OsiApproved = false, + SPDX = "GFDL-1.2-only" + }, + new + { + Id = 153, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.2-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.2 or later", + OsiApproved = false, + SPDX = "GFDL-1.2-or-later" + }, + new + { + Id = 154, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.3-only.html#licenseText", + Name = "GNU Free Documentation License v1.3 only", + OsiApproved = false, + SPDX = "GFDL-1.3-only" + }, + new + { + Id = 155, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.3-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.3 or later", + OsiApproved = false, + SPDX = "GFDL-1.3-or-later" + }, + new + { + Id = 156, + FsfApproved = false, + Link = "https://spdx.org/licenses/Giftware.html#licenseText", + Name = "Giftware License", + OsiApproved = false, + SPDX = "Giftware" + }, + new + { + Id = 157, + FsfApproved = false, + Link = "https://spdx.org/licenses/GL2PS.html#licenseText", + Name = "GL2PS License", + OsiApproved = false, + SPDX = "GL2PS" + }, + new + { + Id = 158, + FsfApproved = false, + Link = "https://spdx.org/licenses/Glide.html#licenseText", + Name = "3dfx Glide License", + OsiApproved = false, + SPDX = "Glide" + }, + new + { + Id = 159, + FsfApproved = false, + Link = "https://spdx.org/licenses/Glulxe.html#licenseText", + Name = "Glulxe License", + OsiApproved = false, + SPDX = "Glulxe" + }, + new + { + Id = 160, + FsfApproved = true, + Link = "https://spdx.org/licenses/gnuplot.html#licenseText", + Name = "gnuplot License", + OsiApproved = false, + SPDX = "gnuplot" + }, + new + { + Id = 161, + FsfApproved = false, + Link = "https://spdx.org/licenses/GPL-1.0-only.html#licenseText", + Name = "GNU General Public License v1.0 only", + OsiApproved = false, + SPDX = "GPL-1.0-only" + }, + new + { + Id = 162, + FsfApproved = false, + Link = "https://spdx.org/licenses/GPL-1.0-or-later.html#licenseText", + Name = "GNU General Public License v1.0 or later", + OsiApproved = false, + SPDX = "GPL-1.0-or-later" + }, + new + { + Id = 163, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-2.0-only.html#licenseText", + Name = "GNU General Public License v2.0 only", + OsiApproved = true, + SPDX = "GPL-2.0-only" + }, + new + { + Id = 164, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-2.0-or-later.html#licenseText", + Name = "GNU General Public License v2.0 or later", + OsiApproved = true, + SPDX = "GPL-2.0-or-later" + }, + new + { + Id = 165, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-3.0-only.html#licenseText", + Name = "GNU General Public License v3.0 only", + OsiApproved = true, + SPDX = "GPL-3.0-only" + }, + new + { + Id = 166, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-3.0-or-later.html#licenseText", + Name = "GNU General Public License v3.0 or later", + OsiApproved = true, + SPDX = "GPL-3.0-or-later" + }, + new + { + Id = 167, + FsfApproved = false, + Link = "https://spdx.org/licenses/gSOAP-1.3b.html#licenseText", + Name = "gSOAP Public License v1.3b", + OsiApproved = false, + SPDX = "gSOAP-1.3b" + }, + new + { + Id = 168, + FsfApproved = false, + Link = "https://spdx.org/licenses/HaskellReport.html#licenseText", + Name = "Haskell Language Report License", + OsiApproved = false, + SPDX = "HaskellReport" + }, + new + { + Id = 169, + FsfApproved = true, + Link = "https://spdx.org/licenses/HPND.html#licenseText", + Name = "Historical Permission Notice and Disclaimer", + OsiApproved = true, + SPDX = "HPND" + }, + new + { + Id = 170, + FsfApproved = false, + Link = "https://spdx.org/licenses/HPND-sell-variant.html#licenseText", + Name = "Historical Permission Notice and Disclaimer - sell variant", + OsiApproved = false, + SPDX = "HPND-sell-variant" + }, + new + { + Id = 171, + FsfApproved = false, + Link = "https://spdx.org/licenses/IBM-pibs.html#licenseText", + Name = "IBM PowerPC Initialization and Boot Software", + OsiApproved = false, + SPDX = "IBM-pibs" + }, + new + { + Id = 172, + FsfApproved = false, + Link = "https://spdx.org/licenses/ICU.html#licenseText", + Name = "ICU License", + OsiApproved = false, + SPDX = "ICU" + }, + new + { + Id = 173, + FsfApproved = true, + Link = "https://spdx.org/licenses/IJG.html#licenseText", + Name = "Independent JPEG Group License", + OsiApproved = false, + SPDX = "IJG" + }, + new + { + Id = 174, + FsfApproved = false, + Link = "https://spdx.org/licenses/ImageMagick.html#licenseText", + Name = "ImageMagick License", + OsiApproved = false, + SPDX = "ImageMagick" + }, + new + { + Id = 175, + FsfApproved = true, + Link = "https://spdx.org/licenses/iMatix.html#licenseText", + Name = "iMatix Standard Function Library Agreement", + OsiApproved = false, + SPDX = "iMatix" + }, + new + { + Id = 176, + FsfApproved = true, + Link = "https://spdx.org/licenses/Imlib2.html#licenseText", + Name = "Imlib2 License", + OsiApproved = false, + SPDX = "Imlib2" + }, + new + { + Id = 177, + FsfApproved = false, + Link = "https://spdx.org/licenses/Info-ZIP.html#licenseText", + Name = "Info-ZIP License", + OsiApproved = false, + SPDX = "Info-ZIP" + }, + new + { + Id = 178, + FsfApproved = true, + Link = "https://spdx.org/licenses/Intel.html#licenseText", + Name = "Intel Open Source License", + OsiApproved = true, + SPDX = "Intel" + }, + new + { + Id = 179, + FsfApproved = false, + Link = "https://spdx.org/licenses/Intel-ACPI.html#licenseText", + Name = "Intel ACPI Software License Agreement", + OsiApproved = false, + SPDX = "Intel-ACPI" + }, + new + { + Id = 180, + FsfApproved = false, + Link = "https://spdx.org/licenses/Interbase-1.0.html#licenseText", + Name = "Interbase Public License v1.0", + OsiApproved = false, + SPDX = "Interbase-1.0" + }, + new + { + Id = 181, + FsfApproved = true, + Link = "https://spdx.org/licenses/IPA.html#licenseText", + Name = "IPA Font License", + OsiApproved = true, + SPDX = "IPA" + }, + new + { + Id = 182, + FsfApproved = true, + Link = "https://spdx.org/licenses/IPL-1.0.html#licenseText", + Name = "IBM Public License v1.0", + OsiApproved = true, + SPDX = "IPL-1.0" + }, + new + { + Id = 183, + FsfApproved = true, + Link = "https://spdx.org/licenses/ISC.html#licenseText", + Name = "ISC License", + OsiApproved = true, + SPDX = "ISC" + }, + new + { + Id = 184, + FsfApproved = false, + Link = "https://spdx.org/licenses/JasPer-2.0.html#licenseText", + Name = "JasPer License", + OsiApproved = false, + SPDX = "JasPer-2.0" + }, + new + { + Id = 185, + FsfApproved = false, + Link = "https://spdx.org/licenses/JPNIC.html#licenseText", + Name = "Japan Network Information Center License", + OsiApproved = false, + SPDX = "JPNIC" + }, + new + { + Id = 186, + FsfApproved = false, + Link = "https://spdx.org/licenses/JSON.html#licenseText", + Name = "JSON License", + OsiApproved = false, + SPDX = "JSON" + }, + new + { + Id = 187, + FsfApproved = false, + Link = "https://spdx.org/licenses/LAL-1.2.html#licenseText", + Name = "Licence Art Libre 1.2", + OsiApproved = false, + SPDX = "LAL-1.2" + }, + new + { + Id = 188, + FsfApproved = false, + Link = "https://spdx.org/licenses/LAL-1.3.html#licenseText", + Name = "Licence Art Libre 1.3", + OsiApproved = false, + SPDX = "LAL-1.3" + }, + new + { + Id = 189, + FsfApproved = false, + Link = "https://spdx.org/licenses/Latex2e.html#licenseText", + Name = "Latex2e License", + OsiApproved = false, + SPDX = "Latex2e" + }, + new + { + Id = 190, + FsfApproved = false, + Link = "https://spdx.org/licenses/Leptonica.html#licenseText", + Name = "Leptonica License", + OsiApproved = false, + SPDX = "Leptonica" + }, + new + { + Id = 191, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPL-2.0-only.html#licenseText", + Name = "GNU Library General Public License v2 only", + OsiApproved = true, + SPDX = "LGPL-2.0-only" + }, + new + { + Id = 192, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPL-2.0-or-later.html#licenseText", + Name = "GNU Library General Public License v2 or later", + OsiApproved = true, + SPDX = "LGPL-2.0-or-later" + }, + new + { + Id = 193, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-2.1-only.html#licenseText", + Name = "GNU Lesser General Public License v2.1 only", + OsiApproved = true, + SPDX = "LGPL-2.1-only" + }, + new + { + Id = 194, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-2.1-or-later.html#licenseText", + Name = "GNU Lesser General Public License v2.1 or later", + OsiApproved = true, + SPDX = "LGPL-2.1-or-later" + }, + new + { + Id = 195, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-3.0-only.html#licenseText", + Name = "GNU Lesser General Public License v3.0 only", + OsiApproved = true, + SPDX = "LGPL-3.0-only" + }, + new + { + Id = 196, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-3.0-or-later.html#licenseText", + Name = "GNU Lesser General Public License v3.0 or later", + OsiApproved = true, + SPDX = "LGPL-3.0-or-later" + }, + new + { + Id = 197, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPLLR.html#licenseText", + Name = "Lesser General Public License For Linguistic Resources", + OsiApproved = false, + SPDX = "LGPLLR" + }, + new + { + Id = 198, + FsfApproved = false, + Link = "https://spdx.org/licenses/Libpng.html#licenseText", + Name = "libpng License", + OsiApproved = false, + SPDX = "Libpng" + }, + new + { + Id = 199, + FsfApproved = false, + Link = "https://spdx.org/licenses/libpng-2.0.html#licenseText", + Name = "PNG Reference Library version 2", + OsiApproved = false, + SPDX = "libpng-2.0" + }, + new + { + Id = 200, + FsfApproved = false, + Link = "https://spdx.org/licenses/libtiff.html#licenseText", + Name = "libtiff License", + OsiApproved = false, + SPDX = "libtiff" + }, + new + { + Id = 201, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-P-1.1.html#licenseText", + Name = "Licence Libre du Québec – Permissive version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-P-1.1" + }, + new + { + Id = 202, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-R-1.1.html#licenseText", + Name = "Licence Libre du Québec – Réciprocité version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-R-1.1" + }, + new + { + Id = 203, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-Rplus-1.1.html#licenseText", + Name = "Licence Libre du Québec – Réciprocité forte version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-Rplus-1.1" + }, + new + { + Id = 204, + FsfApproved = false, + Link = "https://spdx.org/licenses/Linux-OpenIB.html#licenseText", + Name = "Linux Kernel Variant of OpenIB.org license", + OsiApproved = false, + SPDX = "Linux-OpenIB" + }, + new + { + Id = 205, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPL-1.0.html#licenseText", + Name = "Lucent Public License Version 1.0", + OsiApproved = true, + SPDX = "LPL-1.0" + }, + new + { + Id = 206, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPL-1.02.html#licenseText", + Name = "Lucent Public License v1.02", + OsiApproved = true, + SPDX = "LPL-1.02" + }, + new + { + Id = 207, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.0.html#licenseText", + Name = "LaTeX Project Public License v1.0", + OsiApproved = false, + SPDX = "LPPL-1.0" + }, + new + { + Id = 208, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.1.html#licenseText", + Name = "LaTeX Project Public License v1.1", + OsiApproved = false, + SPDX = "LPPL-1.1" + }, + new + { + Id = 209, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPPL-1.2.html#licenseText", + Name = "LaTeX Project Public License v1.2", + OsiApproved = false, + SPDX = "LPPL-1.2" + }, + new + { + Id = 210, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPPL-1.3a.html#licenseText", + Name = "LaTeX Project Public License v1.3a", + OsiApproved = false, + SPDX = "LPPL-1.3a" + }, + new + { + Id = 211, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.3c.html#licenseText", + Name = "LaTeX Project Public License v1.3c", + OsiApproved = true, + SPDX = "LPPL-1.3c" + }, + new + { + Id = 212, + FsfApproved = false, + Link = "https://spdx.org/licenses/MakeIndex.html#licenseText", + Name = "MakeIndex License", + OsiApproved = false, + SPDX = "MakeIndex" + }, + new + { + Id = 213, + FsfApproved = false, + Link = "https://spdx.org/licenses/MirOS.html#licenseText", + Name = "MirOS License", + OsiApproved = true, + SPDX = "MirOS" + }, + new + { + Id = 214, + FsfApproved = true, + Link = "https://spdx.org/licenses/MIT.html#licenseText", + Name = "MIT License", + OsiApproved = true, + SPDX = "MIT" + }, + new + { + Id = 215, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-0.html#licenseText", + Name = "MIT No Attribution", + OsiApproved = true, + SPDX = "MIT-0" + }, + new + { + Id = 216, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-advertising.html#licenseText", + Name = "Enlightenment License (e16)", + OsiApproved = false, + SPDX = "MIT-advertising" + }, + new + { + Id = 217, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-CMU.html#licenseText", + Name = "CMU License", + OsiApproved = false, + SPDX = "MIT-CMU" + }, + new + { + Id = 218, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-enna.html#licenseText", + Name = "enna License", + OsiApproved = false, + SPDX = "MIT-enna" + }, + new + { + Id = 219, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-feh.html#licenseText", + Name = "feh License", + OsiApproved = false, + SPDX = "MIT-feh" + }, + new + { + Id = 220, + FsfApproved = false, + Link = "https://spdx.org/licenses/MITNFA.html#licenseText", + Name = "MIT +no-false-attribs license", + OsiApproved = false, + SPDX = "MITNFA" + }, + new + { + Id = 221, + FsfApproved = false, + Link = "https://spdx.org/licenses/Motosoto.html#licenseText", + Name = "Motosoto License", + OsiApproved = true, + SPDX = "Motosoto" + }, + new + { + Id = 222, + FsfApproved = false, + Link = "https://spdx.org/licenses/mpich2.html#licenseText", + Name = "mpich2 License", + OsiApproved = false, + SPDX = "mpich2" + }, + new + { + Id = 223, + FsfApproved = false, + Link = "https://spdx.org/licenses/MPL-1.0.html#licenseText", + Name = "Mozilla Public License 1.0", + OsiApproved = true, + SPDX = "MPL-1.0" + }, + new + { + Id = 224, + FsfApproved = true, + Link = "https://spdx.org/licenses/MPL-1.1.html#licenseText", + Name = "Mozilla Public License 1.1", + OsiApproved = true, + SPDX = "MPL-1.1" + }, + new + { + Id = 225, + FsfApproved = true, + Link = "https://spdx.org/licenses/MPL-2.0.html#licenseText", + Name = "Mozilla Public License 2.0", + OsiApproved = true, + SPDX = "MPL-2.0" + }, + new + { + Id = 226, + FsfApproved = false, + Link = "https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.html#licenseText", + Name = "Mozilla Public License 2.0 (no copyleft exception)", + OsiApproved = true, + SPDX = "MPL-2.0-no-copyleft-exception" + }, + new + { + Id = 227, + FsfApproved = true, + Link = "https://spdx.org/licenses/MS-PL.html#licenseText", + Name = "Microsoft Public License", + OsiApproved = true, + SPDX = "MS-PL" + }, + new + { + Id = 228, + FsfApproved = true, + Link = "https://spdx.org/licenses/MS-RL.html#licenseText", + Name = "Microsoft Reciprocal License", + OsiApproved = true, + SPDX = "MS-RL" + }, + new + { + Id = 229, + FsfApproved = false, + Link = "https://spdx.org/licenses/MTLL.html#licenseText", + Name = "Matrix Template Library License", + OsiApproved = false, + SPDX = "MTLL" + }, + new + { + Id = 230, + FsfApproved = false, + Link = "https://spdx.org/licenses/Multics.html#licenseText", + Name = "Multics License", + OsiApproved = true, + SPDX = "Multics" + }, + new + { + Id = 231, + FsfApproved = false, + Link = "https://spdx.org/licenses/Mup.html#licenseText", + Name = "Mup License", + OsiApproved = false, + SPDX = "Mup" + }, + new + { + Id = 232, + FsfApproved = false, + Link = "https://spdx.org/licenses/NASA-1.3.html#licenseText", + Name = "NASA Open Source Agreement 1.3", + OsiApproved = true, + SPDX = "NASA-1.3" + }, + new + { + Id = 233, + FsfApproved = false, + Link = "https://spdx.org/licenses/Naumen.html#licenseText", + Name = "Naumen Public License", + OsiApproved = true, + SPDX = "Naumen" + }, + new + { + Id = 234, + FsfApproved = false, + Link = "https://spdx.org/licenses/NBPL-1.0.html#licenseText", + Name = "Net Boolean Public License v1", + OsiApproved = false, + SPDX = "NBPL-1.0" + }, + new + { + Id = 235, + FsfApproved = true, + Link = "https://spdx.org/licenses/NCSA.html#licenseText", + Name = "University of Illinois/NCSA Open Source License", + OsiApproved = true, + SPDX = "NCSA" + }, + new + { + Id = 236, + FsfApproved = false, + Link = "https://spdx.org/licenses/Net-SNMP.html#licenseText", + Name = "Net-SNMP License", + OsiApproved = false, + SPDX = "Net-SNMP" + }, + new + { + Id = 237, + FsfApproved = false, + Link = "https://spdx.org/licenses/NetCDF.html#licenseText", + Name = "NetCDF license", + OsiApproved = false, + SPDX = "NetCDF" + }, + new + { + Id = 238, + FsfApproved = false, + Link = "https://spdx.org/licenses/Newsletr.html#licenseText", + Name = "Newsletr License", + OsiApproved = false, + SPDX = "Newsletr" + }, + new + { + Id = 239, + FsfApproved = false, + Link = "https://spdx.org/licenses/NGPL.html#licenseText", + Name = "Nethack General Public License", + OsiApproved = true, + SPDX = "NGPL" + }, + new + { + Id = 240, + FsfApproved = false, + Link = "https://spdx.org/licenses/NLOD-1.0.html#licenseText", + Name = "Norwegian Licence for Open Government Data", + OsiApproved = false, + SPDX = "NLOD-1.0" + }, + new + { + Id = 241, + FsfApproved = false, + Link = "https://spdx.org/licenses/NLPL.html#licenseText", + Name = "No Limit Public License", + OsiApproved = false, + SPDX = "NLPL" + }, + new + { + Id = 242, + FsfApproved = true, + Link = "https://spdx.org/licenses/Nokia.html#licenseText", + Name = "Nokia Open Source License", + OsiApproved = true, + SPDX = "Nokia" + }, + new + { + Id = 243, + FsfApproved = true, + Link = "https://spdx.org/licenses/NOSL.html#licenseText", + Name = "Netizen Open Source License", + OsiApproved = false, + SPDX = "NOSL" + }, + new + { + Id = 244, + FsfApproved = false, + Link = "https://spdx.org/licenses/Noweb.html#licenseText", + Name = "Noweb License", + OsiApproved = false, + SPDX = "Noweb" + }, + new + { + Id = 245, + FsfApproved = true, + Link = "https://spdx.org/licenses/NPL-1.0.html#licenseText", + Name = "Netscape Public License v1.0", + OsiApproved = false, + SPDX = "NPL-1.0" + }, + new + { + Id = 246, + FsfApproved = true, + Link = "https://spdx.org/licenses/NPL-1.1.html#licenseText", + Name = "Netscape Public License v1.1", + OsiApproved = false, + SPDX = "NPL-1.1" + }, + new + { + Id = 247, + FsfApproved = false, + Link = "https://spdx.org/licenses/NPOSL-3.0.html#licenseText", + Name = "Non-Profit Open Software License 3.0", + OsiApproved = true, + SPDX = "NPOSL-3.0" + }, + new + { + Id = 248, + FsfApproved = false, + Link = "https://spdx.org/licenses/NRL.html#licenseText", + Name = "NRL License", + OsiApproved = false, + SPDX = "NRL" + }, + new + { + Id = 249, + FsfApproved = false, + Link = "https://spdx.org/licenses/NTP.html#licenseText", + Name = "NTP License", + OsiApproved = true, + SPDX = "NTP" + }, + new + { + Id = 250, + FsfApproved = false, + Link = "https://spdx.org/licenses/OCCT-PL.html#licenseText", + Name = "Open CASCADE Technology Public License", + OsiApproved = false, + SPDX = "OCCT-PL" + }, + new + { + Id = 251, + FsfApproved = false, + Link = "https://spdx.org/licenses/OCLC-2.0.html#licenseText", + Name = "OCLC Research Public License 2.0", + OsiApproved = true, + SPDX = "OCLC-2.0" + }, + new + { + Id = 252, + FsfApproved = true, + Link = "https://spdx.org/licenses/ODbL-1.0.html#licenseText", + Name = "ODC Open Database License v1.0", + OsiApproved = false, + SPDX = "ODbL-1.0" + }, + new + { + Id = 253, + FsfApproved = false, + Link = "https://spdx.org/licenses/ODC-By-1.0.html#licenseText", + Name = "Open Data Commons Attribution License v1.0", + OsiApproved = false, + SPDX = "ODC-By-1.0" + }, + new + { + Id = 254, + FsfApproved = true, + Link = "https://spdx.org/licenses/OFL-1.0.html#licenseText", + Name = "SIL Open Font License 1.0", + OsiApproved = false, + SPDX = "OFL-1.0" + }, + new + { + Id = 255, + FsfApproved = true, + Link = "https://spdx.org/licenses/OFL-1.1.html#licenseText", + Name = "SIL Open Font License 1.1", + OsiApproved = true, + SPDX = "OFL-1.1" + }, + new + { + Id = 256, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-1.0.html#licenseText", + Name = "Open Government Licence v1.0", + OsiApproved = false, + SPDX = "OGL-UK-1.0" + }, + new + { + Id = 257, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-2.0.html#licenseText", + Name = "Open Government Licence v2.0", + OsiApproved = false, + SPDX = "OGL-UK-2.0" + }, + new + { + Id = 258, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-3.0.html#licenseText", + Name = "Open Government Licence v3.0", + OsiApproved = false, + SPDX = "OGL-UK-3.0" + }, + new + { + Id = 259, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGTSL.html#licenseText", + Name = "Open Group Test Suite License", + OsiApproved = true, + SPDX = "OGTSL" + }, + new + { + Id = 260, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.1.html#licenseText", + Name = "Open LDAP Public License v1.1", + OsiApproved = false, + SPDX = "OLDAP-1.1" + }, + new + { + Id = 261, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.2.html#licenseText", + Name = "Open LDAP Public License v1.2", + OsiApproved = false, + SPDX = "OLDAP-1.2" + }, + new + { + Id = 262, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.3.html#licenseText", + Name = "Open LDAP Public License v1.3", + OsiApproved = false, + SPDX = "OLDAP-1.3" + }, + new + { + Id = 263, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.4.html#licenseText", + Name = "Open LDAP Public License v1.4", + OsiApproved = false, + SPDX = "OLDAP-1.4" + }, + new + { + Id = 264, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.0.html#licenseText", + Name = "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)", + OsiApproved = false, + SPDX = "OLDAP-2.0" + }, + new + { + Id = 265, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.0.1.html#licenseText", + Name = "Open LDAP Public License v2.0.1", + OsiApproved = false, + SPDX = "OLDAP-2.0.1" + }, + new + { + Id = 266, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.1.html#licenseText", + Name = "Open LDAP Public License v2.1", + OsiApproved = false, + SPDX = "OLDAP-2.1" + }, + new + { + Id = 267, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.html#licenseText", + Name = "Open LDAP Public License v2.2", + OsiApproved = false, + SPDX = "OLDAP-2.2" + }, + new + { + Id = 268, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.1.html#licenseText", + Name = "Open LDAP Public License v2.2.1", + OsiApproved = false, + SPDX = "OLDAP-2.2.1" + }, + new + { + Id = 269, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.2.html#licenseText", + Name = "Open LDAP Public License 2.2.2", + OsiApproved = false, + SPDX = "OLDAP-2.2.2" + }, + new + { + Id = 270, + FsfApproved = true, + Link = "https://spdx.org/licenses/OLDAP-2.3.html#licenseText", + Name = "Open LDAP Public License v2.3", + OsiApproved = false, + SPDX = "OLDAP-2.3" + }, + new + { + Id = 271, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.4.html#licenseText", + Name = "Open LDAP Public License v2.4", + OsiApproved = false, + SPDX = "OLDAP-2.4" + }, + new + { + Id = 272, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.5.html#licenseText", + Name = "Open LDAP Public License v2.5", + OsiApproved = false, + SPDX = "OLDAP-2.5" + }, + new + { + Id = 273, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.6.html#licenseText", + Name = "Open LDAP Public License v2.6", + OsiApproved = false, + SPDX = "OLDAP-2.6" + }, + new + { + Id = 274, + FsfApproved = true, + Link = "https://spdx.org/licenses/OLDAP-2.7.html#licenseText", + Name = "Open LDAP Public License v2.7", + OsiApproved = false, + SPDX = "OLDAP-2.7" + }, + new + { + Id = 275, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.8.html#licenseText", + Name = "Open LDAP Public License v2.8", + OsiApproved = false, + SPDX = "OLDAP-2.8" + }, + new + { + Id = 276, + FsfApproved = false, + Link = "https://spdx.org/licenses/OML.html#licenseText", + Name = "Open Market License", + OsiApproved = false, + SPDX = "OML" + }, + new + { + Id = 277, + FsfApproved = true, + Link = "https://spdx.org/licenses/OpenSSL.html#licenseText", + Name = "OpenSSL License", + OsiApproved = false, + SPDX = "OpenSSL" + }, + new + { + Id = 278, + FsfApproved = false, + Link = "https://spdx.org/licenses/OPL-1.0.html#licenseText", + Name = "Open Public License v1.0", + OsiApproved = false, + SPDX = "OPL-1.0" + }, + new + { + Id = 279, + FsfApproved = false, + Link = "https://spdx.org/licenses/OSET-PL-2.1.html#licenseText", + Name = "OSET Public License version 2.1", + OsiApproved = true, + SPDX = "OSET-PL-2.1" + }, + new + { + Id = 280, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-1.0.html#licenseText", + Name = "Open Software License 1.0", + OsiApproved = true, + SPDX = "OSL-1.0" + }, + new + { + Id = 281, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-1.1.html#licenseText", + Name = "Open Software License 1.1", + OsiApproved = false, + SPDX = "OSL-1.1" + }, + new + { + Id = 282, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-2.0.html#licenseText", + Name = "Open Software License 2.0", + OsiApproved = true, + SPDX = "OSL-2.0" + }, + new + { + Id = 283, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-2.1.html#licenseText", + Name = "Open Software License 2.1", + OsiApproved = true, + SPDX = "OSL-2.1" + }, + new + { + Id = 284, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-3.0.html#licenseText", + Name = "Open Software License 3.0", + OsiApproved = true, + SPDX = "OSL-3.0" + }, + new + { + Id = 285, + FsfApproved = false, + Link = "https://spdx.org/licenses/PDDL-1.0.html#licenseText", + Name = "ODC Public Domain Dedication & License 1.0", + OsiApproved = false, + SPDX = "PDDL-1.0" + }, + new + { + Id = 286, + FsfApproved = false, + Link = "https://spdx.org/licenses/PHP-3.0.html#licenseText", + Name = "PHP License v3.0", + OsiApproved = true, + SPDX = "PHP-3.0" + }, + new + { + Id = 287, + FsfApproved = true, + Link = "https://spdx.org/licenses/PHP-3.01.html#licenseText", + Name = "PHP License v3.01", + OsiApproved = false, + SPDX = "PHP-3.01" + }, + new + { + Id = 288, + FsfApproved = false, + Link = "https://spdx.org/licenses/Plexus.html#licenseText", + Name = "Plexus Classworlds License", + OsiApproved = false, + SPDX = "Plexus" + }, + new + { + Id = 289, + FsfApproved = false, + Link = "https://spdx.org/licenses/PostgreSQL.html#licenseText", + Name = "PostgreSQL License", + OsiApproved = true, + SPDX = "PostgreSQL" + }, + new + { + Id = 290, + FsfApproved = false, + Link = "https://spdx.org/licenses/psfrag.html#licenseText", + Name = "psfrag License", + OsiApproved = false, + SPDX = "psfrag" + }, + new + { + Id = 291, + FsfApproved = false, + Link = "https://spdx.org/licenses/psutils.html#licenseText", + Name = "psutils License", + OsiApproved = false, + SPDX = "psutils" + }, + new + { + Id = 292, + FsfApproved = true, + Link = "https://spdx.org/licenses/Python-2.0.html#licenseText", + Name = "Python License 2.0", + OsiApproved = true, + SPDX = "Python-2.0" + }, + new + { + Id = 293, + FsfApproved = false, + Link = "https://spdx.org/licenses/Qhull.html#licenseText", + Name = "Qhull License", + OsiApproved = false, + SPDX = "Qhull" + }, + new + { + Id = 294, + FsfApproved = true, + Link = "https://spdx.org/licenses/QPL-1.0.html#licenseText", + Name = "Q Public License 1.0", + OsiApproved = true, + SPDX = "QPL-1.0" + }, + new + { + Id = 295, + FsfApproved = false, + Link = "https://spdx.org/licenses/Rdisc.html#licenseText", + Name = "Rdisc License", + OsiApproved = false, + SPDX = "Rdisc" + }, + new + { + Id = 296, + FsfApproved = false, + Link = "https://spdx.org/licenses/RHeCos-1.1.html#licenseText", + Name = "Red Hat eCos Public License v1.1", + OsiApproved = false, + SPDX = "RHeCos-1.1" + }, + new + { + Id = 297, + FsfApproved = false, + Link = "https://spdx.org/licenses/RPL-1.1.html#licenseText", + Name = "Reciprocal Public License 1.1", + OsiApproved = true, + SPDX = "RPL-1.1" + }, + new + { + Id = 298, + FsfApproved = false, + Link = "https://spdx.org/licenses/RPL-1.5.html#licenseText", + Name = "Reciprocal Public License 1.5", + OsiApproved = true, + SPDX = "RPL-1.5" + }, + new + { + Id = 299, + FsfApproved = true, + Link = "https://spdx.org/licenses/RPSL-1.0.html#licenseText", + Name = "RealNetworks Public Source License v1.0", + OsiApproved = true, + SPDX = "RPSL-1.0" + }, + new + { + Id = 300, + FsfApproved = false, + Link = "https://spdx.org/licenses/RSA-MD.html#licenseText", + Name = "RSA Message-Digest License", + OsiApproved = false, + SPDX = "RSA-MD" + }, + new + { + Id = 301, + FsfApproved = false, + Link = "https://spdx.org/licenses/RSCPL.html#licenseText", + Name = "Ricoh Source Code Public License", + OsiApproved = true, + SPDX = "RSCPL" + }, + new + { + Id = 302, + FsfApproved = true, + Link = "https://spdx.org/licenses/Ruby.html#licenseText", + Name = "Ruby License", + OsiApproved = false, + SPDX = "Ruby" + }, + new + { + Id = 303, + FsfApproved = false, + Link = "https://spdx.org/licenses/SAX-PD.html#licenseText", + Name = "Sax Public Domain Notice", + OsiApproved = false, + SPDX = "SAX-PD" + }, + new + { + Id = 304, + FsfApproved = false, + Link = "https://spdx.org/licenses/Saxpath.html#licenseText", + Name = "Saxpath License", + OsiApproved = false, + SPDX = "Saxpath" + }, + new + { + Id = 305, + FsfApproved = false, + Link = "https://spdx.org/licenses/SCEA.html#licenseText", + Name = "SCEA Shared Source License", + OsiApproved = false, + SPDX = "SCEA" + }, + new + { + Id = 306, + FsfApproved = false, + Link = "https://spdx.org/licenses/Sendmail.html#licenseText", + Name = "Sendmail License", + OsiApproved = false, + SPDX = "Sendmail" + }, + new + { + Id = 307, + FsfApproved = false, + Link = "https://spdx.org/licenses/Sendmail-8.23.html#licenseText", + Name = "Sendmail License 8.23", + OsiApproved = false, + SPDX = "Sendmail-8.23" + }, + new + { + Id = 308, + FsfApproved = false, + Link = "https://spdx.org/licenses/SGI-B-1.0.html#licenseText", + Name = "SGI Free Software License B v1.0", + OsiApproved = false, + SPDX = "SGI-B-1.0" + }, + new + { + Id = 309, + FsfApproved = false, + Link = "https://spdx.org/licenses/SGI-B-1.1.html#licenseText", + Name = "SGI Free Software License B v1.1", + OsiApproved = false, + SPDX = "SGI-B-1.1" + }, + new + { + Id = 310, + FsfApproved = true, + Link = "https://spdx.org/licenses/SGI-B-2.0.html#licenseText", + Name = "SGI Free Software License B v2.0", + OsiApproved = false, + SPDX = "SGI-B-2.0" + }, + new + { + Id = 311, + FsfApproved = false, + Link = "https://spdx.org/licenses/SimPL-2.0.html#licenseText", + Name = "Simple Public License 2.0", + OsiApproved = true, + SPDX = "SimPL-2.0" + }, + new + { + Id = 312, + FsfApproved = true, + Link = "https://spdx.org/licenses/SISSL.html#licenseText", + Name = "Sun Industry Standards Source License v1.1", + OsiApproved = true, + SPDX = "SISSL" + }, + new + { + Id = 313, + FsfApproved = false, + Link = "https://spdx.org/licenses/SISSL-1.2.html#licenseText", + Name = "Sun Industry Standards Source License v1.2", + OsiApproved = false, + SPDX = "SISSL-1.2" + }, + new + { + Id = 314, + FsfApproved = true, + Link = "https://spdx.org/licenses/Sleepycat.html#licenseText", + Name = "Sleepycat License", + OsiApproved = true, + SPDX = "Sleepycat" + }, + new + { + Id = 315, + FsfApproved = true, + Link = "https://spdx.org/licenses/SMLNJ.html#licenseText", + Name = "Standard ML of New Jersey License", + OsiApproved = false, + SPDX = "SMLNJ" + }, + new + { + Id = 316, + FsfApproved = false, + Link = "https://spdx.org/licenses/SMPPL.html#licenseText", + Name = "Secure Messaging Protocol Public License", + OsiApproved = false, + SPDX = "SMPPL" + }, + new + { + Id = 317, + FsfApproved = false, + Link = "https://spdx.org/licenses/SNIA.html#licenseText", + Name = "SNIA Public License 1.1", + OsiApproved = false, + SPDX = "SNIA" + }, + new + { + Id = 318, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-86.html#licenseText", + Name = "Spencer License 86", + OsiApproved = false, + SPDX = "Spencer-86" + }, + new + { + Id = 319, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-94.html#licenseText", + Name = "Spencer License 94", + OsiApproved = false, + SPDX = "Spencer-94" + }, + new + { + Id = 320, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-99.html#licenseText", + Name = "Spencer License 99", + OsiApproved = false, + SPDX = "Spencer-99" + }, + new + { + Id = 321, + FsfApproved = true, + Link = "https://spdx.org/licenses/SPL-1.0.html#licenseText", + Name = "Sun Public License v1.0", + OsiApproved = true, + SPDX = "SPL-1.0" + }, + new + { + Id = 322, + FsfApproved = false, + Link = "https://spdx.org/licenses/SugarCRM-1.1.3.html#licenseText", + Name = "SugarCRM Public License v1.1.3", + OsiApproved = false, + SPDX = "SugarCRM-1.1.3" + }, + new + { + Id = 323, + FsfApproved = false, + Link = "https://spdx.org/licenses/SWL.html#licenseText", + Name = "Scheme Widget Library (SWL) Software License Agreement", + OsiApproved = false, + SPDX = "SWL" + }, + new + { + Id = 324, + FsfApproved = false, + Link = "https://spdx.org/licenses/TAPR-OHL-1.0.html#licenseText", + Name = "TAPR Open Hardware License v1.0", + OsiApproved = false, + SPDX = "TAPR-OHL-1.0" + }, + new + { + Id = 325, + FsfApproved = false, + Link = "https://spdx.org/licenses/TCL.html#licenseText", + Name = "TCL/TK License", + OsiApproved = false, + SPDX = "TCL" + }, + new + { + Id = 326, + FsfApproved = false, + Link = "https://spdx.org/licenses/TCP-wrappers.html#licenseText", + Name = "TCP Wrappers License", + OsiApproved = false, + SPDX = "TCP-wrappers" + }, + new + { + Id = 327, + FsfApproved = false, + Link = "https://spdx.org/licenses/TMate.html#licenseText", + Name = "TMate Open Source License", + OsiApproved = false, + SPDX = "TMate" + }, + new + { + Id = 328, + FsfApproved = false, + Link = "https://spdx.org/licenses/TORQUE-1.1.html#licenseText", + Name = "TORQUE v2.5+ Software License v1.1", + OsiApproved = false, + SPDX = "TORQUE-1.1" + }, + new + { + Id = 329, + FsfApproved = false, + Link = "https://spdx.org/licenses/TOSL.html#licenseText", + Name = "Trusster Open Source License", + OsiApproved = false, + SPDX = "TOSL" + }, + new + { + Id = 330, + FsfApproved = false, + Link = "https://spdx.org/licenses/TU-Berlin-1.0.html#licenseText", + Name = "Technische Universitaet Berlin License 1.0", + OsiApproved = false, + SPDX = "TU-Berlin-1.0" + }, + new + { + Id = 331, + FsfApproved = false, + Link = "https://spdx.org/licenses/TU-Berlin-2.0.html#licenseText", + Name = "Technische Universitaet Berlin License 2.0", + OsiApproved = false, + SPDX = "TU-Berlin-2.0" + }, + new + { + Id = 332, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-DFS-2015.html#licenseText", + Name = "Unicode License Agreement - Data Files and Software (2015)", + OsiApproved = false, + SPDX = "Unicode-DFS-2015" + }, + new + { + Id = 333, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-DFS-2016.html#licenseText", + Name = "Unicode License Agreement - Data Files and Software (2016)", + OsiApproved = false, + SPDX = "Unicode-DFS-2016" + }, + new + { + Id = 334, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-TOU.html#licenseText", + Name = "Unicode Terms of Use", + OsiApproved = false, + SPDX = "Unicode-TOU" + }, + new + { + Id = 335, + FsfApproved = true, + Link = "https://spdx.org/licenses/Unlicense.html#licenseText", + Name = "The Unlicense", + OsiApproved = false, + SPDX = "Unlicense" + }, + new + { + Id = 336, + FsfApproved = true, + Link = "https://spdx.org/licenses/UPL-1.0.html#licenseText", + Name = "Universal Permissive License v1.0", + OsiApproved = true, + SPDX = "UPL-1.0" + }, + new + { + Id = 337, + FsfApproved = true, + Link = "https://spdx.org/licenses/Vim.html#licenseText", + Name = "Vim License", + OsiApproved = false, + SPDX = "Vim" + }, + new + { + Id = 338, + FsfApproved = false, + Link = "https://spdx.org/licenses/VOSTROM.html#licenseText", + Name = "VOSTROM Public License for Open Source", + OsiApproved = false, + SPDX = "VOSTROM" + }, + new + { + Id = 339, + FsfApproved = false, + Link = "https://spdx.org/licenses/VSL-1.0.html#licenseText", + Name = "Vovida Software License v1.0", + OsiApproved = true, + SPDX = "VSL-1.0" + }, + new + { + Id = 340, + FsfApproved = true, + Link = "https://spdx.org/licenses/W3C.html#licenseText", + Name = "W3C Software Notice and License (2002-12-31)", + OsiApproved = true, + SPDX = "W3C" + }, + new + { + Id = 341, + FsfApproved = false, + Link = "https://spdx.org/licenses/W3C-19980720.html#licenseText", + Name = "W3C Software Notice and License (1998-07-20)", + OsiApproved = false, + SPDX = "W3C-19980720" + }, + new + { + Id = 342, + FsfApproved = false, + Link = "https://spdx.org/licenses/W3C-20150513.html#licenseText", + Name = "W3C Software Notice and Document License (2015-05-13)", + OsiApproved = false, + SPDX = "W3C-20150513" + }, + new + { + Id = 343, + FsfApproved = false, + Link = "https://spdx.org/licenses/Watcom-1.0.html#licenseText", + Name = "Sybase Open Watcom Public License 1.0", + OsiApproved = true, + SPDX = "Watcom-1.0" + }, + new + { + Id = 344, + FsfApproved = false, + Link = "https://spdx.org/licenses/Wsuipa.html#licenseText", + Name = "Wsuipa License", + OsiApproved = false, + SPDX = "Wsuipa" + }, + new + { + Id = 345, + FsfApproved = true, + Link = "https://spdx.org/licenses/WTFPL.html#licenseText", + Name = "Do What The F*ck You Want To Public License", + OsiApproved = false, + SPDX = "WTFPL" + }, + new + { + Id = 346, + FsfApproved = true, + Link = "https://spdx.org/licenses/X11.html#licenseText", + Name = "X11 License", + OsiApproved = false, + SPDX = "X11" + }, + new + { + Id = 347, + FsfApproved = false, + Link = "https://spdx.org/licenses/Xerox.html#licenseText", + Name = "Xerox License", + OsiApproved = false, + SPDX = "Xerox" + }, + new + { + Id = 348, + FsfApproved = true, + Link = "https://spdx.org/licenses/XFree86-1.1.html#licenseText", + Name = "XFree86 License 1.1", + OsiApproved = false, + SPDX = "XFree86-1.1" + }, + new + { + Id = 349, + FsfApproved = true, + Link = "https://spdx.org/licenses/xinetd.html#licenseText", + Name = "xinetd License", + OsiApproved = false, + SPDX = "xinetd" + }, + new + { + Id = 350, + FsfApproved = false, + Link = "https://spdx.org/licenses/Xnet.html#licenseText", + Name = "X.Net License", + OsiApproved = true, + SPDX = "Xnet" + }, + new + { + Id = 351, + FsfApproved = false, + Link = "https://spdx.org/licenses/xpp.html#licenseText", + Name = "XPP License", + OsiApproved = false, + SPDX = "xpp" + }, + new + { + Id = 352, + FsfApproved = false, + Link = "https://spdx.org/licenses/XSkat.html#licenseText", + Name = "XSkat License", + OsiApproved = false, + SPDX = "XSkat" + }, + new + { + Id = 353, + FsfApproved = false, + Link = "https://spdx.org/licenses/YPL-1.0.html#licenseText", + Name = "Yahoo! Public License v1.0", + OsiApproved = false, + SPDX = "YPL-1.0" + }, + new + { + Id = 354, + FsfApproved = true, + Link = "https://spdx.org/licenses/YPL-1.1.html#licenseText", + Name = "Yahoo! Public License v1.1", + OsiApproved = false, + SPDX = "YPL-1.1" + }, + new + { + Id = 355, + FsfApproved = false, + Link = "https://spdx.org/licenses/Zed.html#licenseText", + Name = "Zed License", + OsiApproved = false, + SPDX = "Zed" + }, + new + { + Id = 356, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zend-2.0.html#licenseText", + Name = "Zend License v2.0", + OsiApproved = false, + SPDX = "Zend-2.0" + }, + new + { + Id = 357, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zimbra-1.3.html#licenseText", + Name = "Zimbra Public License v1.3", + OsiApproved = false, + SPDX = "Zimbra-1.3" + }, + new + { + Id = 358, + FsfApproved = false, + Link = "https://spdx.org/licenses/Zimbra-1.4.html#licenseText", + Name = "Zimbra Public License v1.4", + OsiApproved = false, + SPDX = "Zimbra-1.4" + }, + new + { + Id = 359, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zlib.html#licenseText", + Name = "zlib License", + OsiApproved = true, + SPDX = "Zlib" + }, + new + { + Id = 360, + FsfApproved = false, + Link = "https://spdx.org/licenses/zlib-acknowledgement.html#licenseText", + Name = "zlib/libpng License with Acknowledgement", + OsiApproved = false, + SPDX = "zlib-acknowledgement" + }, + new + { + Id = 361, + FsfApproved = false, + Link = "https://spdx.org/licenses/ZPL-1.1.html#licenseText", + Name = "Zope Public License 1.1", + OsiApproved = false, + SPDX = "ZPL-1.1" + }, + new + { + Id = 362, + FsfApproved = true, + Link = "https://spdx.org/licenses/ZPL-2.0.html#licenseText", + Name = "Zope Public License 2.0", + OsiApproved = true, + SPDX = "ZPL-2.0" + }, + new + { + Id = 363, + FsfApproved = true, + Link = "https://spdx.org/licenses/ZPL-2.1.html#licenseText", + Name = "Zope Public License 2.1", + OsiApproved = false, + SPDX = "ZPL-2.1" + }); + }); + + modelBuilder.Entity("Cicm.Database.Models.Log", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Date") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("date") + .HasColumnType("char(20)") + .HasDefaultValueSql("''"); + + b.Property("Ip") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("ip") + .HasColumnType("char(16)") + .HasDefaultValueSql("''"); + + b.Property("Referer") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("referer") + .HasColumnType("char(255)") + .HasDefaultValueSql("''"); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_log_browser"); + + b.HasIndex("Date") + .HasName("idx_log_date"); + + b.HasIndex("Ip") + .HasName("idx_log_ip"); + + b.HasIndex("Referer") + .HasName("idx_log_referer"); + + b.ToTable("log"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Machine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .ValueGeneratedOnAdd() + .HasColumnName("company") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("FamilyId") + .HasColumnName("family") + .HasColumnType("int(11)"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("Model") + .HasColumnName("model") + .HasColumnType("varchar(50)") + .HasMaxLength(50); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_machines_company"); + + b.HasIndex("FamilyId") + .HasName("idx_machines_family"); + + b.HasIndex("Introduced") + .HasName("idx_machines_introduced"); + + b.HasIndex("Model") + .HasName("idx_machines_model"); + + b.HasIndex("Name") + .HasName("idx_machines_name"); + + b.HasIndex("Type") + .HasName("idx_machines_type"); + + b.ToTable("machines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_machine_families_company"); + + b.HasIndex("Name") + .HasName("idx_machine_families_name"); + + b.ToTable("machine_families"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachinePhoto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Author"); + + b.Property("CameraManufacturer"); + + b.Property("CameraModel"); + + b.Property("ColorSpace"); + + b.Property("Comments"); + + b.Property("Contrast"); + + b.Property("CreationDate"); + + b.Property("DigitalZoomRatio"); + + b.Property("ExifVersion"); + + b.Property("Exposure"); + + b.Property("ExposureMethod"); + + b.Property("ExposureProgram"); + + b.Property("Flash"); + + b.Property("Focal"); + + b.Property("FocalLength"); + + b.Property("FocalLengthEquivalent"); + + b.Property("HorizontalResolution"); + + b.Property("IsoRating"); + + b.Property("Lens"); + + b.Property("LicenseId"); + + b.Property("LightSource"); + + b.Property("MachineId"); + + b.Property("MeteringMode"); + + b.Property("Orientation"); + + b.Property("ResolutionUnit"); + + b.Property("Saturation"); + + b.Property("SceneCaptureType"); + + b.Property("SensingMethod"); + + b.Property("Sharpness"); + + b.Property("SoftwareUsed"); + + b.Property("Source"); + + b.Property("SubjectDistanceRange"); + + b.Property("UploadDate") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate(); + + b.Property("UserId"); + + b.Property("VerticalResolution"); + + b.Property("WhiteBalance"); + + b.HasKey("Id"); + + b.HasIndex("Author"); + + b.HasIndex("CameraManufacturer"); + + b.HasIndex("CameraModel"); + + b.HasIndex("ColorSpace"); + + b.HasIndex("Comments"); + + b.HasIndex("Contrast"); + + b.HasIndex("CreationDate"); + + b.HasIndex("DigitalZoomRatio"); + + b.HasIndex("ExifVersion"); + + b.HasIndex("Exposure"); + + b.HasIndex("ExposureMethod"); + + b.HasIndex("ExposureProgram"); + + b.HasIndex("Flash"); + + b.HasIndex("Focal"); + + b.HasIndex("FocalLength"); + + b.HasIndex("FocalLengthEquivalent"); + + b.HasIndex("HorizontalResolution"); + + b.HasIndex("IsoRating"); + + b.HasIndex("Lens"); + + b.HasIndex("LicenseId"); + + b.HasIndex("LightSource"); + + b.HasIndex("MachineId"); + + b.HasIndex("MeteringMode"); + + b.HasIndex("Orientation"); + + b.HasIndex("ResolutionUnit"); + + b.HasIndex("Saturation"); + + b.HasIndex("SceneCaptureType"); + + b.HasIndex("SensingMethod"); + + b.HasIndex("Sharpness"); + + b.HasIndex("SoftwareUsed"); + + b.HasIndex("SubjectDistanceRange"); + + b.HasIndex("UploadDate"); + + b.HasIndex("UserId"); + + b.HasIndex("VerticalResolution"); + + b.HasIndex("WhiteBalance"); + + b.ToTable("MachinePhotos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Magazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("FirstPublication"); + + b.Property("Issn") + .HasMaxLength(8); + + b.Property("NativeTitle"); + + b.Property("Published"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("FirstPublication"); + + b.HasIndex("Issn"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Published"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Magazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazineIssue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Caption") + .IsRequired(); + + b.Property("MagazineId"); + + b.Property("NativeCaption"); + + b.Property("Pages"); + + b.Property("ProductCode") + .HasMaxLength(18); + + b.Property("Published"); + + b.HasKey("Id"); + + b.HasIndex("Caption"); + + b.HasIndex("MagazineId"); + + b.HasIndex("NativeCaption"); + + b.HasIndex("Pages"); + + b.HasIndex("ProductCode"); + + b.HasIndex("Published"); + + b.ToTable("MagazineIssues"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineId"); + + b.Property("MagazineId"); + + b.HasKey("Id"); + + b.HasIndex("MachineId"); + + b.HasIndex("MagazineId"); + + b.ToTable("MagazinesByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineFamilyId"); + + b.Property("MagazineId"); + + b.HasKey("Id"); + + b.HasIndex("MachineFamilyId"); + + b.HasIndex("MagazineId"); + + b.ToTable("MagazinesByMachinesFamilies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("Size") + .HasColumnName("size") + .HasColumnType("bigint(20)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Usage") + .ValueGeneratedOnAdd() + .HasColumnName("usage") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_memory_by_machine_machine"); + + b.HasIndex("Size") + .HasName("idx_memory_by_machine_size"); + + b.HasIndex("Speed") + .HasName("idx_memory_by_machine_speed"); + + b.HasIndex("Type") + .HasName("idx_memory_by_machine_type"); + + b.HasIndex("Usage") + .HasName("idx_memory_by_machine_usage"); + + b.ToTable("memory_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("Size"); + + b.Property("Speed"); + + b.Property("Type"); + + b.Property("Usage"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("Size"); + + b.HasIndex("Speed"); + + b.HasIndex("Type"); + + b.HasIndex("Usage"); + + b.ToTable("MemoryByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MoneyDonation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Donator") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("donator") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Quantity") + .ValueGeneratedOnAdd() + .HasColumnName("quantity") + .HasColumnType("decimal(11,2)") + .HasDefaultValueSql("'0.00'"); + + b.HasKey("Id"); + + b.HasIndex("Donator") + .HasName("idx_money_donations_donator"); + + b.HasIndex("Quantity") + .HasName("idx_money_donations_quantity"); + + b.ToTable("money_donations"); + }); + + modelBuilder.Entity("Cicm.Database.Models.News", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("AddedId") + .ValueGeneratedOnAdd() + .HasColumnName("added_id") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Date") + .HasColumnName("date") + .HasColumnType("datetime"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("AddedId") + .HasName("idx_news_ip"); + + b.HasIndex("Date") + .HasName("idx_news_date"); + + b.HasIndex("Type") + .HasName("idx_news_type"); + + b.ToTable("news"); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AcquisitionDate"); + + b.Property("Boxed"); + + b.Property("LastStatusDate"); + + b.Property("LostDate"); + + b.Property("MachineId"); + + b.Property("Manuals"); + + b.Property("SerialNumber"); + + b.Property("SerialNumberVisible") + .ValueGeneratedOnAdd() + .HasDefaultValue(true); + + b.Property("Status"); + + b.Property("Trade"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("AcquisitionDate"); + + b.HasIndex("Boxed"); + + b.HasIndex("LastStatusDate"); + + b.HasIndex("LostDate"); + + b.HasIndex("MachineId"); + + b.HasIndex("Manuals"); + + b.HasIndex("SerialNumber"); + + b.HasIndex("SerialNumberVisible"); + + b.HasIndex("Status"); + + b.HasIndex("Trade"); + + b.HasIndex("UserId"); + + b.ToTable("OwnedMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachinePhoto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Author"); + + b.Property("CameraManufacturer"); + + b.Property("CameraModel"); + + b.Property("ColorSpace"); + + b.Property("Comments"); + + b.Property("Contrast"); + + b.Property("CreationDate"); + + b.Property("DigitalZoomRatio"); + + b.Property("ExifVersion"); + + b.Property("Exposure"); + + b.Property("ExposureMethod"); + + b.Property("ExposureProgram"); + + b.Property("Flash"); + + b.Property("Focal"); + + b.Property("FocalLength"); + + b.Property("FocalLengthEquivalent"); + + b.Property("HorizontalResolution"); + + b.Property("IsoRating"); + + b.Property("Lens"); + + b.Property("LicenseId"); + + b.Property("LightSource"); + + b.Property("MeteringMode"); + + b.Property("Orientation"); + + b.Property("OwnedMachineId"); + + b.Property("ResolutionUnit"); + + b.Property("Saturation"); + + b.Property("SceneCaptureType"); + + b.Property("SensingMethod"); + + b.Property("Sharpness"); + + b.Property("SoftwareUsed"); + + b.Property("SubjectDistanceRange"); + + b.Property("UploadDate") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate(); + + b.Property("UserId"); + + b.Property("VerticalResolution"); + + b.Property("WhiteBalance"); + + b.HasKey("Id"); + + b.HasIndex("Author"); + + b.HasIndex("CameraManufacturer"); + + b.HasIndex("CameraModel"); + + b.HasIndex("ColorSpace"); + + b.HasIndex("Comments"); + + b.HasIndex("Contrast"); + + b.HasIndex("CreationDate"); + + b.HasIndex("DigitalZoomRatio"); + + b.HasIndex("ExifVersion"); + + b.HasIndex("Exposure"); + + b.HasIndex("ExposureMethod"); + + b.HasIndex("ExposureProgram"); + + b.HasIndex("Flash"); + + b.HasIndex("Focal"); + + b.HasIndex("FocalLength"); + + b.HasIndex("FocalLengthEquivalent"); + + b.HasIndex("HorizontalResolution"); + + b.HasIndex("IsoRating"); + + b.HasIndex("Lens"); + + b.HasIndex("LicenseId"); + + b.HasIndex("LightSource"); + + b.HasIndex("MeteringMode"); + + b.HasIndex("Orientation"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("ResolutionUnit"); + + b.HasIndex("Saturation"); + + b.HasIndex("SceneCaptureType"); + + b.HasIndex("SensingMethod"); + + b.HasIndex("Sharpness"); + + b.HasIndex("SoftwareUsed"); + + b.HasIndex("SubjectDistanceRange"); + + b.HasIndex("UploadDate"); + + b.HasIndex("UserId"); + + b.HasIndex("VerticalResolution"); + + b.HasIndex("WhiteBalance"); + + b.ToTable("OwnedMachinePhotos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByBook", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByBooks"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByCompany", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("End"); + + b.Property("Ongoing"); + + b.Property("PersonId"); + + b.Property("Position"); + + b.Property("Start"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("End"); + + b.HasIndex("PersonId"); + + b.HasIndex("Position"); + + b.HasIndex("Start"); + + b.ToTable("PeopleByCompany"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByDocuments"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByMagazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MagazineId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("MagazineId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByMagazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Person", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BirthDate"); + + b.Property("CountryOfBirthId"); + + b.Property("DeathDate"); + + b.Property("DocumentPersonId"); + + b.Property("Facebook"); + + b.Property("Name") + .IsRequired(); + + b.Property("Photo"); + + b.Property("Surname") + .IsRequired(); + + b.Property("Twitter"); + + b.Property("Webpage"); + + b.HasKey("Id"); + + b.HasIndex("BirthDate"); + + b.HasIndex("CountryOfBirthId"); + + b.HasIndex("DeathDate"); + + b.HasIndex("Facebook"); + + b.HasIndex("Name"); + + b.HasIndex("Photo"); + + b.HasIndex("Surname"); + + b.HasIndex("Twitter"); + + b.HasIndex("Webpage"); + + b.ToTable("People"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Processor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("AddrBus") + .HasColumnName("addr_bus") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Cores") + .HasColumnName("cores") + .HasColumnType("int(11)"); + + b.Property("DataBus") + .HasColumnName("data_bus") + .HasColumnType("int(11)"); + + b.Property("DieSize") + .HasColumnName("die_size"); + + b.Property("FprSize") + .HasColumnName("FPR_size") + .HasColumnType("int(11)"); + + b.Property("Fprs") + .HasColumnName("FPRs") + .HasColumnType("int(11)"); + + b.Property("GprSize") + .HasColumnName("GPR_size") + .HasColumnType("int(11)"); + + b.Property("Gprs") + .HasColumnName("GPRs") + .HasColumnType("int(11)"); + + b.Property("InstructionSetId") + .HasColumnName("instruction_set") + .HasColumnType("int(11)"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("L1Data") + .HasColumnName("L1_data"); + + b.Property("L1Instruction") + .HasColumnName("L1_instruction"); + + b.Property("L2"); + + b.Property("L3"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(50)") + .HasDefaultValueSql("''") + .HasMaxLength(50); + + b.Property("Package") + .HasColumnName("package") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Process") + .HasColumnName("process") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("ProcessNm") + .HasColumnName("process_nm"); + + b.Property("SimdRegisters") + .HasColumnName("SIMD_registers") + .HasColumnType("int(11)"); + + b.Property("SimdSize") + .HasColumnName("SIMD_size") + .HasColumnType("int(11)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.Property("ThreadsPerCore") + .HasColumnName("threads_per_core") + .HasColumnType("int(11)"); + + b.Property("Transistors") + .HasColumnName("transistors") + .HasColumnType("bigint(20)"); + + b.HasKey("Id"); + + b.HasIndex("AddrBus") + .HasName("idx_processors_addr_bus"); + + b.HasIndex("CompanyId") + .HasName("idx_processors_company"); + + b.HasIndex("Cores") + .HasName("idx_processors_cores"); + + b.HasIndex("DataBus") + .HasName("idx_processors_data_bus"); + + b.HasIndex("DieSize") + .HasName("idx_processors_die_size"); + + b.HasIndex("FprSize") + .HasName("idx_processors_FPR_size"); + + b.HasIndex("Fprs") + .HasName("idx_processors_FPRs"); + + b.HasIndex("GprSize") + .HasName("idx_processors_GPR_size"); + + b.HasIndex("Gprs") + .HasName("idx_processors_GPRs"); + + b.HasIndex("InstructionSetId") + .HasName("idx_processors_instruction_set"); + + b.HasIndex("Introduced") + .HasName("idx_processors_introduced"); + + b.HasIndex("L1Data") + .HasName("idx_processors_L1_data"); + + b.HasIndex("L1Instruction") + .HasName("idx_processors_L1_instruction"); + + b.HasIndex("L2") + .HasName("idx_processors_L2"); + + b.HasIndex("L3") + .HasName("idx_processors_L3"); + + b.HasIndex("ModelCode") + .HasName("idx_processors_model_code"); + + b.HasIndex("Name") + .HasName("idx_processors_name"); + + b.HasIndex("Package") + .HasName("idx_processors_package"); + + b.HasIndex("Process") + .HasName("idx_processors_process"); + + b.HasIndex("ProcessNm") + .HasName("idx_processors_process_nm"); + + b.HasIndex("SimdRegisters") + .HasName("idx_processors_SIMD_registers"); + + b.HasIndex("SimdSize") + .HasName("idx_processors_SIMD_size"); + + b.HasIndex("Speed") + .HasName("idx_processors_speed"); + + b.HasIndex("ThreadsPerCore") + .HasName("idx_processors_threads_per_core"); + + b.HasIndex("Transistors") + .HasName("idx_processors_transistors"); + + b.ToTable("processors"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("ProcessorId") + .HasColumnName("processor") + .HasColumnType("int(11)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_processors_by_machine_machine"); + + b.HasIndex("ProcessorId") + .HasName("idx_processors_by_machine_processor"); + + b.HasIndex("Speed") + .HasName("idx_processors_by_machine_speed"); + + b.ToTable("processors_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("ProcessorId"); + + b.Property("Speed"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("ProcessorId"); + + b.HasIndex("Speed"); + + b.ToTable("ProcessorsByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Resolution", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Chars") + .ValueGeneratedOnAdd() + .HasColumnName("chars") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Colors") + .HasColumnName("colors") + .HasColumnType("bigint(20)"); + + b.Property("Grayscale"); + + b.Property("Height") + .ValueGeneratedOnAdd() + .HasColumnName("height") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Palette") + .HasColumnName("palette") + .HasColumnType("bigint(20)"); + + b.Property("Width") + .ValueGeneratedOnAdd() + .HasColumnName("width") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("Colors") + .HasName("idx_resolutions_colors"); + + b.HasIndex("Height") + .HasName("idx_resolutions_height"); + + b.HasIndex("Palette") + .HasName("idx_resolutions_palette"); + + b.HasIndex("Width") + .HasName("idx_resolutions_width"); + + b.HasIndex("Width", "Height") + .HasName("idx_resolutions_resolution"); + + b.HasIndex("Width", "Height", "Colors") + .HasName("idx_resolutions_resolution_with_color"); + + b.HasIndex("Width", "Height", "Colors", "Palette") + .HasName("idx_resolutions_resolution_with_color_and_palette"); + + b.ToTable("resolutions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByGpu", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("GpuId") + .HasColumnName("gpu") + .HasColumnType("int(11)"); + + b.Property("ResolutionId") + .HasColumnName("resolution") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("GpuId") + .HasName("idx_resolutions_by_gpu_gpu"); + + b.HasIndex("ResolutionId") + .HasName("idx_resolutions_by_gpu_resolution"); + + b.ToTable("resolutions_by_gpu"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByScreen", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ResolutionId"); + + b.Property("ScreenId"); + + b.HasKey("Id"); + + b.HasIndex("ResolutionId"); + + b.HasIndex("ScreenId"); + + b.ToTable("ResolutionsByScreen"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Screen", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Diagonal"); + + b.Property("EffectiveColors"); + + b.Property("Height"); + + b.Property("NativeResolutionId"); + + b.Property("Type") + .IsRequired(); + + b.Property("Width"); + + b.HasKey("Id"); + + b.HasIndex("Diagonal"); + + b.HasIndex("EffectiveColors"); + + b.HasIndex("Height"); + + b.HasIndex("NativeResolutionId"); + + b.HasIndex("Type"); + + b.HasIndex("Width"); + + b.ToTable("Screens"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ScreensByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineId"); + + b.Property("ScreenId"); + + b.HasKey("Id"); + + b.HasIndex("MachineId"); + + b.HasIndex("ScreenId"); + + b.ToTable("ScreensByMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("SoundSynthId") + .HasColumnName("sound_synth") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_sound_by_machine_machine"); + + b.HasIndex("SoundSynthId") + .HasName("idx_sound_by_machine_sound_synth"); + + b.ToTable("sound_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("SoundSynthId"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("SoundSynthId"); + + b.ToTable("SoundByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundSynth", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Depth") + .HasColumnName("depth") + .HasColumnType("int(11)"); + + b.Property("Frequency") + .HasColumnName("frequency"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(50)") + .HasDefaultValueSql("''") + .HasMaxLength(50); + + b.Property("SquareWave") + .HasColumnName("square_wave") + .HasColumnType("int(11)"); + + b.Property("Type") + .HasColumnName("type") + .HasColumnType("int(11)"); + + b.Property("Voices") + .HasColumnName("voices") + .HasColumnType("int(11)"); + + b.Property("WhiteNoise") + .HasColumnName("white_noise") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_sound_synths_company"); + + b.HasIndex("Depth") + .HasName("idx_sound_synths_depth"); + + b.HasIndex("Frequency") + .HasName("idx_sound_synths_frequency"); + + b.HasIndex("Introduced") + .HasName("idx_sound_synths_introduced"); + + b.HasIndex("ModelCode") + .HasName("idx_sound_synths_model_code"); + + b.HasIndex("Name") + .HasName("idx_sound_synths_name"); + + b.HasIndex("SquareWave") + .HasName("idx_sound_synths_square_wave"); + + b.HasIndex("Type") + .HasName("idx_sound_synths_type"); + + b.HasIndex("Voices") + .HasName("idx_sound_synths_voices"); + + b.HasIndex("WhiteNoise") + .HasName("idx_sound_synths_white_noise"); + + b.ToTable("sound_synths"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("Capacity") + .HasColumnName("capacity") + .HasColumnType("bigint(20)"); + + b.Property("Interface") + .ValueGeneratedOnAdd() + .HasColumnName("interface") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("Capacity") + .HasName("idx_storage_capacity"); + + b.HasIndex("Interface") + .HasName("idx_storage_interface"); + + b.HasIndex("MachineId") + .HasName("idx_storage_machine"); + + b.HasIndex("Type") + .HasName("idx_storage_type"); + + b.ToTable("storage_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Capacity"); + + b.Property("Interface"); + + b.Property("OwnedMachineId"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.HasIndex("Capacity"); + + b.HasIndex("Interface"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("Type"); + + b.ToTable("StorageByOwnedMachine"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Discriminator") + .IsRequired(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex"); + + b.ToTable("AspNetUsers"); + + b.HasDiscriminator("Discriminator").HasValue("IdentityUser"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("ProviderKey") + .HasMaxLength(128); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("Name") + .HasMaxLength(128); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ApplicationUser", b => + { + b.HasBaseType("Microsoft.AspNetCore.Identity.IdentityUser"); + + b.HasDiscriminator().HasValue("ApplicationUser"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Book", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Books") + .HasForeignKey("CountryId"); + + b.HasOne("Cicm.Database.Models.Book", "Previous") + .WithOne("Next") + .HasForeignKey("Cicm.Database.Models.Book", "PreviousId"); + + b.HasOne("Cicm.Database.Models.Book", "Source") + .WithMany("Derivates") + .HasForeignKey("SourceId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachine", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("Machines") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Books") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("MachineFamilies") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Books") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByBook", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("Companies") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Books") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByDocument", b => + { + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Documents") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("Companies") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByMagazine", b => + { + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Magazines") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Magazine", "Magazine") + .WithMany("Companies") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Company", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Companies") + .HasForeignKey("CountryId") + .HasConstraintName("fk_companies_country"); + + b.HasOne("Cicm.Database.Models.Company", "SoldTo") + .WithMany("InverseSoldToNavigation") + .HasForeignKey("SoldToId") + .HasConstraintName("fk_companies_sold_to"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyDescription", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Descriptions") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyLogo", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Logos") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_company_logos_company1"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Document", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Documents") + .HasForeignKey("CountryId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentCompany", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithOne("DocumentCompany") + .HasForeignKey("Cicm.Database.Models.DocumentCompany", "CompanyId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentPerson", b => + { + b.HasOne("Cicm.Database.Models.Person", "Person") + .WithOne("DocumentPerson") + .HasForeignKey("Cicm.Database.Models.DocumentPerson", "PersonId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachine", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("Machines") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Documents") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("MachineFamilies") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Documents") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Gpu", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Gpus") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_gpus_company"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByMachine", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany("GpusByMachine") + .HasForeignKey("GpuId") + .HasConstraintName("fk_gpus_by_machine_gpu") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Gpus") + .HasForeignKey("MachineId") + .HasConstraintName("fk_gpus_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany() + .HasForeignKey("GpuId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Gpus") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtensionsByProcessor", b => + { + b.HasOne("Cicm.Database.Models.InstructionSetExtension", "Extension") + .WithMany("InstructionSetExtensionsByProcessor") + .HasForeignKey("ExtensionId") + .HasConstraintName("fk_extension_extension_id"); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany("InstructionSetExtensions") + .HasForeignKey("ProcessorId") + .HasConstraintName("fk_extension_processor_id"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Machine", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Machines") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_machines_company"); + + b.HasOne("Cicm.Database.Models.MachineFamily", "Family") + .WithMany("Machines") + .HasForeignKey("FamilyId") + .HasConstraintName("fk_machines_family"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("MachineFamilies") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_machine_families_company") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachinePhoto", b => + { + b.HasOne("Cicm.Database.Models.License", "License") + .WithMany("Photos") + .HasForeignKey("LicenseId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Photos") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.Magazine", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Magazines") + .HasForeignKey("CountryId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazineIssue", b => + { + b.HasOne("Cicm.Database.Models.Magazine", "Magazine") + .WithMany("Issues") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Magazines") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("Machines") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Magazines") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("MachineFamilies") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Memory") + .HasForeignKey("MachineId") + .HasConstraintName("fk_memory_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Memory") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany() + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("OwnedMachines") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachinePhoto", b => + { + b.HasOne("Cicm.Database.Models.License", "License") + .WithMany("OwnedMachinePhotos") + .HasForeignKey("LicenseId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Photos") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("OwnedMachinePhotos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByBook", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("People") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Books") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByCompany", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("People") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Person", "Person") + .WithMany("Companies") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByDocument", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("People") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Documents") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByMagazine", b => + { + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("People") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Magazines") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Person", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "CountryOfBirth") + .WithMany("People") + .HasForeignKey("CountryOfBirthId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Processor", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Processors") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_processors_company"); + + b.HasOne("Cicm.Database.Models.InstructionSet", "InstructionSet") + .WithMany("Processors") + .HasForeignKey("InstructionSetId") + .HasConstraintName("fk_processors_instruction_set"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Processors") + .HasForeignKey("MachineId") + .HasConstraintName("fk_processors_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany("ProcessorsByMachine") + .HasForeignKey("ProcessorId") + .HasConstraintName("fk_processors_by_machine_processor") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Processors") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany() + .HasForeignKey("ProcessorId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByGpu", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany("ResolutionsByGpu") + .HasForeignKey("GpuId") + .HasConstraintName("fk_resolutions_by_gpu_gpu") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Resolution", "Resolution") + .WithMany("ResolutionsByGpu") + .HasForeignKey("ResolutionId") + .HasConstraintName("fk_resolutions_by_gpu_resolution") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByScreen", b => + { + b.HasOne("Cicm.Database.Models.Resolution", "Resolution") + .WithMany("ResolutionsByScreen") + .HasForeignKey("ResolutionId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Screen", "Screen") + .WithMany("Resolutions") + .HasForeignKey("ScreenId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Screen", b => + { + b.HasOne("Cicm.Database.Models.Resolution", "NativeResolution") + .WithMany("Screens") + .HasForeignKey("NativeResolutionId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ScreensByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Screens") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Screen", "Screen") + .WithMany("ScreensByMachines") + .HasForeignKey("ScreenId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Sound") + .HasForeignKey("MachineId") + .HasConstraintName("fk_sound_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.SoundSynth", "SoundSynth") + .WithMany("SoundByMachine") + .HasForeignKey("SoundSynthId") + .HasConstraintName("fk_sound_by_machine_sound_synth") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Sound") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.SoundSynth", "SoundSynth") + .WithMany() + .HasForeignKey("SoundSynthId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundSynth", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("SoundSynths") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_sound_synths_company"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Storage") + .HasForeignKey("MachineId") + .HasConstraintName("fk_storage_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Storage") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.cs b/Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.cs new file mode 100644 index 00000000..dbbeae76 --- /dev/null +++ b/Cicm.Database/Migrations/20190630103617_FixDocumentCompanyOneToOne.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Cicm.Database.Migrations +{ + public partial class FixDocumentCompanyOneToOne : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey("FK_companies_DocumentCompanies_DocumentCompanyId", "companies"); + + migrationBuilder.DropIndex("IX_companies_DocumentCompanyId", "companies"); + + migrationBuilder.AlterColumn("CompanyId", "DocumentCompanies", nullable: true, oldClrType: typeof(int), + oldNullable: true); + + migrationBuilder.AddForeignKey("FK_DocumentCompanies_companies_CompanyId", "DocumentCompanies", "CompanyId", + "companies", principalColumn: "id", onDelete: ReferentialAction.SetNull); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey("FK_DocumentCompanies_companies_CompanyId", "DocumentCompanies"); + + migrationBuilder.AlterColumn("CompanyId", "DocumentCompanies", nullable: true, oldClrType: typeof(int), + oldNullable: true); + + migrationBuilder.CreateIndex("IX_companies_DocumentCompanyId", "companies", "DocumentCompanyId", + unique: true); + + migrationBuilder.AddForeignKey("FK_companies_DocumentCompanies_DocumentCompanyId", "companies", + "DocumentCompanyId", "DocumentCompanies", principalColumn: "Id", + onDelete: ReferentialAction.SetNull); + } + } +} \ No newline at end of file diff --git a/Cicm.Database/Migrations/cicmContextModelSnapshot.cs b/Cicm.Database/Migrations/cicmContextModelSnapshot.cs index 41901d37..de4f03b8 100644 --- a/Cicm.Database/Migrations/cicmContextModelSnapshot.cs +++ b/Cicm.Database/Migrations/cicmContextModelSnapshot.cs @@ -285,8 +285,6 @@ namespace Cicm.Database.Migrations b.HasIndex("CountryId").HasName("idx_companies_country"); - b.HasIndex("DocumentCompanyId").IsUnique(); - b.HasIndex("Facebook").HasName("idx_companies_facebook"); b.HasIndex("Founded").HasName("idx_companies_founded"); @@ -5634,9 +5632,6 @@ namespace Cicm.Database.Migrations b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country").WithMany("Companies") .HasForeignKey("CountryId").HasConstraintName("fk_companies_country"); - b.HasOne("Cicm.Database.Models.DocumentCompany", "DocumentCompany").WithOne("Company") - .HasForeignKey("Cicm.Database.Models.Company", "DocumentCompanyId").OnDelete(DeleteBehavior.SetNull); - b.HasOne("Cicm.Database.Models.Company", "SoldTo").WithMany("InverseSoldToNavigation") .HasForeignKey("SoldToId").HasConstraintName("fk_companies_sold_to"); }); @@ -5662,6 +5657,14 @@ namespace Cicm.Database.Migrations .HasForeignKey("CountryId"); }); + modelBuilder.Entity("Cicm.Database.Models.DocumentCompany", + b => + { + b.HasOne("Cicm.Database.Models.Company", "Company").WithOne("DocumentCompany") + .HasForeignKey("Cicm.Database.Models.DocumentCompany", "CompanyId") + .OnDelete(DeleteBehavior.SetNull); + }); + modelBuilder.Entity("Cicm.Database.Models.DocumentPerson", b => { diff --git a/Cicm.Database/Models/cicmContext.cs b/Cicm.Database/Models/cicmContext.cs index 0db02ae7..a6acd4a4 100644 --- a/Cicm.Database/Models/cicmContext.cs +++ b/Cicm.Database/Models/cicmContext.cs @@ -388,9 +388,6 @@ namespace Cicm.Database.Models entity.HasIndex(e => e.Name); entity.HasIndex(e => e.CompanyId).IsUnique(); - - entity.HasOne(d => d.Company).WithOne(p => p.DocumentCompany) - .HasForeignKey(d => d.DocumentCompanyId).OnDelete(DeleteBehavior.SetNull); }); modelBuilder.Entity(entity => diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 37064e82..ace64fae 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.846 + 3.0.99.856 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 88a2d670e562d56d93d6d4c8e3aa4ae1725a017b Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 11:49:19 +0100 Subject: [PATCH 03/23] Implement details page for document companies. --- .../DocumentCompaniesController.cs | 22 +++++++++++++++---- .../Admin/Models/DocumentCompanyViewModel.cs | 12 ++++++++++ .../Views/DocumentCompanies/Details.cshtml | 21 ++++++++++++------ .../Views/DocumentCompanies/Index.cshtml | 14 ++++++++++-- cicm_web/cicm_web.csproj | 2 +- 5 files changed, 57 insertions(+), 14 deletions(-) create mode 100644 cicm_web/Areas/Admin/Models/DocumentCompanyViewModel.cs diff --git a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs index 313ca69e..6e6b06ff 100644 --- a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs +++ b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs @@ -1,7 +1,7 @@ using System.Linq; using System.Threading.Tasks; using Cicm.Database.Models; -using cicm_web.Models; +using cicm_web.Areas.Admin.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; @@ -23,8 +23,14 @@ namespace cicm_web.Areas.Admin.Controllers // GET: DocumentCompanies public async Task Index() { - return View(await _context.DocumentCompanies.Select(d => new CompanyViewModel {Id = d.Id, Name = d.Name}) - .ToListAsync()); + return View(await _context.DocumentCompanies + .Select(d => new DocumentCompanyViewModel + { + Id = d.Id, + Name = d.Name, + Company = d.Company.Name, + CompanyId = d.CompanyId + }).ToListAsync()); } // GET: DocumentCompanies/Details/5 @@ -32,7 +38,15 @@ namespace cicm_web.Areas.Admin.Controllers { if(id == null) return NotFound(); - DocumentCompany documentCompany = await _context.DocumentCompanies.FirstOrDefaultAsync(m => m.Id == id); + DocumentCompanyViewModel documentCompany = + await _context.DocumentCompanies + .Select(d => new DocumentCompanyViewModel + { + Id = d.Id, + Name = d.Name, + Company = d.Company.Name, + CompanyId = d.CompanyId + }).FirstOrDefaultAsync(m => m.Id == id); if(documentCompany == null) return NotFound(); return View(documentCompany); diff --git a/cicm_web/Areas/Admin/Models/DocumentCompanyViewModel.cs b/cicm_web/Areas/Admin/Models/DocumentCompanyViewModel.cs new file mode 100644 index 00000000..03e5adaa --- /dev/null +++ b/cicm_web/Areas/Admin/Models/DocumentCompanyViewModel.cs @@ -0,0 +1,12 @@ +using System.ComponentModel; + +namespace cicm_web.Areas.Admin.Models +{ + public class DocumentCompanyViewModel : BaseViewModel + { + public string Name { get; set; } + [DisplayName("Linked company")] + public string Company { get; set; } + public int? CompanyId { get; set; } + } +} \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/DocumentCompanies/Details.cshtml b/cicm_web/Areas/Admin/Views/DocumentCompanies/Details.cshtml index dac00b45..a5137ab6 100644 --- a/cicm_web/Areas/Admin/Views/DocumentCompanies/Details.cshtml +++ b/cicm_web/Areas/Admin/Views/DocumentCompanies/Details.cshtml @@ -1,4 +1,4 @@ -@model Cicm.Database.Models.DocumentCompany +@model cicm_web.Areas.Admin.Models.DocumentCompanyViewModel @{ ViewData["Title"] = "Details"; @@ -7,7 +7,7 @@

Details

-

DocumentCompany

+

Document company


@@ -17,17 +17,24 @@ @Html.DisplayFor(model => model.Name)
- @Html.DisplayNameFor(model => model.CompanyId) + @Html.DisplayNameFor(model => model.Company)
- @Html.DisplayFor(model => model.CompanyId) + + @Html.DisplayFor(modelItem => Model.Company)
\ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/DocumentCompanies/Index.cshtml b/cicm_web/Areas/Admin/Views/DocumentCompanies/Index.cshtml index ea42e3c5..0bea7689 100644 --- a/cicm_web/Areas/Admin/Views/DocumentCompanies/Index.cshtml +++ b/cicm_web/Areas/Admin/Views/DocumentCompanies/Index.cshtml @@ -1,4 +1,5 @@ -@model IEnumerable +@using cicm_web.Areas.Admin.Models +@model IEnumerable @{ ViewData["Title"] = "Index"; @@ -18,16 +19,25 @@ @Html.DisplayNameFor(model => model.Name) + + @Html.DisplayNameFor(model => model.Company) + - @foreach(CompanyViewModel item in Model) + @foreach(DocumentCompanyViewModel item in Model) { @Html.DisplayFor(modelItem => item.Name) + + + @Html.DisplayFor(modelItem => item.Company) + netcoreapp2.2 - 3.0.99.856 + 3.0.99.857 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 64d7d702a9ec78c2037b389a39848cbf1db1171f Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 12:22:49 +0100 Subject: [PATCH 04/23] Implement edit page for document companies. --- .../DocumentCompaniesController.cs | 5 ++++ .../Admin/Views/DocumentCompanies/Edit.cshtml | 24 +++++++++++-------- cicm_web/cicm_web.csproj | 2 +- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs index 6e6b06ff..d4471f54 100644 --- a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs +++ b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs @@ -80,8 +80,11 @@ namespace cicm_web.Areas.Admin.Controllers if(id == null) return NotFound(); DocumentCompany documentCompany = await _context.DocumentCompanies.FindAsync(id); + if(documentCompany == null) return NotFound(); + ViewData["CompanyId"] = new SelectList(_context.Companies.OrderBy(c => c.Name).Select(c => new {c.Id, c.Name}), "Id", "Name", documentCompany.CompanyId); + return View(documentCompany); } @@ -111,6 +114,8 @@ namespace cicm_web.Areas.Admin.Controllers return RedirectToAction(nameof(Index)); } + ViewData["CompanyId"] = new SelectList(_context.Companies.OrderBy(c => c.Name).Select(c => new {c.Id, c.Name}), "Id", "Name", documentCompany.CompanyId); + return View(documentCompany); } diff --git a/cicm_web/Areas/Admin/Views/DocumentCompanies/Edit.cshtml b/cicm_web/Areas/Admin/Views/DocumentCompanies/Edit.cshtml index d689821b..3abd36ab 100644 --- a/cicm_web/Areas/Admin/Views/DocumentCompanies/Edit.cshtml +++ b/cicm_web/Areas/Admin/Views/DocumentCompanies/Edit.cshtml @@ -6,7 +6,7 @@

Edit

-

DocumentCompany

+

Document company


-
- Back to List -
\ No newline at end of file +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } +} \ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 49cf455a..4c50f343 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.857 + 3.0.99.859 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 2ae291092258c735f6e271b6d4481c75c54c2d34 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 12:29:20 +0100 Subject: [PATCH 05/23] Implement delete page for document companies. --- .../Controllers/DocumentCompaniesController.cs | 18 +++++++++++++++--- .../Views/DocumentCompanies/Delete.cshtml | 18 ++++++++++++------ cicm_web/cicm_web.csproj | 2 +- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs index d4471f54..8063aa99 100644 --- a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs +++ b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs @@ -83,7 +83,9 @@ namespace cicm_web.Areas.Admin.Controllers if(documentCompany == null) return NotFound(); - ViewData["CompanyId"] = new SelectList(_context.Companies.OrderBy(c => c.Name).Select(c => new {c.Id, c.Name}), "Id", "Name", documentCompany.CompanyId); + ViewData["CompanyId"] = + new SelectList(_context.Companies.OrderBy(c => c.Name).Select(c => new {c.Id, c.Name}), "Id", "Name", + documentCompany.CompanyId); return View(documentCompany); } @@ -114,7 +116,9 @@ namespace cicm_web.Areas.Admin.Controllers return RedirectToAction(nameof(Index)); } - ViewData["CompanyId"] = new SelectList(_context.Companies.OrderBy(c => c.Name).Select(c => new {c.Id, c.Name}), "Id", "Name", documentCompany.CompanyId); + ViewData["CompanyId"] = + new SelectList(_context.Companies.OrderBy(c => c.Name).Select(c => new {c.Id, c.Name}), "Id", "Name", + documentCompany.CompanyId); return View(documentCompany); } @@ -124,7 +128,15 @@ namespace cicm_web.Areas.Admin.Controllers { if(id == null) return NotFound(); - DocumentCompany documentCompany = await _context.DocumentCompanies.FirstOrDefaultAsync(m => m.Id == id); + DocumentCompanyViewModel documentCompany = + await _context.DocumentCompanies + .Select(d => new DocumentCompanyViewModel + { + Id = d.Id, + Name = d.Name, + Company = d.Company.Name, + CompanyId = d.CompanyId + }).FirstOrDefaultAsync(m => m.Id == id); if(documentCompany == null) return NotFound(); return View(documentCompany); diff --git a/cicm_web/Areas/Admin/Views/DocumentCompanies/Delete.cshtml b/cicm_web/Areas/Admin/Views/DocumentCompanies/Delete.cshtml index e5f963bc..d61bf566 100644 --- a/cicm_web/Areas/Admin/Views/DocumentCompanies/Delete.cshtml +++ b/cicm_web/Areas/Admin/Views/DocumentCompanies/Delete.cshtml @@ -1,4 +1,4 @@ -@model Cicm.Database.Models.DocumentCompany +@model cicm_web.Areas.Admin.Models.DocumentCompanyViewModel @{ ViewData["Title"] = "Delete"; @@ -8,7 +8,7 @@

Are you sure you want to delete this?

-

DocumentCompany

+

Document company


@@ -18,10 +18,13 @@ @Html.DisplayFor(model => model.Name)
- @Html.DisplayNameFor(model => model.CompanyId) + @Html.DisplayNameFor(model => model.Company)
- @Html.DisplayFor(model => model.CompanyId) + + @Html.DisplayFor(modelItem => Model.Company)
@@ -30,7 +33,10 @@ asp-for="Id" /> | - Back to List + value="Delete" /> + + Back to List +
\ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 4c50f343..5f1dfecc 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.859 + 3.0.99.860 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 04987cfe12f92556e775ac891e47a195ecefee63 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 20:41:38 +0100 Subject: [PATCH 06/23] Add display attributes to person model. --- Cicm.Database/Models/Person.cs | 25 ++++++++++++++++--------- cicm_web/cicm_web.csproj | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Cicm.Database/Models/Person.cs b/Cicm.Database/Models/Person.cs index 315310d9..66222632 100644 --- a/Cicm.Database/Models/Person.cs +++ b/Cicm.Database/Models/Person.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -10,15 +11,21 @@ namespace Cicm.Database.Models [Required] public string Name { get; set; } [Required] - public string Surname { get; set; } - public virtual Iso31661Numeric CountryOfBirth { get; set; } - public DateTime BirthDate { get; set; } - public DateTime? DeathDate { get; set; } - public string Webpage { get; set; } - public string Twitter { get; set; } - public string Facebook { get; set; } - public Guid Photo { get; set; } - public int? DocumentPersonId { get; set; } + public string Surname { get; set; } + [DisplayName("Country of birth")] + public virtual Iso31661Numeric CountryOfBirth { get; set; } + [DisplayName("Birth date")] + [DataType(DataType.Date)] + public DateTime BirthDate { get; set; } + [DisplayName("Date of death")] + [DataType(DataType.Date)] + public DateTime? DeathDate { get; set; } + [Url] + public string Webpage { get; set; } + public string Twitter { get; set; } + public string Facebook { get; set; } + public Guid Photo { get; set; } + public int? DocumentPersonId { get; set; } [NotMapped] public string FullName => $"{Name} {Surname}"; diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 5f1dfecc..a00e8517 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.860 + 3.0.99.863 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 2a31a164dbc741b4978c0197ef612513b7461914 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 20:50:57 +0100 Subject: [PATCH 07/23] Implement create page for people. --- .../Areas/Admin/Views/People/Create.cshtml | 105 ++++++++++++------ cicm_web/cicm_web.csproj | 2 +- 2 files changed, 73 insertions(+), 34 deletions(-) diff --git a/cicm_web/Areas/Admin/Views/People/Create.cshtml b/cicm_web/Areas/Admin/Views/People/Create.cshtml index 41c29ec2..7bae0db9 100644 --- a/cicm_web/Areas/Admin/Views/People/Create.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Create.cshtml @@ -11,59 +11,98 @@
-
-
- - - +
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - + +
- + + Back to List
- - +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } +} \ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index a00e8517..06315c59 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.863 + 3.0.99.864 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 0fabe49a147b262ce44db70068b0fe66d824e0ae Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 21:00:04 +0100 Subject: [PATCH 08/23] Add validation for person twitter handle. --- Cicm.Database/Models/Person.cs | 6 +- .../Admin/Controllers/PeopleController.cs | 101 ++++++++---------- cicm_web/cicm_web.csproj | 2 +- 3 files changed, 49 insertions(+), 60 deletions(-) diff --git a/Cicm.Database/Models/Person.cs b/Cicm.Database/Models/Person.cs index 66222632..b68f53e3 100644 --- a/Cicm.Database/Models/Person.cs +++ b/Cicm.Database/Models/Person.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.AspNetCore.Mvc; namespace Cicm.Database.Models { @@ -21,8 +22,9 @@ namespace Cicm.Database.Models [DataType(DataType.Date)] public DateTime? DeathDate { get; set; } [Url] - public string Webpage { get; set; } - public string Twitter { get; set; } + public string Webpage { get; set; } + [Remote("VerifyTwitter", "People", "Admin")] + public string Twitter { get; set; } public string Facebook { get; set; } public Guid Photo { get; set; } public int? DocumentPersonId { get; set; } diff --git a/cicm_web/Areas/Admin/Controllers/PeopleController.cs b/cicm_web/Areas/Admin/Controllers/PeopleController.cs index 2b507730..84f5078d 100644 --- a/cicm_web/Areas/Admin/Controllers/PeopleController.cs +++ b/cicm_web/Areas/Admin/Controllers/PeopleController.cs @@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Query; namespace cicm_web.Areas.Admin.Controllers { @@ -12,7 +13,7 @@ namespace cicm_web.Areas.Admin.Controllers [Authorize] public class PeopleController : Controller { - private readonly cicmContext _context; + readonly cicmContext _context; public PeopleController(cicmContext context) { @@ -22,25 +23,17 @@ namespace cicm_web.Areas.Admin.Controllers // GET: People public async Task Index() { - var cicmContext = _context.People.Include(p => p.CountryOfBirth); + IIncludableQueryable cicmContext = _context.People.Include(p => p.CountryOfBirth); return View(await cicmContext.ToListAsync()); } // GET: People/Details/5 public async Task Details(int? id) { - if (id == null) - { - return NotFound(); - } + if(id == null) return NotFound(); - var person = await _context.People - .Include(p => p.CountryOfBirth) - .FirstOrDefaultAsync(m => m.Id == id); - if (person == null) - { - return NotFound(); - } + Person person = await _context.People.Include(p => p.CountryOfBirth).FirstOrDefaultAsync(m => m.Id == id); + if(person == null) return NotFound(); return View(person); } @@ -57,32 +50,32 @@ namespace cicm_web.Areas.Admin.Controllers // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] - public async Task Create([Bind("Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id")] Person person) + public async Task Create( + [Bind("Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id")] + Person person) { - if (ModelState.IsValid) + if(ModelState.IsValid) { _context.Add(person); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } - ViewData["CountryOfBirthId"] = new SelectList(_context.Iso31661Numeric, "Id", "Name", person.CountryOfBirthId); + + ViewData["CountryOfBirthId"] = + new SelectList(_context.Iso31661Numeric, "Id", "Name", person.CountryOfBirthId); return View(person); } // GET: People/Edit/5 public async Task Edit(int? id) { - if (id == null) - { - return NotFound(); - } + if(id == null) return NotFound(); - var person = await _context.People.FindAsync(id); - if (person == null) - { - return NotFound(); - } - ViewData["CountryOfBirthId"] = new SelectList(_context.Iso31661Numeric, "Id", "Name", person.CountryOfBirthId); + Person person = await _context.People.FindAsync(id); + if(person == null) return NotFound(); + + ViewData["CountryOfBirthId"] = + new SelectList(_context.Iso31661Numeric, "Id", "Name", person.CountryOfBirthId); return View(person); } @@ -91,70 +84,64 @@ namespace cicm_web.Areas.Admin.Controllers // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] - public async Task Edit(int id, [Bind("Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id")] Person person) + public async Task Edit( + int id, [Bind("Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id")] + Person person) { - if (id != person.Id) - { - return NotFound(); - } + if(id != person.Id) return NotFound(); - if (ModelState.IsValid) + if(ModelState.IsValid) { try { _context.Update(person); await _context.SaveChangesAsync(); } - catch (DbUpdateConcurrencyException) + catch(DbUpdateConcurrencyException) { - if (!PersonExists(person.Id)) - { - return NotFound(); - } - else - { - throw; - } + if(!PersonExists(person.Id)) return NotFound(); + + throw; } + return RedirectToAction(nameof(Index)); } - ViewData["CountryOfBirthId"] = new SelectList(_context.Iso31661Numeric, "Id", "Name", person.CountryOfBirthId); + + ViewData["CountryOfBirthId"] = + new SelectList(_context.Iso31661Numeric, "Id", "Name", person.CountryOfBirthId); return View(person); } // GET: People/Delete/5 public async Task Delete(int? id) { - if (id == null) - { - return NotFound(); - } + if(id == null) return NotFound(); - var person = await _context.People - .Include(p => p.CountryOfBirth) - .FirstOrDefaultAsync(m => m.Id == id); - if (person == null) - { - return NotFound(); - } + Person person = await _context.People.Include(p => p.CountryOfBirth).FirstOrDefaultAsync(m => m.Id == id); + if(person == null) return NotFound(); return View(person); } // POST: People/Delete/5 - [HttpPost, ActionName("Delete")] + [HttpPost] + [ActionName("Delete")] [ValidateAntiForgeryToken] public async Task DeleteConfirmed(int id) { - var person = await _context.People.FindAsync(id); + Person person = await _context.People.FindAsync(id); _context.People.Remove(person); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } - private bool PersonExists(int id) + bool PersonExists(int id) { return _context.People.Any(e => e.Id == id); } + + [AcceptVerbs("Get", "Post")] + public IActionResult VerifyTwitter(string twitter) => + twitter?.Length > 0 && twitter[0] == '@' ? Json(true) : Json("Invalid twitter handle."); } -} +} \ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 06315c59..ec2129c4 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.864 + 3.0.99.865 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 8b49769223d4e142c06c76c957a59ae020e3c483 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 21:10:36 +0100 Subject: [PATCH 09/23] Implement index page for people. --- Cicm.Database/Models/Person.cs | 1 + .../Areas/Admin/Views/People/Index.cshtml | 38 ++++++++----------- cicm_web/cicm_web.csproj | 2 +- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/Cicm.Database/Models/Person.cs b/Cicm.Database/Models/Person.cs index b68f53e3..044f9976 100644 --- a/Cicm.Database/Models/Person.cs +++ b/Cicm.Database/Models/Person.cs @@ -30,6 +30,7 @@ namespace Cicm.Database.Models public int? DocumentPersonId { get; set; } [NotMapped] + [DisplayName("Name")] public string FullName => $"{Name} {Surname}"; public short? CountryOfBirthId { get; set; } diff --git a/cicm_web/Areas/Admin/Views/People/Index.cshtml b/cicm_web/Areas/Admin/Views/People/Index.cshtml index fb6dc4c0..2d46b36c 100644 --- a/cicm_web/Areas/Admin/Views/People/Index.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Index.cshtml @@ -1,22 +1,19 @@ @model IEnumerable @{ - ViewData["Title"] = "Index"; + ViewData["Title"] = "People"; } -

Index

+

People

- Create New + Create New

- - @@ -46,10 +40,7 @@ @foreach (var item in Model) { - - } diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index ec2129c4..e6094c1a 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.865 + 3.0.99.867 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From a1b0a52d6499ad85bab5ed1698c266df10a44340 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 21:14:56 +0100 Subject: [PATCH 10/23] Implement details page for people. --- .../Areas/Admin/Views/People/Details.cshtml | 61 +++++++++++-------- cicm_web/cicm_web.csproj | 2 +- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/cicm_web/Areas/Admin/Views/People/Details.cshtml b/cicm_web/Areas/Admin/Views/People/Details.cshtml index f8239acf..bb651564 100644 --- a/cicm_web/Areas/Admin/Views/People/Details.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Details.cshtml @@ -10,63 +10,70 @@

Person


-
+
@Html.DisplayNameFor(model => model.Name)
-
+
@Html.DisplayFor(model => model.Name)
-
+
@Html.DisplayNameFor(model => model.Surname)
-
+
@Html.DisplayFor(model => model.Surname)
-
+
@Html.DisplayNameFor(model => model.CountryOfBirth)
-
+
@Html.DisplayFor(model => model.CountryOfBirth.Name)
-
+
@Html.DisplayNameFor(model => model.BirthDate)
-
+
@Html.DisplayFor(model => model.BirthDate)
-
+
@Html.DisplayNameFor(model => model.DeathDate)
-
+
@Html.DisplayFor(model => model.DeathDate)
-
+
@Html.DisplayNameFor(model => model.Webpage)
-
+
@Html.DisplayFor(model => model.Webpage)
-
+
@Html.DisplayNameFor(model => model.Twitter)
-
- @Html.DisplayFor(model => model.Twitter) +
+ @if(Model.Twitter != null) + { + @Html.DisplayFor(model => model.Twitter) + }
-
+
@Html.DisplayNameFor(model => model.Facebook)
-
- @Html.DisplayFor(model => model.Facebook) -
-
- @Html.DisplayNameFor(model => model.Photo) -
-
- @Html.DisplayFor(model => model.Photo) +
+ @if(Model.Facebook != null) + { + @Html.DisplayFor(model => model.Facebook) + }
+ + Edit + + + Back to List + + \ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index e6094c1a..45e52e34 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.867 + 3.0.99.868 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 6f95c529ff3e05d9e1840b9dfc90e452cb69df8b Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 21:17:26 +0100 Subject: [PATCH 11/23] Implement delete page for people. --- .../Areas/Admin/Views/People/Delete.cshtml | 54 +++++++++---------- cicm_web/cicm_web.csproj | 2 +- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/cicm_web/Areas/Admin/Views/People/Delete.cshtml b/cicm_web/Areas/Admin/Views/People/Delete.cshtml index aca08b99..4f475494 100644 --- a/cicm_web/Areas/Admin/Views/People/Delete.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Delete.cshtml @@ -11,65 +11,65 @@

Person


-
+
@Html.DisplayNameFor(model => model.Name)
-
+
@Html.DisplayFor(model => model.Name)
-
+
@Html.DisplayNameFor(model => model.Surname)
-
+
@Html.DisplayFor(model => model.Surname)
-
+
@Html.DisplayNameFor(model => model.CountryOfBirth)
-
+
@Html.DisplayFor(model => model.CountryOfBirth.Name) -
-
+ +
@Html.DisplayNameFor(model => model.BirthDate)
-
+
@Html.DisplayFor(model => model.BirthDate)
-
+
@Html.DisplayNameFor(model => model.DeathDate)
-
+
@Html.DisplayFor(model => model.DeathDate)
-
+
@Html.DisplayNameFor(model => model.Webpage)
-
+
@Html.DisplayFor(model => model.Webpage)
-
+
@Html.DisplayNameFor(model => model.Twitter)
-
- @Html.DisplayFor(model => model.Twitter) +
+ @if(Model.Twitter != null) + { + @Html.DisplayFor(model => model.Twitter) + }
-
+
@Html.DisplayNameFor(model => model.Facebook)
-
- @Html.DisplayFor(model => model.Facebook) -
-
- @Html.DisplayNameFor(model => model.Photo) -
-
- @Html.DisplayFor(model => model.Photo) +
+ @if(Model.Facebook != null) + { + @Html.DisplayFor(model => model.Facebook) + }
- | - Back to List + + Back to List diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 45e52e34..b09a51bb 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.868 + 3.0.99.869 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From e40de9facdd3b2aa5421aaf6cde311c6bd4b8d60 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 21:20:07 +0100 Subject: [PATCH 12/23] Implement edit page for people. --- cicm_web/Areas/Admin/Views/People/Edit.cshtml | 100 ++++++++++++------ 1 file changed, 67 insertions(+), 33 deletions(-) diff --git a/cicm_web/Areas/Admin/Views/People/Edit.cshtml b/cicm_web/Areas/Admin/Views/People/Edit.cshtml index a3cd0561..6665d400 100644 --- a/cicm_web/Areas/Admin/Views/People/Edit.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Edit.cshtml @@ -13,59 +13,93 @@
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - - + + + +
- - - -
-
- - - + +
- - +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } +} From 72bcb540325dca7a989304cde23df9dfc14f0e2e Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 21:42:34 +0100 Subject: [PATCH 13/23] Add alias and display name to people. --- ...AddDisplayNameAndAliasToPerson.Designer.cs | 8194 +++++++++++++++++ ...30202244_AddDisplayNameAndAliasToPerson.cs | 29 + .../Migrations/cicmContextModelSnapshot.cs | 8 + Cicm.Database/Models/Person.cs | 5 +- Cicm.Database/Models/cicmContext.cs | 4 + .../Admin/Controllers/PeopleController.cs | 6 +- .../Areas/Admin/Views/People/Create.cshtml | 25 +- .../Areas/Admin/Views/People/Delete.cshtml | 28 +- .../Areas/Admin/Views/People/Details.cshtml | 12 + cicm_web/Areas/Admin/Views/People/Edit.cshtml | 38 +- cicm_web/cicm_web.csproj | 2 +- 11 files changed, 8336 insertions(+), 15 deletions(-) create mode 100644 Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.Designer.cs create mode 100644 Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.cs diff --git a/Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.Designer.cs b/Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.Designer.cs new file mode 100644 index 00000000..47c76249 --- /dev/null +++ b/Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.Designer.cs @@ -0,0 +1,8194 @@ +// +using System; +using Cicm.Database.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace Cicm.Database.Migrations +{ + [DbContext(typeof(cicmContext))] + [Migration("20190630202244_AddDisplayNameAndAliasToPerson")] + partial class AddDisplayNameAndAliasToPerson + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Cicm.Database.Models.Book", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("Edition"); + + b.Property("Isbn") + .HasMaxLength(13); + + b.Property("NativeTitle"); + + b.Property("Pages"); + + b.Property("PreviousId"); + + b.Property("Published"); + + b.Property("SourceId"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("Edition"); + + b.HasIndex("Isbn"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Pages"); + + b.HasIndex("PreviousId") + .IsUnique(); + + b.HasIndex("Published"); + + b.HasIndex("SourceId"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Books"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("MachineId"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("MachineId"); + + b.ToTable("BooksByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("MachineFamilyId"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("MachineFamilyId"); + + b.ToTable("BooksByMachineFamilies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BrowserTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Agif") + .ValueGeneratedOnAdd() + .HasColumnName("agif") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("varchar(64)") + .HasDefaultValueSql("''") + .HasMaxLength(64); + + b.Property("Colors") + .ValueGeneratedOnAdd() + .HasColumnName("colors") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Flash") + .ValueGeneratedOnAdd() + .HasColumnName("flash") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Frames") + .ValueGeneratedOnAdd() + .HasColumnName("frames") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Gif87") + .ValueGeneratedOnAdd() + .HasColumnName("gif87") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Gif89") + .ValueGeneratedOnAdd() + .HasColumnName("gif89") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Jpeg") + .ValueGeneratedOnAdd() + .HasColumnName("jpeg") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Js") + .ValueGeneratedOnAdd() + .HasColumnName("js") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Os") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("os") + .HasColumnType("varchar(32)") + .HasDefaultValueSql("''") + .HasMaxLength(32); + + b.Property("Platform") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("platform") + .HasColumnType("varchar(8)") + .HasDefaultValueSql("''") + .HasMaxLength(8); + + b.Property("Png") + .ValueGeneratedOnAdd() + .HasColumnName("png") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Pngt") + .ValueGeneratedOnAdd() + .HasColumnName("pngt") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Table") + .ValueGeneratedOnAdd() + .HasColumnName("table") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("UserAgent") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("user_agent") + .HasColumnType("varchar(128)") + .HasDefaultValueSql("''") + .HasMaxLength(128); + + b.Property("Version") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("version") + .HasColumnType("varchar(16)") + .HasDefaultValueSql("''") + .HasMaxLength(16); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_browser_tests_browser"); + + b.HasIndex("Os") + .HasName("idx_browser_tests_os"); + + b.HasIndex("Platform") + .HasName("idx_browser_tests_platform"); + + b.HasIndex("UserAgent") + .HasName("idx_browser_tests_user_agent"); + + b.HasIndex("Version") + .HasName("idx_browser_tests_version"); + + b.ToTable("browser_tests"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CicmDb", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Updated") + .ValueGeneratedOnAdd() + .HasColumnName("updated") + .HasColumnType("datetime") + .HasDefaultValueSql("'CURRENT_TIMESTAMP'"); + + b.Property("Version") + .HasColumnName("version") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.ToTable("cicm_db"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByBook", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("CompanyId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("CompanyId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByBooks"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("DocumentId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByDocuments"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByMagazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("MagazineId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("MagazineId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByMagazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Company", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Address") + .HasColumnName("address") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("City") + .HasColumnName("city") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("CountryId") + .HasColumnName("country") + .HasColumnType("smallint(3)"); + + b.Property("DocumentCompanyId"); + + b.Property("Facebook") + .HasColumnName("facebook") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Founded") + .HasColumnName("founded") + .HasColumnType("datetime"); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("varchar(128)") + .HasDefaultValueSql("''"); + + b.Property("PostalCode") + .HasColumnName("postal_code") + .HasColumnType("varchar(25)") + .HasMaxLength(25); + + b.Property("Province") + .HasColumnName("province") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("Sold") + .HasColumnName("sold") + .HasColumnType("datetime"); + + b.Property("SoldToId") + .HasColumnName("sold_to") + .HasColumnType("int(11)"); + + b.Property("Status") + .HasColumnName("status") + .HasColumnType("int(11)"); + + b.Property("Twitter") + .HasColumnName("twitter") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Website") + .HasColumnName("website") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.HasKey("Id"); + + b.HasIndex("Address") + .HasName("idx_companies_address"); + + b.HasIndex("City") + .HasName("idx_companies_city"); + + b.HasIndex("CountryId") + .HasName("idx_companies_country"); + + b.HasIndex("Facebook") + .HasName("idx_companies_facebook"); + + b.HasIndex("Founded") + .HasName("idx_companies_founded"); + + b.HasIndex("Name") + .HasName("idx_companies_name"); + + b.HasIndex("PostalCode") + .HasName("idx_companies_postal_code"); + + b.HasIndex("Province") + .HasName("idx_companies_province"); + + b.HasIndex("Sold") + .HasName("idx_companies_sold"); + + b.HasIndex("SoldToId") + .HasName("idx_companies_sold_to"); + + b.HasIndex("Status") + .HasName("idx_companies_status"); + + b.HasIndex("Twitter") + .HasName("idx_companies_twitter"); + + b.HasIndex("Website") + .HasName("idx_companies_website"); + + b.ToTable("companies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyDescription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("Html") + .HasMaxLength(262144); + + b.Property("Text") + .IsRequired() + .HasMaxLength(262144); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("Text") + .HasAnnotation("MySql:FullTextIndex", true); + + b.ToTable("CompanyDescriptions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyLogo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company_id") + .HasColumnType("int(11)"); + + b.Property("Guid") + .HasColumnName("logo_guid") + .HasColumnType("char(36)"); + + b.Property("Year") + .HasColumnName("year") + .HasColumnType("int(4)"); + + b.HasKey("Id", "CompanyId", "Guid"); + + b.HasIndex("CompanyId") + .HasName("idx_company_id"); + + b.HasIndex("Guid") + .HasName("idx_guid"); + + b.HasIndex("Id") + .IsUnique() + .HasName("idx_id"); + + b.ToTable("company_logos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Document", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("NativeTitle"); + + b.Property("Published"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Published"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Documents"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentCompany", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .IsUnique(); + + b.HasIndex("Name"); + + b.ToTable("DocumentCompanies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentPerson", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.Property("PersonId"); + + b.Property("Surname") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.HasIndex("PersonId") + .IsUnique(); + + b.HasIndex("Surname"); + + b.ToTable("DocumentPeople"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(3)"); + + b.Property("Enabled") + .ValueGeneratedOnAdd() + .HasDefaultValue(true); + + b.Property("Name"); + + b.HasKey("Id"); + + b.HasIndex("Enabled"); + + b.HasIndex("Name"); + + b.ToTable("DocumentRoles"); + + b.HasData( + new + { + Id = "abr", + Enabled = true, + Name = "Abridger" + }, + new + { + Id = "acp", + Enabled = true, + Name = "Art copyist" + }, + new + { + Id = "act", + Enabled = true, + Name = "Actor" + }, + new + { + Id = "adi", + Enabled = true, + Name = "Art director" + }, + new + { + Id = "adp", + Enabled = true, + Name = "Adapter" + }, + new + { + Id = "aft", + Enabled = true, + Name = "Author of afterword, colophon, etc." + }, + new + { + Id = "anl", + Enabled = true, + Name = "Analyst" + }, + new + { + Id = "anm", + Enabled = true, + Name = "Animator" + }, + new + { + Id = "ann", + Enabled = true, + Name = "Annotator" + }, + new + { + Id = "ant", + Enabled = true, + Name = "Bibliographic antecedent" + }, + new + { + Id = "ape", + Enabled = true, + Name = "Appellee" + }, + new + { + Id = "apl", + Enabled = true, + Name = "Appellant" + }, + new + { + Id = "app", + Enabled = true, + Name = "Applicant" + }, + new + { + Id = "aqt", + Enabled = true, + Name = "Author in quotations or text abstracts" + }, + new + { + Id = "arc", + Enabled = true, + Name = "Architect" + }, + new + { + Id = "ard", + Enabled = true, + Name = "Artistic director" + }, + new + { + Id = "arr", + Enabled = true, + Name = "Arranger" + }, + new + { + Id = "art", + Enabled = true, + Name = "Artist" + }, + new + { + Id = "asg", + Enabled = true, + Name = "Assignee" + }, + new + { + Id = "asn", + Enabled = true, + Name = "Associated name" + }, + new + { + Id = "ato", + Enabled = true, + Name = "Autographer" + }, + new + { + Id = "att", + Enabled = true, + Name = "Attributed name" + }, + new + { + Id = "auc", + Enabled = true, + Name = "Auctioneer" + }, + new + { + Id = "aud", + Enabled = true, + Name = "Author of dialog" + }, + new + { + Id = "aui", + Enabled = true, + Name = "Author of introduction, etc." + }, + new + { + Id = "aus", + Enabled = true, + Name = "Screenwriter" + }, + new + { + Id = "aut", + Enabled = true, + Name = "Author" + }, + new + { + Id = "bdd", + Enabled = true, + Name = "Binding designer" + }, + new + { + Id = "bjd", + Enabled = true, + Name = "Bookjacket designer" + }, + new + { + Id = "bkd", + Enabled = true, + Name = "Book designer" + }, + new + { + Id = "bkp", + Enabled = true, + Name = "Book producer" + }, + new + { + Id = "blw", + Enabled = true, + Name = "Blurb writer" + }, + new + { + Id = "bnd", + Enabled = true, + Name = "Binder" + }, + new + { + Id = "bpd", + Enabled = true, + Name = "Bookplate designer" + }, + new + { + Id = "brd", + Enabled = true, + Name = "Broadcaster" + }, + new + { + Id = "brl", + Enabled = true, + Name = "Braille embosser" + }, + new + { + Id = "bsl", + Enabled = true, + Name = "Bookseller" + }, + new + { + Id = "cas", + Enabled = true, + Name = "Caster" + }, + new + { + Id = "ccp", + Enabled = true, + Name = "Conceptor" + }, + new + { + Id = "chr", + Enabled = true, + Name = "Choreographer" + }, + new + { + Id = "clb", + Enabled = false, + Name = "Collaborator" + }, + new + { + Id = "cli", + Enabled = true, + Name = "Client" + }, + new + { + Id = "cll", + Enabled = true, + Name = "Calligrapher" + }, + new + { + Id = "clr", + Enabled = true, + Name = "Colorist" + }, + new + { + Id = "clt", + Enabled = true, + Name = "Collotyper" + }, + new + { + Id = "cmm", + Enabled = true, + Name = "Commentator" + }, + new + { + Id = "cmp", + Enabled = true, + Name = "Composer" + }, + new + { + Id = "cmt", + Enabled = true, + Name = "Compositor" + }, + new + { + Id = "cnd", + Enabled = true, + Name = "Conductor" + }, + new + { + Id = "cng", + Enabled = true, + Name = "Cinematographer" + }, + new + { + Id = "cns", + Enabled = true, + Name = "Censor" + }, + new + { + Id = "coe", + Enabled = true, + Name = "Contestant-appellee" + }, + new + { + Id = "col", + Enabled = true, + Name = "Collector" + }, + new + { + Id = "com", + Enabled = true, + Name = "Compiler" + }, + new + { + Id = "con", + Enabled = true, + Name = "Conservator" + }, + new + { + Id = "cor", + Enabled = true, + Name = "Collection registrar" + }, + new + { + Id = "cos", + Enabled = true, + Name = "Contestant" + }, + new + { + Id = "cot", + Enabled = true, + Name = "Contestant-appellant" + }, + new + { + Id = "cou", + Enabled = true, + Name = "Court governed" + }, + new + { + Id = "cov", + Enabled = true, + Name = "Cover designer" + }, + new + { + Id = "cpc", + Enabled = true, + Name = "Copyright claimant" + }, + new + { + Id = "cpe", + Enabled = true, + Name = "Complainant-appellee" + }, + new + { + Id = "cph", + Enabled = true, + Name = "Copyright holder" + }, + new + { + Id = "cpl", + Enabled = true, + Name = "Complainant" + }, + new + { + Id = "cpt", + Enabled = true, + Name = "Complainant-appellant" + }, + new + { + Id = "cre", + Enabled = true, + Name = "Creator" + }, + new + { + Id = "crp", + Enabled = true, + Name = "Correspondent" + }, + new + { + Id = "crr", + Enabled = true, + Name = "Corrector" + }, + new + { + Id = "crt", + Enabled = true, + Name = "Court reporter" + }, + new + { + Id = "csl", + Enabled = true, + Name = "Consultant" + }, + new + { + Id = "csp", + Enabled = true, + Name = "Consultant to a project" + }, + new + { + Id = "cst", + Enabled = true, + Name = "Costume designer" + }, + new + { + Id = "ctb", + Enabled = true, + Name = "Contributor" + }, + new + { + Id = "cte", + Enabled = true, + Name = "Contestee-appellee" + }, + new + { + Id = "ctg", + Enabled = true, + Name = "Cartographer" + }, + new + { + Id = "ctr", + Enabled = true, + Name = "Contractor" + }, + new + { + Id = "cts", + Enabled = true, + Name = "Contestee" + }, + new + { + Id = "ctt", + Enabled = true, + Name = "Contestee-appellant" + }, + new + { + Id = "cur", + Enabled = true, + Name = "Curator" + }, + new + { + Id = "cwt", + Enabled = true, + Name = "Commentator for written text" + }, + new + { + Id = "dbp", + Enabled = true, + Name = "Distribution place" + }, + new + { + Id = "dfd", + Enabled = true, + Name = "Defendant" + }, + new + { + Id = "dfe", + Enabled = true, + Name = "Defendant-appellee" + }, + new + { + Id = "dft", + Enabled = true, + Name = "Defendant-appellant" + }, + new + { + Id = "dgg", + Enabled = true, + Name = "Degree granting institution" + }, + new + { + Id = "dgs", + Enabled = true, + Name = "Degree supervisor" + }, + new + { + Id = "dis", + Enabled = true, + Name = "Dissertant" + }, + new + { + Id = "dln", + Enabled = true, + Name = "Delineator" + }, + new + { + Id = "dnc", + Enabled = true, + Name = "Dancer" + }, + new + { + Id = "dnr", + Enabled = true, + Name = "Donor" + }, + new + { + Id = "dpc", + Enabled = true, + Name = "Depicted" + }, + new + { + Id = "dpt", + Enabled = true, + Name = "Depositor" + }, + new + { + Id = "drm", + Enabled = true, + Name = "Draftsman" + }, + new + { + Id = "drt", + Enabled = true, + Name = "Director" + }, + new + { + Id = "dsr", + Enabled = true, + Name = "Designer" + }, + new + { + Id = "dst", + Enabled = true, + Name = "Distributor" + }, + new + { + Id = "dtc", + Enabled = true, + Name = "Data contributor" + }, + new + { + Id = "dte", + Enabled = true, + Name = "Dedicatee" + }, + new + { + Id = "dtm", + Enabled = true, + Name = "Data manager" + }, + new + { + Id = "dto", + Enabled = true, + Name = "Dedicator" + }, + new + { + Id = "dub", + Enabled = true, + Name = "Dubious author" + }, + new + { + Id = "edc", + Enabled = true, + Name = "Editor of compilation" + }, + new + { + Id = "edm", + Enabled = true, + Name = "Editor of moving image work" + }, + new + { + Id = "edt", + Enabled = true, + Name = "Editor" + }, + new + { + Id = "egr", + Enabled = true, + Name = "Engraver" + }, + new + { + Id = "elg", + Enabled = true, + Name = "Electrician" + }, + new + { + Id = "elt", + Enabled = true, + Name = "Electrotyper" + }, + new + { + Id = "eng", + Enabled = true, + Name = "Engineer" + }, + new + { + Id = "enj", + Enabled = true, + Name = "Enacting jurisdiction" + }, + new + { + Id = "etr", + Enabled = true, + Name = "Etcher" + }, + new + { + Id = "evp", + Enabled = true, + Name = "Event place" + }, + new + { + Id = "exp", + Enabled = true, + Name = "Expert" + }, + new + { + Id = "fac", + Enabled = true, + Name = "Facsimilist" + }, + new + { + Id = "fds", + Enabled = true, + Name = "Film distributor" + }, + new + { + Id = "fld", + Enabled = true, + Name = "Field director" + }, + new + { + Id = "flm", + Enabled = true, + Name = "Film editor" + }, + new + { + Id = "fmd", + Enabled = true, + Name = "Film director" + }, + new + { + Id = "fmk", + Enabled = true, + Name = "Filmmaker" + }, + new + { + Id = "fmo", + Enabled = true, + Name = "Former owner" + }, + new + { + Id = "fmp", + Enabled = true, + Name = "Film producer" + }, + new + { + Id = "fnd", + Enabled = true, + Name = "Funder" + }, + new + { + Id = "fpy", + Enabled = true, + Name = "First party" + }, + new + { + Id = "frg", + Enabled = true, + Name = "Forger" + }, + new + { + Id = "gis", + Enabled = true, + Name = "Geographic information specialist" + }, + new + { + Id = "grt", + Enabled = false, + Name = "Graphic technician" + }, + new + { + Id = "his", + Enabled = true, + Name = "Host institution" + }, + new + { + Id = "hnr", + Enabled = true, + Name = "Honoree" + }, + new + { + Id = "hst", + Enabled = true, + Name = "Host" + }, + new + { + Id = "ill", + Enabled = true, + Name = "Illustrator" + }, + new + { + Id = "ilu", + Enabled = true, + Name = "Illuminator" + }, + new + { + Id = "ins", + Enabled = true, + Name = "Inscriber" + }, + new + { + Id = "inv", + Enabled = true, + Name = "Inventor" + }, + new + { + Id = "isb", + Enabled = true, + Name = "Issuing body" + }, + new + { + Id = "itr", + Enabled = true, + Name = "Instrumentalist" + }, + new + { + Id = "ive", + Enabled = true, + Name = "Interviewee" + }, + new + { + Id = "ivr", + Enabled = true, + Name = "Interviewer" + }, + new + { + Id = "jud", + Enabled = true, + Name = "Judge" + }, + new + { + Id = "jug", + Enabled = true, + Name = "Jurisdiction governed" + }, + new + { + Id = "lbr", + Enabled = true, + Name = "Laboratory" + }, + new + { + Id = "lbt", + Enabled = true, + Name = "Librettist" + }, + new + { + Id = "ldr", + Enabled = true, + Name = "Laboratory director" + }, + new + { + Id = "led", + Enabled = true, + Name = "Lead" + }, + new + { + Id = "lee", + Enabled = true, + Name = "Libelee-appellee" + }, + new + { + Id = "lel", + Enabled = true, + Name = "Libelee" + }, + new + { + Id = "len", + Enabled = true, + Name = "Lender" + }, + new + { + Id = "let", + Enabled = true, + Name = "Libelee-appellant" + }, + new + { + Id = "lgd", + Enabled = true, + Name = "Lighting designer" + }, + new + { + Id = "lie", + Enabled = true, + Name = "Libelant-appellee" + }, + new + { + Id = "lil", + Enabled = true, + Name = "Libelant" + }, + new + { + Id = "lit", + Enabled = true, + Name = "Libelant-appellant" + }, + new + { + Id = "lsa", + Enabled = true, + Name = "Landscape architect" + }, + new + { + Id = "lse", + Enabled = true, + Name = "Licensee" + }, + new + { + Id = "lso", + Enabled = true, + Name = "Licensor" + }, + new + { + Id = "ltg", + Enabled = true, + Name = "Lithographer" + }, + new + { + Id = "lyr", + Enabled = true, + Name = "Lyricist" + }, + new + { + Id = "mcp", + Enabled = true, + Name = "Music copyist" + }, + new + { + Id = "mdc", + Enabled = true, + Name = "Metadata contact" + }, + new + { + Id = "med", + Enabled = true, + Name = "Medium" + }, + new + { + Id = "mfp", + Enabled = true, + Name = "Manufacture place" + }, + new + { + Id = "mfr", + Enabled = true, + Name = "Manufacturer" + }, + new + { + Id = "mod", + Enabled = true, + Name = "Moderator" + }, + new + { + Id = "mon", + Enabled = true, + Name = "Monitor" + }, + new + { + Id = "mrb", + Enabled = true, + Name = "Marbler" + }, + new + { + Id = "mrk", + Enabled = true, + Name = "Markup editor" + }, + new + { + Id = "msd", + Enabled = true, + Name = "Musical director" + }, + new + { + Id = "mte", + Enabled = true, + Name = "Metal-engraver" + }, + new + { + Id = "mtk", + Enabled = true, + Name = "Minute taker" + }, + new + { + Id = "mus", + Enabled = true, + Name = "Musician" + }, + new + { + Id = "nrt", + Enabled = true, + Name = "Narrator" + }, + new + { + Id = "opn", + Enabled = true, + Name = "Opponent" + }, + new + { + Id = "org", + Enabled = true, + Name = "Originator" + }, + new + { + Id = "orm", + Enabled = true, + Name = "Organizer" + }, + new + { + Id = "osp", + Enabled = true, + Name = "Onscreen presenter" + }, + new + { + Id = "oth", + Enabled = true, + Name = "Other" + }, + new + { + Id = "own", + Enabled = true, + Name = "Owner" + }, + new + { + Id = "pan", + Enabled = true, + Name = "Panelist" + }, + new + { + Id = "pat", + Enabled = true, + Name = "Patron" + }, + new + { + Id = "pbd", + Enabled = true, + Name = "Publishing director" + }, + new + { + Id = "pbl", + Enabled = true, + Name = "Publisher" + }, + new + { + Id = "pdr", + Enabled = true, + Name = "Project director" + }, + new + { + Id = "pfr", + Enabled = true, + Name = "Proofreader" + }, + new + { + Id = "pht", + Enabled = true, + Name = "Photographer" + }, + new + { + Id = "plt", + Enabled = true, + Name = "Platemaker" + }, + new + { + Id = "pma", + Enabled = true, + Name = "Permitting agency" + }, + new + { + Id = "pmn", + Enabled = true, + Name = "Production manager" + }, + new + { + Id = "pop", + Enabled = true, + Name = "Printer of plates" + }, + new + { + Id = "ppm", + Enabled = true, + Name = "Papermaker" + }, + new + { + Id = "ppt", + Enabled = true, + Name = "Puppeteer" + }, + new + { + Id = "pra", + Enabled = true, + Name = "Praeses" + }, + new + { + Id = "prc", + Enabled = true, + Name = "Process contact" + }, + new + { + Id = "prd", + Enabled = true, + Name = "Production personnel" + }, + new + { + Id = "pre", + Enabled = true, + Name = "Presenter" + }, + new + { + Id = "prf", + Enabled = true, + Name = "Performer" + }, + new + { + Id = "prg", + Enabled = true, + Name = "Programmer" + }, + new + { + Id = "prm", + Enabled = true, + Name = "Printmaker" + }, + new + { + Id = "prn", + Enabled = true, + Name = "Production company" + }, + new + { + Id = "pro", + Enabled = true, + Name = "Producer" + }, + new + { + Id = "prp", + Enabled = true, + Name = "Production place" + }, + new + { + Id = "prs", + Enabled = true, + Name = "Production designer" + }, + new + { + Id = "prt", + Enabled = true, + Name = "Printer" + }, + new + { + Id = "prv", + Enabled = true, + Name = "Provider" + }, + new + { + Id = "pta", + Enabled = true, + Name = "Patent applicant" + }, + new + { + Id = "pte", + Enabled = true, + Name = "Plaintiff-appellee" + }, + new + { + Id = "ptf", + Enabled = true, + Name = "Plaintiff" + }, + new + { + Id = "pth", + Enabled = true, + Name = "Patent holder" + }, + new + { + Id = "ptt", + Enabled = true, + Name = "Plaintiff-appellant" + }, + new + { + Id = "pup", + Enabled = true, + Name = "Publication place" + }, + new + { + Id = "rbr", + Enabled = true, + Name = "Rubricator" + }, + new + { + Id = "rcd", + Enabled = true, + Name = "Recordist" + }, + new + { + Id = "rce", + Enabled = true, + Name = "Recording engineer" + }, + new + { + Id = "rcp", + Enabled = true, + Name = "Addressee" + }, + new + { + Id = "rdd", + Enabled = true, + Name = "Radio director" + }, + new + { + Id = "red", + Enabled = true, + Name = "Redaktor" + }, + new + { + Id = "ren", + Enabled = true, + Name = "Renderer" + }, + new + { + Id = "res", + Enabled = true, + Name = "Researcher" + }, + new + { + Id = "rev", + Enabled = true, + Name = "Reviewer" + }, + new + { + Id = "rpc", + Enabled = true, + Name = "Radio producer" + }, + new + { + Id = "rps", + Enabled = true, + Name = "Repository" + }, + new + { + Id = "rpt", + Enabled = true, + Name = "Reporter" + }, + new + { + Id = "rpy", + Enabled = true, + Name = "Responsible party" + }, + new + { + Id = "rse", + Enabled = true, + Name = "Respondent-appellee" + }, + new + { + Id = "rsg", + Enabled = true, + Name = "Restager" + }, + new + { + Id = "rsp", + Enabled = true, + Name = "Respondent" + }, + new + { + Id = "rsr", + Enabled = true, + Name = "Restorationist" + }, + new + { + Id = "rst", + Enabled = true, + Name = "Respondent-appellant" + }, + new + { + Id = "rth", + Enabled = true, + Name = "Research team head" + }, + new + { + Id = "rtm", + Enabled = true, + Name = "Research team member" + }, + new + { + Id = "sad", + Enabled = true, + Name = "Scientific advisor" + }, + new + { + Id = "sce", + Enabled = true, + Name = "Scenarist" + }, + new + { + Id = "scl", + Enabled = true, + Name = "Sculptor" + }, + new + { + Id = "scr", + Enabled = true, + Name = "Scribe" + }, + new + { + Id = "sds", + Enabled = true, + Name = "Sound designer" + }, + new + { + Id = "sec", + Enabled = true, + Name = "Secretary" + }, + new + { + Id = "sgd", + Enabled = true, + Name = "Stage director" + }, + new + { + Id = "sgn", + Enabled = true, + Name = "Signer" + }, + new + { + Id = "sht", + Enabled = true, + Name = "Supporting host" + }, + new + { + Id = "sll", + Enabled = true, + Name = "Seller" + }, + new + { + Id = "sng", + Enabled = true, + Name = "Singer" + }, + new + { + Id = "spk", + Enabled = true, + Name = "Speaker" + }, + new + { + Id = "spn", + Enabled = true, + Name = "Sponsor" + }, + new + { + Id = "spy", + Enabled = true, + Name = "Second party" + }, + new + { + Id = "srv", + Enabled = true, + Name = "Surveyor" + }, + new + { + Id = "std", + Enabled = true, + Name = "Set designer" + }, + new + { + Id = "stg", + Enabled = true, + Name = "Setting" + }, + new + { + Id = "stl", + Enabled = true, + Name = "Storyteller" + }, + new + { + Id = "stm", + Enabled = true, + Name = "Stage manager" + }, + new + { + Id = "stn", + Enabled = true, + Name = "Standards body" + }, + new + { + Id = "str", + Enabled = true, + Name = "Stereotyper" + }, + new + { + Id = "tcd", + Enabled = true, + Name = "Technical director" + }, + new + { + Id = "tch", + Enabled = true, + Name = "Teacher" + }, + new + { + Id = "ths", + Enabled = true, + Name = "Thesis advisor" + }, + new + { + Id = "tld", + Enabled = true, + Name = "Television director" + }, + new + { + Id = "tlp", + Enabled = true, + Name = "Television producer" + }, + new + { + Id = "trc", + Enabled = true, + Name = "Transcriber" + }, + new + { + Id = "trl", + Enabled = true, + Name = "Translator" + }, + new + { + Id = "tyd", + Enabled = true, + Name = "Type designer" + }, + new + { + Id = "tyg", + Enabled = true, + Name = "Typographer" + }, + new + { + Id = "uvp", + Enabled = true, + Name = "University place" + }, + new + { + Id = "vac", + Enabled = true, + Name = "Voice actor" + }, + new + { + Id = "vdg", + Enabled = true, + Name = "Videographer" + }, + new + { + Id = "voc", + Enabled = false, + Name = "Vocalist" + }, + new + { + Id = "wac", + Enabled = true, + Name = "Writer of added commentary" + }, + new + { + Id = "wal", + Enabled = true, + Name = "Writer of added lyrics" + }, + new + { + Id = "wam", + Enabled = true, + Name = "Writer of accompanying material" + }, + new + { + Id = "wat", + Enabled = true, + Name = "Writer of added text" + }, + new + { + Id = "wdc", + Enabled = true, + Name = "Woodcutter" + }, + new + { + Id = "wde", + Enabled = true, + Name = "Wood engraver" + }, + new + { + Id = "win", + Enabled = true, + Name = "Writer of introduction" + }, + new + { + Id = "wit", + Enabled = true, + Name = "Witness" + }, + new + { + Id = "wpr", + Enabled = true, + Name = "Writer of preface" + }, + new + { + Id = "wst", + Enabled = true, + Name = "Writer of supplementary textual content" + }); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("MachineId"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("MachineId"); + + b.ToTable("DocumentsByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("MachineFamilyId"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("MachineFamilyId"); + + b.ToTable("DocumentsByMachineFamily"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Forbidden", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Date") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("date") + .HasColumnType("char(20)") + .HasDefaultValueSql("''"); + + b.Property("Ip") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("ip") + .HasColumnType("char(16)") + .HasDefaultValueSql("''"); + + b.Property("Referer") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("referer") + .HasColumnType("char(255)") + .HasDefaultValueSql("''"); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_forbidden_browser"); + + b.HasIndex("Date") + .HasName("idx_forbidden_date"); + + b.HasIndex("Ip") + .HasName("idx_forbidden_ip"); + + b.HasIndex("Referer") + .HasName("idx_forbidden_referer"); + + b.ToTable("forbidden"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Gpu", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("DieSize") + .HasColumnName("die_size"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(128)") + .HasDefaultValueSql("''") + .HasMaxLength(128); + + b.Property("Package") + .HasColumnName("package") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Process") + .HasColumnName("process") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("ProcessNm") + .HasColumnName("process_nm"); + + b.Property("Transistors") + .HasColumnName("transistors") + .HasColumnType("bigint(20)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_gpus_company"); + + b.HasIndex("DieSize") + .HasName("idx_gpus_die_size"); + + b.HasIndex("Introduced") + .HasName("idx_gpus_introduced"); + + b.HasIndex("ModelCode") + .HasName("idx_gpus_model_code"); + + b.HasIndex("Name") + .HasName("idx_gpus_name"); + + b.HasIndex("Package") + .HasName("idx_gpus_package"); + + b.HasIndex("Process") + .HasName("idx_gpus_process"); + + b.HasIndex("ProcessNm") + .HasName("idx_gpus_process_nm"); + + b.HasIndex("Transistors") + .HasName("idx_gpus_transistors"); + + b.ToTable("gpus"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("GpuId") + .HasColumnName("gpu") + .HasColumnType("int(11)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("GpuId") + .HasName("idx_gpus_by_machine_gpus"); + + b.HasIndex("MachineId") + .HasName("idx_gpus_by_machine_machine"); + + b.ToTable("gpus_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("GpuId"); + + b.Property("OwnedMachineId"); + + b.HasKey("Id"); + + b.HasIndex("GpuId"); + + b.HasIndex("OwnedMachineId"); + + b.ToTable("GpusByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSet", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("instruction_set") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.HasKey("Id"); + + b.ToTable("instruction_sets"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtension", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Extension") + .IsRequired() + .HasColumnName("extension") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.HasKey("Id"); + + b.ToTable("instruction_set_extensions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtensionsByProcessor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("ProcessorId") + .HasColumnName("processor_id") + .HasColumnType("int(11)"); + + b.Property("ExtensionId") + .HasColumnName("extension_id") + .HasColumnType("int(11)"); + + b.HasKey("Id", "ProcessorId", "ExtensionId"); + + b.HasIndex("ExtensionId") + .HasName("idx_setextension_extension"); + + b.HasIndex("ProcessorId") + .HasName("idx_setextension_processor"); + + b.ToTable("instruction_set_extensions_by_processor"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Iso31661Numeric", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("smallint(3)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(64)") + .HasMaxLength(64); + + b.HasKey("Id"); + + b.HasIndex("Name") + .HasName("idx_name"); + + b.ToTable("iso3166_1_numeric"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Iso639", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(3)"); + + b.Property("Comment") + .HasColumnType("varchar(150)"); + + b.Property("Part1") + .HasColumnType("char(2)"); + + b.Property("Part2B") + .HasColumnType("char(3)"); + + b.Property("Part2T") + .HasColumnType("char(3)"); + + b.Property("ReferenceName") + .IsRequired() + .HasColumnName("Ref_Name") + .HasColumnType("varchar(150)"); + + b.Property("Scope") + .IsRequired() + .HasColumnType("char(1)"); + + b.Property("Type") + .IsRequired() + .HasColumnType("char(1)"); + + b.HasKey("Id"); + + b.HasIndex("Comment"); + + b.HasIndex("Part1"); + + b.HasIndex("Part2B"); + + b.HasIndex("Part2T"); + + b.HasIndex("ReferenceName"); + + b.HasIndex("Scope"); + + b.HasIndex("Type"); + + b.ToTable("ISO_639-3"); + }); + + modelBuilder.Entity("Cicm.Database.Models.License", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FsfApproved"); + + b.Property("Link") + .HasMaxLength(512); + + b.Property("Name") + .IsRequired(); + + b.Property("OsiApproved"); + + b.Property("SPDX"); + + b.Property("Text") + .HasColumnType("longtext") + .HasMaxLength(131072); + + b.HasKey("Id"); + + b.HasIndex("FsfApproved"); + + b.HasIndex("Name"); + + b.HasIndex("OsiApproved"); + + b.HasIndex("SPDX"); + + b.ToTable("Licenses"); + + b.HasData( + new + { + Id = 1, + FsfApproved = false, + Name = "Fair use", + OsiApproved = false + }, + new + { + Id = 2, + FsfApproved = false, + Name = "Advertisement use", + OsiApproved = false + }, + new + { + Id = 3, + FsfApproved = false, + Name = "All rights reserved", + OsiApproved = false + }, + new + { + Id = 4, + FsfApproved = false, + Link = "https://spdx.org/licenses/0BSD.html#licenseText", + Name = "BSD Zero Clause License", + OsiApproved = true, + SPDX = "0BSD" + }, + new + { + Id = 5, + FsfApproved = false, + Link = "https://spdx.org/licenses/AAL.html#licenseText", + Name = "Attribution Assurance License", + OsiApproved = true, + SPDX = "AAL" + }, + new + { + Id = 6, + FsfApproved = false, + Link = "https://spdx.org/licenses/Abstyles.html#licenseText", + Name = "Abstyles License", + OsiApproved = false, + SPDX = "Abstyles" + }, + new + { + Id = 7, + FsfApproved = false, + Link = "https://spdx.org/licenses/Adobe-2006.html#licenseText", + Name = "Adobe Systems Incorporated Source Code License Agreement", + OsiApproved = false, + SPDX = "Adobe-2006" + }, + new + { + Id = 8, + FsfApproved = false, + Link = "https://spdx.org/licenses/Adobe-Glyph.html#licenseText", + Name = "Adobe Glyph List License", + OsiApproved = false, + SPDX = "Adobe-Glyph" + }, + new + { + Id = 9, + FsfApproved = false, + Link = "https://spdx.org/licenses/ADSL.html#licenseText", + Name = "Amazon Digital Services License", + OsiApproved = false, + SPDX = "ADSL" + }, + new + { + Id = 10, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-1.1.html#licenseText", + Name = "Academic Free License v1.1", + OsiApproved = true, + SPDX = "AFL-1.1" + }, + new + { + Id = 11, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-1.2.html#licenseText", + Name = "Academic Free License v1.2", + OsiApproved = true, + SPDX = "AFL-1.2" + }, + new + { + Id = 12, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-2.0.html#licenseText", + Name = "Academic Free License v2.0", + OsiApproved = true, + SPDX = "AFL-2.0" + }, + new + { + Id = 13, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-2.1.html#licenseText", + Name = "Academic Free License v2.1", + OsiApproved = true, + SPDX = "AFL-2.1" + }, + new + { + Id = 14, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-3.0.html#licenseText", + Name = "Academic Free License v3.0", + OsiApproved = true, + SPDX = "AFL-3.0" + }, + new + { + Id = 15, + FsfApproved = false, + Link = "https://spdx.org/licenses/Afmparse.html#licenseText", + Name = "Afmparse License", + OsiApproved = false, + SPDX = "Afmparse" + }, + new + { + Id = 16, + FsfApproved = false, + Link = "https://spdx.org/licenses/AGPL-1.0-only.html#licenseText", + Name = "Affero General Public License v1.0 only", + OsiApproved = false, + SPDX = "AGPL-1.0-only" + }, + new + { + Id = 17, + FsfApproved = false, + Link = "https://spdx.org/licenses/AGPL-1.0-or-later.html#licenseText", + Name = "Affero General Public License v1.0 or later", + OsiApproved = false, + SPDX = "AGPL-1.0-or-later" + }, + new + { + Id = 18, + FsfApproved = true, + Link = "https://spdx.org/licenses/AGPL-3.0-only.html#licenseText", + Name = "GNU Affero General Public License v3.0 only", + OsiApproved = true, + SPDX = "AGPL-3.0-only" + }, + new + { + Id = 19, + FsfApproved = true, + Link = "https://spdx.org/licenses/AGPL-3.0-or-later.html#licenseText", + Name = "GNU Affero General Public License v3.0 or later", + OsiApproved = true, + SPDX = "AGPL-3.0-or-later" + }, + new + { + Id = 20, + FsfApproved = false, + Link = "https://spdx.org/licenses/Aladdin.html#licenseText", + Name = "Aladdin Free Public License", + OsiApproved = false, + SPDX = "Aladdin" + }, + new + { + Id = 21, + FsfApproved = false, + Link = "https://spdx.org/licenses/AMDPLPA.html#licenseText", + Name = "AMD's plpa_map.c License", + OsiApproved = false, + SPDX = "AMDPLPA" + }, + new + { + Id = 22, + FsfApproved = false, + Link = "https://spdx.org/licenses/AML.html#licenseText", + Name = "Apple MIT License", + OsiApproved = false, + SPDX = "AML" + }, + new + { + Id = 23, + FsfApproved = false, + Link = "https://spdx.org/licenses/AMPAS.html#licenseText", + Name = "Academy of Motion Picture Arts and Sciences BSD", + OsiApproved = false, + SPDX = "AMPAS" + }, + new + { + Id = 24, + FsfApproved = false, + Link = "https://spdx.org/licenses/ANTLR-PD.html#licenseText", + Name = "ANTLR Software Rights Notice", + OsiApproved = false, + SPDX = "ANTLR-PD" + }, + new + { + Id = 25, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-1.0.html#licenseText", + Name = "Apache License 1.0", + OsiApproved = false, + SPDX = "Apache-1.0" + }, + new + { + Id = 26, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-1.1.html#licenseText", + Name = "Apache License 1.1", + OsiApproved = true, + SPDX = "Apache-1.1" + }, + new + { + Id = 27, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-2.0.html#licenseText", + Name = "Apache License 2.0", + OsiApproved = true, + SPDX = "Apache-2.0" + }, + new + { + Id = 28, + FsfApproved = false, + Link = "https://spdx.org/licenses/APAFML.html#licenseText", + Name = "Adobe Postscript AFM License", + OsiApproved = false, + SPDX = "APAFML" + }, + new + { + Id = 29, + FsfApproved = false, + Link = "https://spdx.org/licenses/APL-1.0.html#licenseText", + Name = "Adaptive Public License 1.0", + OsiApproved = true, + SPDX = "APL-1.0" + }, + new + { + Id = 30, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.0.html#licenseText", + Name = "Apple Public Source License 1.0", + OsiApproved = true, + SPDX = "APSL-1.0" + }, + new + { + Id = 31, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.1.html#licenseText", + Name = "Apple Public Source License 1.1", + OsiApproved = true, + SPDX = "APSL-1.1" + }, + new + { + Id = 32, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.2.html#licenseText", + Name = "Apple Public Source License 1.2", + OsiApproved = true, + SPDX = "APSL-1.2" + }, + new + { + Id = 33, + FsfApproved = true, + Link = "https://spdx.org/licenses/APSL-2.0.html#licenseText", + Name = "Apple Public Source License 2.0", + OsiApproved = true, + SPDX = "APSL-2.0" + }, + new + { + Id = 34, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0.html#licenseText", + Name = "Artistic License 1.0", + OsiApproved = true, + SPDX = "Artistic-1.0" + }, + new + { + Id = 35, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0-cl8.html#licenseText", + Name = "Artistic License 1.0 w/clause 8", + OsiApproved = true, + SPDX = "Artistic-1.0-cl8" + }, + new + { + Id = 36, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0-Perl.html#licenseText", + Name = "Artistic License 1.0 (Perl)", + OsiApproved = true, + SPDX = "Artistic-1.0-Perl" + }, + new + { + Id = 37, + FsfApproved = true, + Link = "https://spdx.org/licenses/Artistic-2.0.html#licenseText", + Name = "Artistic License 2.0", + OsiApproved = true, + SPDX = "Artistic-2.0" + }, + new + { + Id = 38, + FsfApproved = false, + Link = "https://spdx.org/licenses/Bahyph.html#licenseText", + Name = "Bahyph License", + OsiApproved = false, + SPDX = "Bahyph" + }, + new + { + Id = 39, + FsfApproved = false, + Link = "https://spdx.org/licenses/Barr.html#licenseText", + Name = "Barr License", + OsiApproved = false, + SPDX = "Barr" + }, + new + { + Id = 40, + FsfApproved = false, + Link = "https://spdx.org/licenses/Beerware.html#licenseText", + Name = "Beerware License", + OsiApproved = false, + SPDX = "Beerware" + }, + new + { + Id = 41, + FsfApproved = false, + Link = "https://spdx.org/licenses/BitTorrent-1.0.html#licenseText", + Name = "BitTorrent Open Source License v1.0", + OsiApproved = false, + SPDX = "BitTorrent-1.0" + }, + new + { + Id = 42, + FsfApproved = true, + Link = "https://spdx.org/licenses/BitTorrent-1.1.html#licenseText", + Name = "BitTorrent Open Source License v1.1", + OsiApproved = false, + SPDX = "BitTorrent-1.1" + }, + new + { + Id = 43, + FsfApproved = false, + Link = "https://spdx.org/licenses/Borceux.html#licenseText", + Name = "Borceux license", + OsiApproved = false, + SPDX = "Borceux" + }, + new + { + Id = 44, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-1-Clause.html#licenseText", + Name = "BSD 1-Clause License", + OsiApproved = false, + SPDX = "BSD-1-Clause" + }, + new + { + Id = 45, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause.html#licenseText", + Name = "BSD 2-Clause \"Simplified\" License", + OsiApproved = true, + SPDX = "BSD-2-Clause" + }, + new + { + Id = 46, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-2-Clause-FreeBSD.html#licenseText", + Name = "BSD 2-Clause FreeBSD License", + OsiApproved = false, + SPDX = "BSD-2-Clause-FreeBSD" + }, + new + { + Id = 47, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause-NetBSD.html#licenseText", + Name = "BSD 2-Clause NetBSD License", + OsiApproved = false, + SPDX = "BSD-2-Clause-NetBSD" + }, + new + { + Id = 48, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause-Patent.html#licenseText", + Name = "BSD-2-Clause Plus Patent License", + OsiApproved = true, + SPDX = "BSD-2-Clause-Patent" + }, + new + { + Id = 49, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-3-Clause.html#licenseText", + Name = "BSD 3-Clause \"New\" or \"Revised\" License", + OsiApproved = true, + SPDX = "BSD-3-Clause" + }, + new + { + Id = 50, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-Attribution.html#licenseText", + Name = "BSD with attribution", + OsiApproved = false, + SPDX = "BSD-3-Clause-Attribution" + }, + new + { + Id = 51, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-3-Clause-Clear.html#licenseText", + Name = "BSD 3-Clause Clear License", + OsiApproved = false, + SPDX = "BSD-3-Clause-Clear" + }, + new + { + Id = 52, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-LBNL.html#licenseText", + Name = "Lawrence Berkeley National Labs BSD variant license", + OsiApproved = false, + SPDX = "BSD-3-Clause-LBNL" + }, + new + { + Id = 53, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.html#licenseText", + Name = "BSD 3-Clause No Nuclear License", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-License" + }, + new + { + Id = 54, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License-2014.html#licenseText", + Name = "BSD 3-Clause No Nuclear License 2014", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-License-2014" + }, + new + { + Id = 55, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.html#licenseText", + Name = "BSD 3-Clause No Nuclear Warranty", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-Warranty" + }, + new + { + Id = 56, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-4-Clause.html#licenseText", + Name = "BSD 4-Clause \"Original\" or \"Old\" License", + OsiApproved = false, + SPDX = "BSD-4-Clause" + }, + new + { + Id = 57, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-4-Clause-UC.html#licenseText", + Name = "BSD-4-Clause (University of California-Specific)", + OsiApproved = false, + SPDX = "BSD-4-Clause-UC" + }, + new + { + Id = 58, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-Protection.html#licenseText", + Name = "BSD Protection License", + OsiApproved = false, + SPDX = "BSD-Protection" + }, + new + { + Id = 59, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-Source-Code.html#licenseText", + Name = "BSD Source Code Attribution", + OsiApproved = false, + SPDX = "BSD-Source-Code" + }, + new + { + Id = 60, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSL-1.0.html#licenseText", + Name = "Boost Software License 1.0", + OsiApproved = true, + SPDX = "BSL-1.0" + }, + new + { + Id = 61, + FsfApproved = false, + Link = "https://spdx.org/licenses/bzip2-1.0.5.html#licenseText", + Name = "bzip2 and libbzip2 License v1.0.5", + OsiApproved = false, + SPDX = "bzip2-1.0.5" + }, + new + { + Id = 62, + FsfApproved = false, + Link = "https://spdx.org/licenses/bzip2-1.0.6.html#licenseText", + Name = "bzip2 and libbzip2 License v1.0.6", + OsiApproved = false, + SPDX = "bzip2-1.0.6" + }, + new + { + Id = 63, + FsfApproved = false, + Link = "https://spdx.org/licenses/Caldera.html#licenseText", + Name = "Caldera License", + OsiApproved = false, + SPDX = "Caldera" + }, + new + { + Id = 64, + FsfApproved = false, + Link = "https://spdx.org/licenses/CATOSL-1.1.html#licenseText", + Name = "Computer Associates Trusted Open Source License 1.1", + OsiApproved = true, + SPDX = "CATOSL-1.1" + }, + new + { + Id = 65, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-1.0.html#licenseText", + Name = "Creative Commons Attribution 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-1.0" + }, + new + { + Id = 66, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-2.0.html#licenseText", + Name = "Creative Commons Attribution 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-2.0" + }, + new + { + Id = 67, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-2.5.html#licenseText", + Name = "Creative Commons Attribution 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-2.5" + }, + new + { + Id = 68, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-3.0.html#licenseText", + Name = "Creative Commons Attribution 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-3.0" + }, + new + { + Id = 69, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC-BY-4.0.html#licenseText", + Name = "Creative Commons Attribution 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-4.0" + }, + new + { + Id = 70, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-1.0" + }, + new + { + Id = 71, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-2.0" + }, + new + { + Id = 72, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-2.5" + }, + new + { + Id = 73, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-3.0" + }, + new + { + Id = 74, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-4.0" + }, + new + { + Id = 75, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-1.0" + }, + new + { + Id = 76, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-2.0" + }, + new + { + Id = 77, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-2.5" + }, + new + { + Id = 78, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-3.0" + }, + new + { + Id = 79, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-4.0" + }, + new + { + Id = 80, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-1.0" + }, + new + { + Id = 81, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-2.0" + }, + new + { + Id = 82, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-2.5" + }, + new + { + Id = 83, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-3.0" + }, + new + { + Id = 84, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-4.0" + }, + new + { + Id = 85, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-1.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-1.0" + }, + new + { + Id = 86, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-2.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-2.0" + }, + new + { + Id = 87, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-2.5.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-2.5" + }, + new + { + Id = 88, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-3.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-ND-3.0" + }, + new + { + Id = 89, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-4.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-ND-4.0" + }, + new + { + Id = 90, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-1.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-1.0" + }, + new + { + Id = 91, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-2.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-2.0" + }, + new + { + Id = 92, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-2.5.html#licenseText", + Name = "Creative Commons Attribution Share Alike 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-2.5" + }, + new + { + Id = 93, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-3.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-SA-3.0" + }, + new + { + Id = 94, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC-BY-SA-4.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-SA-4.0" + }, + new + { + Id = 95, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC0-1.0.html#licenseText", + Name = "Creative Commons Zero v1.0 Universal", + OsiApproved = false, + SPDX = "CC0-1.0" + }, + new + { + Id = 96, + FsfApproved = true, + Link = "https://spdx.org/licenses/CDDL-1.0.html#licenseText", + Name = "Common Development and Distribution License 1.0", + OsiApproved = true, + SPDX = "CDDL-1.0" + }, + new + { + Id = 97, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDDL-1.1.html#licenseText", + Name = "Common Development and Distribution License 1.1", + OsiApproved = false, + SPDX = "CDDL-1.1" + }, + new + { + Id = 98, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDLA-Permissive-1.0.html#licenseText", + Name = "Community Data License Agreement Permissive 1.0", + OsiApproved = false, + SPDX = "CDLA-Permissive-1.0" + }, + new + { + Id = 99, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDLA-Sharing-1.0.html#licenseText", + Name = "Community Data License Agreement Sharing 1.0", + OsiApproved = false, + SPDX = "CDLA-Sharing-1.0" + }, + new + { + Id = 100, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-1.0.html#licenseText", + Name = "CeCILL Free Software License Agreement v1.0", + OsiApproved = false, + SPDX = "CECILL-1.0" + }, + new + { + Id = 101, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-1.1.html#licenseText", + Name = "CeCILL Free Software License Agreement v1.1", + OsiApproved = false, + SPDX = "CECILL-1.1" + }, + new + { + Id = 102, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-2.0.html#licenseText", + Name = "CeCILL Free Software License Agreement v2.0", + OsiApproved = false, + SPDX = "CECILL-2.0" + }, + new + { + Id = 103, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-2.1.html#licenseText", + Name = "CeCILL Free Software License Agreement v2.1", + OsiApproved = true, + SPDX = "CECILL-2.1" + }, + new + { + Id = 104, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-B.html#licenseText", + Name = "CeCILL-B Free Software License Agreement", + OsiApproved = false, + SPDX = "CECILL-B" + }, + new + { + Id = 105, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-C.html#licenseText", + Name = "CeCILL-C Free Software License Agreement", + OsiApproved = false, + SPDX = "CECILL-C" + }, + new + { + Id = 106, + FsfApproved = false, + Link = "https://spdx.org/licenses/CERN-OHL-1.1.html#licenseText", + Name = "CERN Open Hardware License v1.1", + OsiApproved = false, + SPDX = "CERN-OHL-1.1" + }, + new + { + Id = 107, + FsfApproved = false, + Link = "https://spdx.org/licenses/CERN-OHL-1.2.html#licenseText", + Name = "CERN Open Hardware Licence v1.2", + OsiApproved = false, + SPDX = "CERN-OHL-1.2" + }, + new + { + Id = 108, + FsfApproved = true, + Link = "https://spdx.org/licenses/ClArtistic.html#licenseText", + Name = "Clarified Artistic License", + OsiApproved = false, + SPDX = "ClArtistic" + }, + new + { + Id = 109, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Jython.html#licenseText", + Name = "CNRI Jython License", + OsiApproved = false, + SPDX = "CNRI-Jython" + }, + new + { + Id = 110, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Python.html#licenseText", + Name = "CNRI Python License", + OsiApproved = true, + SPDX = "CNRI-Python" + }, + new + { + Id = 111, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Python-GPL-Compatible.html#licenseText", + Name = "CNRI Python Open Source GPL Compatible License Agreement", + OsiApproved = false, + SPDX = "CNRI-Python-GPL-Compatible" + }, + new + { + Id = 112, + FsfApproved = true, + Link = "https://spdx.org/licenses/Condor-1.1.html#licenseText", + Name = "Condor Public License v1.1", + OsiApproved = false, + SPDX = "Condor-1.1" + }, + new + { + Id = 113, + FsfApproved = false, + Link = "https://spdx.org/licenses/copyleft-next-0.3.0.html#licenseText", + Name = "copyleft-next 0.3.0", + OsiApproved = false, + SPDX = "copyleft-next-0.3.0" + }, + new + { + Id = 114, + FsfApproved = false, + Link = "https://spdx.org/licenses/copyleft-next-0.3.1.html#licenseText", + Name = "copyleft-next 0.3.1", + OsiApproved = false, + SPDX = "copyleft-next-0.3.1" + }, + new + { + Id = 115, + FsfApproved = true, + Link = "https://spdx.org/licenses/CPAL-1.0.html#licenseText", + Name = "Common Public Attribution License 1.0", + OsiApproved = true, + SPDX = "CPAL-1.0" + }, + new + { + Id = 116, + FsfApproved = true, + Link = "https://spdx.org/licenses/CPL-1.0.html#licenseText", + Name = "Common Public License 1.0", + OsiApproved = true, + SPDX = "CPL-1.0" + }, + new + { + Id = 117, + FsfApproved = false, + Link = "https://spdx.org/licenses/CPOL-1.02.html#licenseText", + Name = "Code Project Open License 1.02", + OsiApproved = false, + SPDX = "CPOL-1.02" + }, + new + { + Id = 118, + FsfApproved = false, + Link = "https://spdx.org/licenses/Crossword.html#licenseText", + Name = "Crossword License", + OsiApproved = false, + SPDX = "Crossword" + }, + new + { + Id = 119, + FsfApproved = false, + Link = "https://spdx.org/licenses/CrystalStacker.html#licenseText", + Name = "CrystalStacker License", + OsiApproved = false, + SPDX = "CrystalStacker" + }, + new + { + Id = 120, + FsfApproved = false, + Link = "https://spdx.org/licenses/CUA-OPL-1.0.html#licenseText", + Name = "CUA Office Public License v1.0", + OsiApproved = true, + SPDX = "CUA-OPL-1.0" + }, + new + { + Id = 121, + FsfApproved = false, + Link = "https://spdx.org/licenses/Cube.html#licenseText", + Name = "Cube License", + OsiApproved = false, + SPDX = "Cube" + }, + new + { + Id = 122, + FsfApproved = false, + Link = "https://spdx.org/licenses/curl.html#licenseText", + Name = "curl License", + OsiApproved = false, + SPDX = "curl" + }, + new + { + Id = 123, + FsfApproved = false, + Link = "https://spdx.org/licenses/D-FSL-1.0.html#licenseText", + Name = "Deutsche Freie Software Lizenz", + OsiApproved = false, + SPDX = "D-FSL-1.0" + }, + new + { + Id = 124, + FsfApproved = false, + Link = "https://spdx.org/licenses/diffmark.html#licenseText", + Name = "diffmark license", + OsiApproved = false, + SPDX = "diffmark" + }, + new + { + Id = 125, + FsfApproved = false, + Link = "https://spdx.org/licenses/DOC.html#licenseText", + Name = "DOC License", + OsiApproved = false, + SPDX = "DOC" + }, + new + { + Id = 126, + FsfApproved = false, + Link = "https://spdx.org/licenses/Dotseqn.html#licenseText", + Name = "Dotseqn License", + OsiApproved = false, + SPDX = "Dotseqn" + }, + new + { + Id = 127, + FsfApproved = false, + Link = "https://spdx.org/licenses/DSDP.html#licenseText", + Name = "DSDP License", + OsiApproved = false, + SPDX = "DSDP" + }, + new + { + Id = 128, + FsfApproved = false, + Link = "https://spdx.org/licenses/dvipdfm.html#licenseText", + Name = "dvipdfm License", + OsiApproved = false, + SPDX = "dvipdfm" + }, + new + { + Id = 129, + FsfApproved = false, + Link = "https://spdx.org/licenses/ECL-1.0.html#licenseText", + Name = "Educational Community License v1.0", + OsiApproved = true, + SPDX = "ECL-1.0" + }, + new + { + Id = 130, + FsfApproved = true, + Link = "https://spdx.org/licenses/ECL-2.0.html#licenseText", + Name = "Educational Community License v2.0", + OsiApproved = true, + SPDX = "ECL-2.0" + }, + new + { + Id = 131, + FsfApproved = false, + Link = "https://spdx.org/licenses/EFL-1.0.html#licenseText", + Name = "Eiffel Forum License v1.0", + OsiApproved = true, + SPDX = "EFL-1.0" + }, + new + { + Id = 132, + FsfApproved = true, + Link = "https://spdx.org/licenses/EFL-2.0.html#licenseText", + Name = "Eiffel Forum License v2.0", + OsiApproved = true, + SPDX = "EFL-2.0" + }, + new + { + Id = 133, + FsfApproved = false, + Link = "https://spdx.org/licenses/eGenix.html#licenseText", + Name = "eGenix.com Public License 1.1.0", + OsiApproved = false, + SPDX = "eGenix" + }, + new + { + Id = 134, + FsfApproved = false, + Link = "https://spdx.org/licenses/Entessa.html#licenseText", + Name = "Entessa Public License v1.0", + OsiApproved = true, + SPDX = "Entessa" + }, + new + { + Id = 135, + FsfApproved = true, + Link = "https://spdx.org/licenses/EPL-1.0.html#licenseText", + Name = "Eclipse Public License 1.0", + OsiApproved = true, + SPDX = "EPL-1.0" + }, + new + { + Id = 136, + FsfApproved = true, + Link = "https://spdx.org/licenses/EPL-2.0.html#licenseText", + Name = "Eclipse Public License 2.0", + OsiApproved = true, + SPDX = "EPL-2.0" + }, + new + { + Id = 137, + FsfApproved = false, + Link = "https://spdx.org/licenses/ErlPL-1.1.html#licenseText", + Name = "Erlang Public License v1.1", + OsiApproved = false, + SPDX = "ErlPL-1.1" + }, + new + { + Id = 138, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUDatagrid.html#licenseText", + Name = "EU DataGrid Software License", + OsiApproved = true, + SPDX = "EUDatagrid" + }, + new + { + Id = 139, + FsfApproved = false, + Link = "https://spdx.org/licenses/EUPL-1.0.html#licenseText", + Name = "European Union Public License 1.0", + OsiApproved = false, + SPDX = "EUPL-1.0" + }, + new + { + Id = 140, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUPL-1.1.html#licenseText", + Name = "European Union Public License 1.1", + OsiApproved = true, + SPDX = "EUPL-1.1" + }, + new + { + Id = 141, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUPL-1.2.html#licenseText", + Name = "European Union Public License 1.2", + OsiApproved = true, + SPDX = "EUPL-1.2" + }, + new + { + Id = 142, + FsfApproved = false, + Link = "https://spdx.org/licenses/Eurosym.html#licenseText", + Name = "Eurosym License", + OsiApproved = false, + SPDX = "Eurosym" + }, + new + { + Id = 143, + FsfApproved = false, + Link = "https://spdx.org/licenses/Fair.html#licenseText", + Name = "Fair License", + OsiApproved = true, + SPDX = "Fair" + }, + new + { + Id = 144, + FsfApproved = false, + Link = "https://spdx.org/licenses/Frameworx-1.0.html#licenseText", + Name = "Frameworx Open License 1.0", + OsiApproved = true, + SPDX = "Frameworx-1.0" + }, + new + { + Id = 145, + FsfApproved = false, + Link = "https://spdx.org/licenses/FreeImage.html#licenseText", + Name = "FreeImage Public License v1.0", + OsiApproved = false, + SPDX = "FreeImage" + }, + new + { + Id = 146, + FsfApproved = true, + Link = "https://spdx.org/licenses/FSFAP.html#licenseText", + Name = "FSF All Permissive License", + OsiApproved = false, + SPDX = "FSFAP" + }, + new + { + Id = 147, + FsfApproved = false, + Link = "https://spdx.org/licenses/FSFUL.html#licenseText", + Name = "FSF Unlimited License", + OsiApproved = false, + SPDX = "FSFUL" + }, + new + { + Id = 148, + FsfApproved = false, + Link = "https://spdx.org/licenses/FSFULLR.html#licenseText", + Name = "FSF Unlimited License (with License Retention)", + OsiApproved = false, + SPDX = "FSFULLR" + }, + new + { + Id = 149, + FsfApproved = true, + Link = "https://spdx.org/licenses/FTL.html#licenseText", + Name = "Freetype Project License", + OsiApproved = false, + SPDX = "FTL" + }, + new + { + Id = 150, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.1-only.html#licenseText", + Name = "GNU Free Documentation License v1.1 only", + OsiApproved = false, + SPDX = "GFDL-1.1-only" + }, + new + { + Id = 151, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.1-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.1 or later", + OsiApproved = false, + SPDX = "GFDL-1.1-or-later" + }, + new + { + Id = 152, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.2-only.html#licenseText", + Name = "GNU Free Documentation License v1.2 only", + OsiApproved = false, + SPDX = "GFDL-1.2-only" + }, + new + { + Id = 153, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.2-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.2 or later", + OsiApproved = false, + SPDX = "GFDL-1.2-or-later" + }, + new + { + Id = 154, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.3-only.html#licenseText", + Name = "GNU Free Documentation License v1.3 only", + OsiApproved = false, + SPDX = "GFDL-1.3-only" + }, + new + { + Id = 155, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.3-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.3 or later", + OsiApproved = false, + SPDX = "GFDL-1.3-or-later" + }, + new + { + Id = 156, + FsfApproved = false, + Link = "https://spdx.org/licenses/Giftware.html#licenseText", + Name = "Giftware License", + OsiApproved = false, + SPDX = "Giftware" + }, + new + { + Id = 157, + FsfApproved = false, + Link = "https://spdx.org/licenses/GL2PS.html#licenseText", + Name = "GL2PS License", + OsiApproved = false, + SPDX = "GL2PS" + }, + new + { + Id = 158, + FsfApproved = false, + Link = "https://spdx.org/licenses/Glide.html#licenseText", + Name = "3dfx Glide License", + OsiApproved = false, + SPDX = "Glide" + }, + new + { + Id = 159, + FsfApproved = false, + Link = "https://spdx.org/licenses/Glulxe.html#licenseText", + Name = "Glulxe License", + OsiApproved = false, + SPDX = "Glulxe" + }, + new + { + Id = 160, + FsfApproved = true, + Link = "https://spdx.org/licenses/gnuplot.html#licenseText", + Name = "gnuplot License", + OsiApproved = false, + SPDX = "gnuplot" + }, + new + { + Id = 161, + FsfApproved = false, + Link = "https://spdx.org/licenses/GPL-1.0-only.html#licenseText", + Name = "GNU General Public License v1.0 only", + OsiApproved = false, + SPDX = "GPL-1.0-only" + }, + new + { + Id = 162, + FsfApproved = false, + Link = "https://spdx.org/licenses/GPL-1.0-or-later.html#licenseText", + Name = "GNU General Public License v1.0 or later", + OsiApproved = false, + SPDX = "GPL-1.0-or-later" + }, + new + { + Id = 163, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-2.0-only.html#licenseText", + Name = "GNU General Public License v2.0 only", + OsiApproved = true, + SPDX = "GPL-2.0-only" + }, + new + { + Id = 164, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-2.0-or-later.html#licenseText", + Name = "GNU General Public License v2.0 or later", + OsiApproved = true, + SPDX = "GPL-2.0-or-later" + }, + new + { + Id = 165, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-3.0-only.html#licenseText", + Name = "GNU General Public License v3.0 only", + OsiApproved = true, + SPDX = "GPL-3.0-only" + }, + new + { + Id = 166, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-3.0-or-later.html#licenseText", + Name = "GNU General Public License v3.0 or later", + OsiApproved = true, + SPDX = "GPL-3.0-or-later" + }, + new + { + Id = 167, + FsfApproved = false, + Link = "https://spdx.org/licenses/gSOAP-1.3b.html#licenseText", + Name = "gSOAP Public License v1.3b", + OsiApproved = false, + SPDX = "gSOAP-1.3b" + }, + new + { + Id = 168, + FsfApproved = false, + Link = "https://spdx.org/licenses/HaskellReport.html#licenseText", + Name = "Haskell Language Report License", + OsiApproved = false, + SPDX = "HaskellReport" + }, + new + { + Id = 169, + FsfApproved = true, + Link = "https://spdx.org/licenses/HPND.html#licenseText", + Name = "Historical Permission Notice and Disclaimer", + OsiApproved = true, + SPDX = "HPND" + }, + new + { + Id = 170, + FsfApproved = false, + Link = "https://spdx.org/licenses/HPND-sell-variant.html#licenseText", + Name = "Historical Permission Notice and Disclaimer - sell variant", + OsiApproved = false, + SPDX = "HPND-sell-variant" + }, + new + { + Id = 171, + FsfApproved = false, + Link = "https://spdx.org/licenses/IBM-pibs.html#licenseText", + Name = "IBM PowerPC Initialization and Boot Software", + OsiApproved = false, + SPDX = "IBM-pibs" + }, + new + { + Id = 172, + FsfApproved = false, + Link = "https://spdx.org/licenses/ICU.html#licenseText", + Name = "ICU License", + OsiApproved = false, + SPDX = "ICU" + }, + new + { + Id = 173, + FsfApproved = true, + Link = "https://spdx.org/licenses/IJG.html#licenseText", + Name = "Independent JPEG Group License", + OsiApproved = false, + SPDX = "IJG" + }, + new + { + Id = 174, + FsfApproved = false, + Link = "https://spdx.org/licenses/ImageMagick.html#licenseText", + Name = "ImageMagick License", + OsiApproved = false, + SPDX = "ImageMagick" + }, + new + { + Id = 175, + FsfApproved = true, + Link = "https://spdx.org/licenses/iMatix.html#licenseText", + Name = "iMatix Standard Function Library Agreement", + OsiApproved = false, + SPDX = "iMatix" + }, + new + { + Id = 176, + FsfApproved = true, + Link = "https://spdx.org/licenses/Imlib2.html#licenseText", + Name = "Imlib2 License", + OsiApproved = false, + SPDX = "Imlib2" + }, + new + { + Id = 177, + FsfApproved = false, + Link = "https://spdx.org/licenses/Info-ZIP.html#licenseText", + Name = "Info-ZIP License", + OsiApproved = false, + SPDX = "Info-ZIP" + }, + new + { + Id = 178, + FsfApproved = true, + Link = "https://spdx.org/licenses/Intel.html#licenseText", + Name = "Intel Open Source License", + OsiApproved = true, + SPDX = "Intel" + }, + new + { + Id = 179, + FsfApproved = false, + Link = "https://spdx.org/licenses/Intel-ACPI.html#licenseText", + Name = "Intel ACPI Software License Agreement", + OsiApproved = false, + SPDX = "Intel-ACPI" + }, + new + { + Id = 180, + FsfApproved = false, + Link = "https://spdx.org/licenses/Interbase-1.0.html#licenseText", + Name = "Interbase Public License v1.0", + OsiApproved = false, + SPDX = "Interbase-1.0" + }, + new + { + Id = 181, + FsfApproved = true, + Link = "https://spdx.org/licenses/IPA.html#licenseText", + Name = "IPA Font License", + OsiApproved = true, + SPDX = "IPA" + }, + new + { + Id = 182, + FsfApproved = true, + Link = "https://spdx.org/licenses/IPL-1.0.html#licenseText", + Name = "IBM Public License v1.0", + OsiApproved = true, + SPDX = "IPL-1.0" + }, + new + { + Id = 183, + FsfApproved = true, + Link = "https://spdx.org/licenses/ISC.html#licenseText", + Name = "ISC License", + OsiApproved = true, + SPDX = "ISC" + }, + new + { + Id = 184, + FsfApproved = false, + Link = "https://spdx.org/licenses/JasPer-2.0.html#licenseText", + Name = "JasPer License", + OsiApproved = false, + SPDX = "JasPer-2.0" + }, + new + { + Id = 185, + FsfApproved = false, + Link = "https://spdx.org/licenses/JPNIC.html#licenseText", + Name = "Japan Network Information Center License", + OsiApproved = false, + SPDX = "JPNIC" + }, + new + { + Id = 186, + FsfApproved = false, + Link = "https://spdx.org/licenses/JSON.html#licenseText", + Name = "JSON License", + OsiApproved = false, + SPDX = "JSON" + }, + new + { + Id = 187, + FsfApproved = false, + Link = "https://spdx.org/licenses/LAL-1.2.html#licenseText", + Name = "Licence Art Libre 1.2", + OsiApproved = false, + SPDX = "LAL-1.2" + }, + new + { + Id = 188, + FsfApproved = false, + Link = "https://spdx.org/licenses/LAL-1.3.html#licenseText", + Name = "Licence Art Libre 1.3", + OsiApproved = false, + SPDX = "LAL-1.3" + }, + new + { + Id = 189, + FsfApproved = false, + Link = "https://spdx.org/licenses/Latex2e.html#licenseText", + Name = "Latex2e License", + OsiApproved = false, + SPDX = "Latex2e" + }, + new + { + Id = 190, + FsfApproved = false, + Link = "https://spdx.org/licenses/Leptonica.html#licenseText", + Name = "Leptonica License", + OsiApproved = false, + SPDX = "Leptonica" + }, + new + { + Id = 191, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPL-2.0-only.html#licenseText", + Name = "GNU Library General Public License v2 only", + OsiApproved = true, + SPDX = "LGPL-2.0-only" + }, + new + { + Id = 192, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPL-2.0-or-later.html#licenseText", + Name = "GNU Library General Public License v2 or later", + OsiApproved = true, + SPDX = "LGPL-2.0-or-later" + }, + new + { + Id = 193, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-2.1-only.html#licenseText", + Name = "GNU Lesser General Public License v2.1 only", + OsiApproved = true, + SPDX = "LGPL-2.1-only" + }, + new + { + Id = 194, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-2.1-or-later.html#licenseText", + Name = "GNU Lesser General Public License v2.1 or later", + OsiApproved = true, + SPDX = "LGPL-2.1-or-later" + }, + new + { + Id = 195, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-3.0-only.html#licenseText", + Name = "GNU Lesser General Public License v3.0 only", + OsiApproved = true, + SPDX = "LGPL-3.0-only" + }, + new + { + Id = 196, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-3.0-or-later.html#licenseText", + Name = "GNU Lesser General Public License v3.0 or later", + OsiApproved = true, + SPDX = "LGPL-3.0-or-later" + }, + new + { + Id = 197, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPLLR.html#licenseText", + Name = "Lesser General Public License For Linguistic Resources", + OsiApproved = false, + SPDX = "LGPLLR" + }, + new + { + Id = 198, + FsfApproved = false, + Link = "https://spdx.org/licenses/Libpng.html#licenseText", + Name = "libpng License", + OsiApproved = false, + SPDX = "Libpng" + }, + new + { + Id = 199, + FsfApproved = false, + Link = "https://spdx.org/licenses/libpng-2.0.html#licenseText", + Name = "PNG Reference Library version 2", + OsiApproved = false, + SPDX = "libpng-2.0" + }, + new + { + Id = 200, + FsfApproved = false, + Link = "https://spdx.org/licenses/libtiff.html#licenseText", + Name = "libtiff License", + OsiApproved = false, + SPDX = "libtiff" + }, + new + { + Id = 201, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-P-1.1.html#licenseText", + Name = "Licence Libre du Québec – Permissive version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-P-1.1" + }, + new + { + Id = 202, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-R-1.1.html#licenseText", + Name = "Licence Libre du Québec – Réciprocité version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-R-1.1" + }, + new + { + Id = 203, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-Rplus-1.1.html#licenseText", + Name = "Licence Libre du Québec – Réciprocité forte version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-Rplus-1.1" + }, + new + { + Id = 204, + FsfApproved = false, + Link = "https://spdx.org/licenses/Linux-OpenIB.html#licenseText", + Name = "Linux Kernel Variant of OpenIB.org license", + OsiApproved = false, + SPDX = "Linux-OpenIB" + }, + new + { + Id = 205, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPL-1.0.html#licenseText", + Name = "Lucent Public License Version 1.0", + OsiApproved = true, + SPDX = "LPL-1.0" + }, + new + { + Id = 206, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPL-1.02.html#licenseText", + Name = "Lucent Public License v1.02", + OsiApproved = true, + SPDX = "LPL-1.02" + }, + new + { + Id = 207, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.0.html#licenseText", + Name = "LaTeX Project Public License v1.0", + OsiApproved = false, + SPDX = "LPPL-1.0" + }, + new + { + Id = 208, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.1.html#licenseText", + Name = "LaTeX Project Public License v1.1", + OsiApproved = false, + SPDX = "LPPL-1.1" + }, + new + { + Id = 209, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPPL-1.2.html#licenseText", + Name = "LaTeX Project Public License v1.2", + OsiApproved = false, + SPDX = "LPPL-1.2" + }, + new + { + Id = 210, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPPL-1.3a.html#licenseText", + Name = "LaTeX Project Public License v1.3a", + OsiApproved = false, + SPDX = "LPPL-1.3a" + }, + new + { + Id = 211, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.3c.html#licenseText", + Name = "LaTeX Project Public License v1.3c", + OsiApproved = true, + SPDX = "LPPL-1.3c" + }, + new + { + Id = 212, + FsfApproved = false, + Link = "https://spdx.org/licenses/MakeIndex.html#licenseText", + Name = "MakeIndex License", + OsiApproved = false, + SPDX = "MakeIndex" + }, + new + { + Id = 213, + FsfApproved = false, + Link = "https://spdx.org/licenses/MirOS.html#licenseText", + Name = "MirOS License", + OsiApproved = true, + SPDX = "MirOS" + }, + new + { + Id = 214, + FsfApproved = true, + Link = "https://spdx.org/licenses/MIT.html#licenseText", + Name = "MIT License", + OsiApproved = true, + SPDX = "MIT" + }, + new + { + Id = 215, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-0.html#licenseText", + Name = "MIT No Attribution", + OsiApproved = true, + SPDX = "MIT-0" + }, + new + { + Id = 216, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-advertising.html#licenseText", + Name = "Enlightenment License (e16)", + OsiApproved = false, + SPDX = "MIT-advertising" + }, + new + { + Id = 217, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-CMU.html#licenseText", + Name = "CMU License", + OsiApproved = false, + SPDX = "MIT-CMU" + }, + new + { + Id = 218, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-enna.html#licenseText", + Name = "enna License", + OsiApproved = false, + SPDX = "MIT-enna" + }, + new + { + Id = 219, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-feh.html#licenseText", + Name = "feh License", + OsiApproved = false, + SPDX = "MIT-feh" + }, + new + { + Id = 220, + FsfApproved = false, + Link = "https://spdx.org/licenses/MITNFA.html#licenseText", + Name = "MIT +no-false-attribs license", + OsiApproved = false, + SPDX = "MITNFA" + }, + new + { + Id = 221, + FsfApproved = false, + Link = "https://spdx.org/licenses/Motosoto.html#licenseText", + Name = "Motosoto License", + OsiApproved = true, + SPDX = "Motosoto" + }, + new + { + Id = 222, + FsfApproved = false, + Link = "https://spdx.org/licenses/mpich2.html#licenseText", + Name = "mpich2 License", + OsiApproved = false, + SPDX = "mpich2" + }, + new + { + Id = 223, + FsfApproved = false, + Link = "https://spdx.org/licenses/MPL-1.0.html#licenseText", + Name = "Mozilla Public License 1.0", + OsiApproved = true, + SPDX = "MPL-1.0" + }, + new + { + Id = 224, + FsfApproved = true, + Link = "https://spdx.org/licenses/MPL-1.1.html#licenseText", + Name = "Mozilla Public License 1.1", + OsiApproved = true, + SPDX = "MPL-1.1" + }, + new + { + Id = 225, + FsfApproved = true, + Link = "https://spdx.org/licenses/MPL-2.0.html#licenseText", + Name = "Mozilla Public License 2.0", + OsiApproved = true, + SPDX = "MPL-2.0" + }, + new + { + Id = 226, + FsfApproved = false, + Link = "https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.html#licenseText", + Name = "Mozilla Public License 2.0 (no copyleft exception)", + OsiApproved = true, + SPDX = "MPL-2.0-no-copyleft-exception" + }, + new + { + Id = 227, + FsfApproved = true, + Link = "https://spdx.org/licenses/MS-PL.html#licenseText", + Name = "Microsoft Public License", + OsiApproved = true, + SPDX = "MS-PL" + }, + new + { + Id = 228, + FsfApproved = true, + Link = "https://spdx.org/licenses/MS-RL.html#licenseText", + Name = "Microsoft Reciprocal License", + OsiApproved = true, + SPDX = "MS-RL" + }, + new + { + Id = 229, + FsfApproved = false, + Link = "https://spdx.org/licenses/MTLL.html#licenseText", + Name = "Matrix Template Library License", + OsiApproved = false, + SPDX = "MTLL" + }, + new + { + Id = 230, + FsfApproved = false, + Link = "https://spdx.org/licenses/Multics.html#licenseText", + Name = "Multics License", + OsiApproved = true, + SPDX = "Multics" + }, + new + { + Id = 231, + FsfApproved = false, + Link = "https://spdx.org/licenses/Mup.html#licenseText", + Name = "Mup License", + OsiApproved = false, + SPDX = "Mup" + }, + new + { + Id = 232, + FsfApproved = false, + Link = "https://spdx.org/licenses/NASA-1.3.html#licenseText", + Name = "NASA Open Source Agreement 1.3", + OsiApproved = true, + SPDX = "NASA-1.3" + }, + new + { + Id = 233, + FsfApproved = false, + Link = "https://spdx.org/licenses/Naumen.html#licenseText", + Name = "Naumen Public License", + OsiApproved = true, + SPDX = "Naumen" + }, + new + { + Id = 234, + FsfApproved = false, + Link = "https://spdx.org/licenses/NBPL-1.0.html#licenseText", + Name = "Net Boolean Public License v1", + OsiApproved = false, + SPDX = "NBPL-1.0" + }, + new + { + Id = 235, + FsfApproved = true, + Link = "https://spdx.org/licenses/NCSA.html#licenseText", + Name = "University of Illinois/NCSA Open Source License", + OsiApproved = true, + SPDX = "NCSA" + }, + new + { + Id = 236, + FsfApproved = false, + Link = "https://spdx.org/licenses/Net-SNMP.html#licenseText", + Name = "Net-SNMP License", + OsiApproved = false, + SPDX = "Net-SNMP" + }, + new + { + Id = 237, + FsfApproved = false, + Link = "https://spdx.org/licenses/NetCDF.html#licenseText", + Name = "NetCDF license", + OsiApproved = false, + SPDX = "NetCDF" + }, + new + { + Id = 238, + FsfApproved = false, + Link = "https://spdx.org/licenses/Newsletr.html#licenseText", + Name = "Newsletr License", + OsiApproved = false, + SPDX = "Newsletr" + }, + new + { + Id = 239, + FsfApproved = false, + Link = "https://spdx.org/licenses/NGPL.html#licenseText", + Name = "Nethack General Public License", + OsiApproved = true, + SPDX = "NGPL" + }, + new + { + Id = 240, + FsfApproved = false, + Link = "https://spdx.org/licenses/NLOD-1.0.html#licenseText", + Name = "Norwegian Licence for Open Government Data", + OsiApproved = false, + SPDX = "NLOD-1.0" + }, + new + { + Id = 241, + FsfApproved = false, + Link = "https://spdx.org/licenses/NLPL.html#licenseText", + Name = "No Limit Public License", + OsiApproved = false, + SPDX = "NLPL" + }, + new + { + Id = 242, + FsfApproved = true, + Link = "https://spdx.org/licenses/Nokia.html#licenseText", + Name = "Nokia Open Source License", + OsiApproved = true, + SPDX = "Nokia" + }, + new + { + Id = 243, + FsfApproved = true, + Link = "https://spdx.org/licenses/NOSL.html#licenseText", + Name = "Netizen Open Source License", + OsiApproved = false, + SPDX = "NOSL" + }, + new + { + Id = 244, + FsfApproved = false, + Link = "https://spdx.org/licenses/Noweb.html#licenseText", + Name = "Noweb License", + OsiApproved = false, + SPDX = "Noweb" + }, + new + { + Id = 245, + FsfApproved = true, + Link = "https://spdx.org/licenses/NPL-1.0.html#licenseText", + Name = "Netscape Public License v1.0", + OsiApproved = false, + SPDX = "NPL-1.0" + }, + new + { + Id = 246, + FsfApproved = true, + Link = "https://spdx.org/licenses/NPL-1.1.html#licenseText", + Name = "Netscape Public License v1.1", + OsiApproved = false, + SPDX = "NPL-1.1" + }, + new + { + Id = 247, + FsfApproved = false, + Link = "https://spdx.org/licenses/NPOSL-3.0.html#licenseText", + Name = "Non-Profit Open Software License 3.0", + OsiApproved = true, + SPDX = "NPOSL-3.0" + }, + new + { + Id = 248, + FsfApproved = false, + Link = "https://spdx.org/licenses/NRL.html#licenseText", + Name = "NRL License", + OsiApproved = false, + SPDX = "NRL" + }, + new + { + Id = 249, + FsfApproved = false, + Link = "https://spdx.org/licenses/NTP.html#licenseText", + Name = "NTP License", + OsiApproved = true, + SPDX = "NTP" + }, + new + { + Id = 250, + FsfApproved = false, + Link = "https://spdx.org/licenses/OCCT-PL.html#licenseText", + Name = "Open CASCADE Technology Public License", + OsiApproved = false, + SPDX = "OCCT-PL" + }, + new + { + Id = 251, + FsfApproved = false, + Link = "https://spdx.org/licenses/OCLC-2.0.html#licenseText", + Name = "OCLC Research Public License 2.0", + OsiApproved = true, + SPDX = "OCLC-2.0" + }, + new + { + Id = 252, + FsfApproved = true, + Link = "https://spdx.org/licenses/ODbL-1.0.html#licenseText", + Name = "ODC Open Database License v1.0", + OsiApproved = false, + SPDX = "ODbL-1.0" + }, + new + { + Id = 253, + FsfApproved = false, + Link = "https://spdx.org/licenses/ODC-By-1.0.html#licenseText", + Name = "Open Data Commons Attribution License v1.0", + OsiApproved = false, + SPDX = "ODC-By-1.0" + }, + new + { + Id = 254, + FsfApproved = true, + Link = "https://spdx.org/licenses/OFL-1.0.html#licenseText", + Name = "SIL Open Font License 1.0", + OsiApproved = false, + SPDX = "OFL-1.0" + }, + new + { + Id = 255, + FsfApproved = true, + Link = "https://spdx.org/licenses/OFL-1.1.html#licenseText", + Name = "SIL Open Font License 1.1", + OsiApproved = true, + SPDX = "OFL-1.1" + }, + new + { + Id = 256, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-1.0.html#licenseText", + Name = "Open Government Licence v1.0", + OsiApproved = false, + SPDX = "OGL-UK-1.0" + }, + new + { + Id = 257, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-2.0.html#licenseText", + Name = "Open Government Licence v2.0", + OsiApproved = false, + SPDX = "OGL-UK-2.0" + }, + new + { + Id = 258, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-3.0.html#licenseText", + Name = "Open Government Licence v3.0", + OsiApproved = false, + SPDX = "OGL-UK-3.0" + }, + new + { + Id = 259, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGTSL.html#licenseText", + Name = "Open Group Test Suite License", + OsiApproved = true, + SPDX = "OGTSL" + }, + new + { + Id = 260, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.1.html#licenseText", + Name = "Open LDAP Public License v1.1", + OsiApproved = false, + SPDX = "OLDAP-1.1" + }, + new + { + Id = 261, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.2.html#licenseText", + Name = "Open LDAP Public License v1.2", + OsiApproved = false, + SPDX = "OLDAP-1.2" + }, + new + { + Id = 262, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.3.html#licenseText", + Name = "Open LDAP Public License v1.3", + OsiApproved = false, + SPDX = "OLDAP-1.3" + }, + new + { + Id = 263, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.4.html#licenseText", + Name = "Open LDAP Public License v1.4", + OsiApproved = false, + SPDX = "OLDAP-1.4" + }, + new + { + Id = 264, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.0.html#licenseText", + Name = "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)", + OsiApproved = false, + SPDX = "OLDAP-2.0" + }, + new + { + Id = 265, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.0.1.html#licenseText", + Name = "Open LDAP Public License v2.0.1", + OsiApproved = false, + SPDX = "OLDAP-2.0.1" + }, + new + { + Id = 266, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.1.html#licenseText", + Name = "Open LDAP Public License v2.1", + OsiApproved = false, + SPDX = "OLDAP-2.1" + }, + new + { + Id = 267, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.html#licenseText", + Name = "Open LDAP Public License v2.2", + OsiApproved = false, + SPDX = "OLDAP-2.2" + }, + new + { + Id = 268, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.1.html#licenseText", + Name = "Open LDAP Public License v2.2.1", + OsiApproved = false, + SPDX = "OLDAP-2.2.1" + }, + new + { + Id = 269, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.2.html#licenseText", + Name = "Open LDAP Public License 2.2.2", + OsiApproved = false, + SPDX = "OLDAP-2.2.2" + }, + new + { + Id = 270, + FsfApproved = true, + Link = "https://spdx.org/licenses/OLDAP-2.3.html#licenseText", + Name = "Open LDAP Public License v2.3", + OsiApproved = false, + SPDX = "OLDAP-2.3" + }, + new + { + Id = 271, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.4.html#licenseText", + Name = "Open LDAP Public License v2.4", + OsiApproved = false, + SPDX = "OLDAP-2.4" + }, + new + { + Id = 272, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.5.html#licenseText", + Name = "Open LDAP Public License v2.5", + OsiApproved = false, + SPDX = "OLDAP-2.5" + }, + new + { + Id = 273, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.6.html#licenseText", + Name = "Open LDAP Public License v2.6", + OsiApproved = false, + SPDX = "OLDAP-2.6" + }, + new + { + Id = 274, + FsfApproved = true, + Link = "https://spdx.org/licenses/OLDAP-2.7.html#licenseText", + Name = "Open LDAP Public License v2.7", + OsiApproved = false, + SPDX = "OLDAP-2.7" + }, + new + { + Id = 275, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.8.html#licenseText", + Name = "Open LDAP Public License v2.8", + OsiApproved = false, + SPDX = "OLDAP-2.8" + }, + new + { + Id = 276, + FsfApproved = false, + Link = "https://spdx.org/licenses/OML.html#licenseText", + Name = "Open Market License", + OsiApproved = false, + SPDX = "OML" + }, + new + { + Id = 277, + FsfApproved = true, + Link = "https://spdx.org/licenses/OpenSSL.html#licenseText", + Name = "OpenSSL License", + OsiApproved = false, + SPDX = "OpenSSL" + }, + new + { + Id = 278, + FsfApproved = false, + Link = "https://spdx.org/licenses/OPL-1.0.html#licenseText", + Name = "Open Public License v1.0", + OsiApproved = false, + SPDX = "OPL-1.0" + }, + new + { + Id = 279, + FsfApproved = false, + Link = "https://spdx.org/licenses/OSET-PL-2.1.html#licenseText", + Name = "OSET Public License version 2.1", + OsiApproved = true, + SPDX = "OSET-PL-2.1" + }, + new + { + Id = 280, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-1.0.html#licenseText", + Name = "Open Software License 1.0", + OsiApproved = true, + SPDX = "OSL-1.0" + }, + new + { + Id = 281, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-1.1.html#licenseText", + Name = "Open Software License 1.1", + OsiApproved = false, + SPDX = "OSL-1.1" + }, + new + { + Id = 282, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-2.0.html#licenseText", + Name = "Open Software License 2.0", + OsiApproved = true, + SPDX = "OSL-2.0" + }, + new + { + Id = 283, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-2.1.html#licenseText", + Name = "Open Software License 2.1", + OsiApproved = true, + SPDX = "OSL-2.1" + }, + new + { + Id = 284, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-3.0.html#licenseText", + Name = "Open Software License 3.0", + OsiApproved = true, + SPDX = "OSL-3.0" + }, + new + { + Id = 285, + FsfApproved = false, + Link = "https://spdx.org/licenses/PDDL-1.0.html#licenseText", + Name = "ODC Public Domain Dedication & License 1.0", + OsiApproved = false, + SPDX = "PDDL-1.0" + }, + new + { + Id = 286, + FsfApproved = false, + Link = "https://spdx.org/licenses/PHP-3.0.html#licenseText", + Name = "PHP License v3.0", + OsiApproved = true, + SPDX = "PHP-3.0" + }, + new + { + Id = 287, + FsfApproved = true, + Link = "https://spdx.org/licenses/PHP-3.01.html#licenseText", + Name = "PHP License v3.01", + OsiApproved = false, + SPDX = "PHP-3.01" + }, + new + { + Id = 288, + FsfApproved = false, + Link = "https://spdx.org/licenses/Plexus.html#licenseText", + Name = "Plexus Classworlds License", + OsiApproved = false, + SPDX = "Plexus" + }, + new + { + Id = 289, + FsfApproved = false, + Link = "https://spdx.org/licenses/PostgreSQL.html#licenseText", + Name = "PostgreSQL License", + OsiApproved = true, + SPDX = "PostgreSQL" + }, + new + { + Id = 290, + FsfApproved = false, + Link = "https://spdx.org/licenses/psfrag.html#licenseText", + Name = "psfrag License", + OsiApproved = false, + SPDX = "psfrag" + }, + new + { + Id = 291, + FsfApproved = false, + Link = "https://spdx.org/licenses/psutils.html#licenseText", + Name = "psutils License", + OsiApproved = false, + SPDX = "psutils" + }, + new + { + Id = 292, + FsfApproved = true, + Link = "https://spdx.org/licenses/Python-2.0.html#licenseText", + Name = "Python License 2.0", + OsiApproved = true, + SPDX = "Python-2.0" + }, + new + { + Id = 293, + FsfApproved = false, + Link = "https://spdx.org/licenses/Qhull.html#licenseText", + Name = "Qhull License", + OsiApproved = false, + SPDX = "Qhull" + }, + new + { + Id = 294, + FsfApproved = true, + Link = "https://spdx.org/licenses/QPL-1.0.html#licenseText", + Name = "Q Public License 1.0", + OsiApproved = true, + SPDX = "QPL-1.0" + }, + new + { + Id = 295, + FsfApproved = false, + Link = "https://spdx.org/licenses/Rdisc.html#licenseText", + Name = "Rdisc License", + OsiApproved = false, + SPDX = "Rdisc" + }, + new + { + Id = 296, + FsfApproved = false, + Link = "https://spdx.org/licenses/RHeCos-1.1.html#licenseText", + Name = "Red Hat eCos Public License v1.1", + OsiApproved = false, + SPDX = "RHeCos-1.1" + }, + new + { + Id = 297, + FsfApproved = false, + Link = "https://spdx.org/licenses/RPL-1.1.html#licenseText", + Name = "Reciprocal Public License 1.1", + OsiApproved = true, + SPDX = "RPL-1.1" + }, + new + { + Id = 298, + FsfApproved = false, + Link = "https://spdx.org/licenses/RPL-1.5.html#licenseText", + Name = "Reciprocal Public License 1.5", + OsiApproved = true, + SPDX = "RPL-1.5" + }, + new + { + Id = 299, + FsfApproved = true, + Link = "https://spdx.org/licenses/RPSL-1.0.html#licenseText", + Name = "RealNetworks Public Source License v1.0", + OsiApproved = true, + SPDX = "RPSL-1.0" + }, + new + { + Id = 300, + FsfApproved = false, + Link = "https://spdx.org/licenses/RSA-MD.html#licenseText", + Name = "RSA Message-Digest License", + OsiApproved = false, + SPDX = "RSA-MD" + }, + new + { + Id = 301, + FsfApproved = false, + Link = "https://spdx.org/licenses/RSCPL.html#licenseText", + Name = "Ricoh Source Code Public License", + OsiApproved = true, + SPDX = "RSCPL" + }, + new + { + Id = 302, + FsfApproved = true, + Link = "https://spdx.org/licenses/Ruby.html#licenseText", + Name = "Ruby License", + OsiApproved = false, + SPDX = "Ruby" + }, + new + { + Id = 303, + FsfApproved = false, + Link = "https://spdx.org/licenses/SAX-PD.html#licenseText", + Name = "Sax Public Domain Notice", + OsiApproved = false, + SPDX = "SAX-PD" + }, + new + { + Id = 304, + FsfApproved = false, + Link = "https://spdx.org/licenses/Saxpath.html#licenseText", + Name = "Saxpath License", + OsiApproved = false, + SPDX = "Saxpath" + }, + new + { + Id = 305, + FsfApproved = false, + Link = "https://spdx.org/licenses/SCEA.html#licenseText", + Name = "SCEA Shared Source License", + OsiApproved = false, + SPDX = "SCEA" + }, + new + { + Id = 306, + FsfApproved = false, + Link = "https://spdx.org/licenses/Sendmail.html#licenseText", + Name = "Sendmail License", + OsiApproved = false, + SPDX = "Sendmail" + }, + new + { + Id = 307, + FsfApproved = false, + Link = "https://spdx.org/licenses/Sendmail-8.23.html#licenseText", + Name = "Sendmail License 8.23", + OsiApproved = false, + SPDX = "Sendmail-8.23" + }, + new + { + Id = 308, + FsfApproved = false, + Link = "https://spdx.org/licenses/SGI-B-1.0.html#licenseText", + Name = "SGI Free Software License B v1.0", + OsiApproved = false, + SPDX = "SGI-B-1.0" + }, + new + { + Id = 309, + FsfApproved = false, + Link = "https://spdx.org/licenses/SGI-B-1.1.html#licenseText", + Name = "SGI Free Software License B v1.1", + OsiApproved = false, + SPDX = "SGI-B-1.1" + }, + new + { + Id = 310, + FsfApproved = true, + Link = "https://spdx.org/licenses/SGI-B-2.0.html#licenseText", + Name = "SGI Free Software License B v2.0", + OsiApproved = false, + SPDX = "SGI-B-2.0" + }, + new + { + Id = 311, + FsfApproved = false, + Link = "https://spdx.org/licenses/SimPL-2.0.html#licenseText", + Name = "Simple Public License 2.0", + OsiApproved = true, + SPDX = "SimPL-2.0" + }, + new + { + Id = 312, + FsfApproved = true, + Link = "https://spdx.org/licenses/SISSL.html#licenseText", + Name = "Sun Industry Standards Source License v1.1", + OsiApproved = true, + SPDX = "SISSL" + }, + new + { + Id = 313, + FsfApproved = false, + Link = "https://spdx.org/licenses/SISSL-1.2.html#licenseText", + Name = "Sun Industry Standards Source License v1.2", + OsiApproved = false, + SPDX = "SISSL-1.2" + }, + new + { + Id = 314, + FsfApproved = true, + Link = "https://spdx.org/licenses/Sleepycat.html#licenseText", + Name = "Sleepycat License", + OsiApproved = true, + SPDX = "Sleepycat" + }, + new + { + Id = 315, + FsfApproved = true, + Link = "https://spdx.org/licenses/SMLNJ.html#licenseText", + Name = "Standard ML of New Jersey License", + OsiApproved = false, + SPDX = "SMLNJ" + }, + new + { + Id = 316, + FsfApproved = false, + Link = "https://spdx.org/licenses/SMPPL.html#licenseText", + Name = "Secure Messaging Protocol Public License", + OsiApproved = false, + SPDX = "SMPPL" + }, + new + { + Id = 317, + FsfApproved = false, + Link = "https://spdx.org/licenses/SNIA.html#licenseText", + Name = "SNIA Public License 1.1", + OsiApproved = false, + SPDX = "SNIA" + }, + new + { + Id = 318, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-86.html#licenseText", + Name = "Spencer License 86", + OsiApproved = false, + SPDX = "Spencer-86" + }, + new + { + Id = 319, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-94.html#licenseText", + Name = "Spencer License 94", + OsiApproved = false, + SPDX = "Spencer-94" + }, + new + { + Id = 320, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-99.html#licenseText", + Name = "Spencer License 99", + OsiApproved = false, + SPDX = "Spencer-99" + }, + new + { + Id = 321, + FsfApproved = true, + Link = "https://spdx.org/licenses/SPL-1.0.html#licenseText", + Name = "Sun Public License v1.0", + OsiApproved = true, + SPDX = "SPL-1.0" + }, + new + { + Id = 322, + FsfApproved = false, + Link = "https://spdx.org/licenses/SugarCRM-1.1.3.html#licenseText", + Name = "SugarCRM Public License v1.1.3", + OsiApproved = false, + SPDX = "SugarCRM-1.1.3" + }, + new + { + Id = 323, + FsfApproved = false, + Link = "https://spdx.org/licenses/SWL.html#licenseText", + Name = "Scheme Widget Library (SWL) Software License Agreement", + OsiApproved = false, + SPDX = "SWL" + }, + new + { + Id = 324, + FsfApproved = false, + Link = "https://spdx.org/licenses/TAPR-OHL-1.0.html#licenseText", + Name = "TAPR Open Hardware License v1.0", + OsiApproved = false, + SPDX = "TAPR-OHL-1.0" + }, + new + { + Id = 325, + FsfApproved = false, + Link = "https://spdx.org/licenses/TCL.html#licenseText", + Name = "TCL/TK License", + OsiApproved = false, + SPDX = "TCL" + }, + new + { + Id = 326, + FsfApproved = false, + Link = "https://spdx.org/licenses/TCP-wrappers.html#licenseText", + Name = "TCP Wrappers License", + OsiApproved = false, + SPDX = "TCP-wrappers" + }, + new + { + Id = 327, + FsfApproved = false, + Link = "https://spdx.org/licenses/TMate.html#licenseText", + Name = "TMate Open Source License", + OsiApproved = false, + SPDX = "TMate" + }, + new + { + Id = 328, + FsfApproved = false, + Link = "https://spdx.org/licenses/TORQUE-1.1.html#licenseText", + Name = "TORQUE v2.5+ Software License v1.1", + OsiApproved = false, + SPDX = "TORQUE-1.1" + }, + new + { + Id = 329, + FsfApproved = false, + Link = "https://spdx.org/licenses/TOSL.html#licenseText", + Name = "Trusster Open Source License", + OsiApproved = false, + SPDX = "TOSL" + }, + new + { + Id = 330, + FsfApproved = false, + Link = "https://spdx.org/licenses/TU-Berlin-1.0.html#licenseText", + Name = "Technische Universitaet Berlin License 1.0", + OsiApproved = false, + SPDX = "TU-Berlin-1.0" + }, + new + { + Id = 331, + FsfApproved = false, + Link = "https://spdx.org/licenses/TU-Berlin-2.0.html#licenseText", + Name = "Technische Universitaet Berlin License 2.0", + OsiApproved = false, + SPDX = "TU-Berlin-2.0" + }, + new + { + Id = 332, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-DFS-2015.html#licenseText", + Name = "Unicode License Agreement - Data Files and Software (2015)", + OsiApproved = false, + SPDX = "Unicode-DFS-2015" + }, + new + { + Id = 333, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-DFS-2016.html#licenseText", + Name = "Unicode License Agreement - Data Files and Software (2016)", + OsiApproved = false, + SPDX = "Unicode-DFS-2016" + }, + new + { + Id = 334, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-TOU.html#licenseText", + Name = "Unicode Terms of Use", + OsiApproved = false, + SPDX = "Unicode-TOU" + }, + new + { + Id = 335, + FsfApproved = true, + Link = "https://spdx.org/licenses/Unlicense.html#licenseText", + Name = "The Unlicense", + OsiApproved = false, + SPDX = "Unlicense" + }, + new + { + Id = 336, + FsfApproved = true, + Link = "https://spdx.org/licenses/UPL-1.0.html#licenseText", + Name = "Universal Permissive License v1.0", + OsiApproved = true, + SPDX = "UPL-1.0" + }, + new + { + Id = 337, + FsfApproved = true, + Link = "https://spdx.org/licenses/Vim.html#licenseText", + Name = "Vim License", + OsiApproved = false, + SPDX = "Vim" + }, + new + { + Id = 338, + FsfApproved = false, + Link = "https://spdx.org/licenses/VOSTROM.html#licenseText", + Name = "VOSTROM Public License for Open Source", + OsiApproved = false, + SPDX = "VOSTROM" + }, + new + { + Id = 339, + FsfApproved = false, + Link = "https://spdx.org/licenses/VSL-1.0.html#licenseText", + Name = "Vovida Software License v1.0", + OsiApproved = true, + SPDX = "VSL-1.0" + }, + new + { + Id = 340, + FsfApproved = true, + Link = "https://spdx.org/licenses/W3C.html#licenseText", + Name = "W3C Software Notice and License (2002-12-31)", + OsiApproved = true, + SPDX = "W3C" + }, + new + { + Id = 341, + FsfApproved = false, + Link = "https://spdx.org/licenses/W3C-19980720.html#licenseText", + Name = "W3C Software Notice and License (1998-07-20)", + OsiApproved = false, + SPDX = "W3C-19980720" + }, + new + { + Id = 342, + FsfApproved = false, + Link = "https://spdx.org/licenses/W3C-20150513.html#licenseText", + Name = "W3C Software Notice and Document License (2015-05-13)", + OsiApproved = false, + SPDX = "W3C-20150513" + }, + new + { + Id = 343, + FsfApproved = false, + Link = "https://spdx.org/licenses/Watcom-1.0.html#licenseText", + Name = "Sybase Open Watcom Public License 1.0", + OsiApproved = true, + SPDX = "Watcom-1.0" + }, + new + { + Id = 344, + FsfApproved = false, + Link = "https://spdx.org/licenses/Wsuipa.html#licenseText", + Name = "Wsuipa License", + OsiApproved = false, + SPDX = "Wsuipa" + }, + new + { + Id = 345, + FsfApproved = true, + Link = "https://spdx.org/licenses/WTFPL.html#licenseText", + Name = "Do What The F*ck You Want To Public License", + OsiApproved = false, + SPDX = "WTFPL" + }, + new + { + Id = 346, + FsfApproved = true, + Link = "https://spdx.org/licenses/X11.html#licenseText", + Name = "X11 License", + OsiApproved = false, + SPDX = "X11" + }, + new + { + Id = 347, + FsfApproved = false, + Link = "https://spdx.org/licenses/Xerox.html#licenseText", + Name = "Xerox License", + OsiApproved = false, + SPDX = "Xerox" + }, + new + { + Id = 348, + FsfApproved = true, + Link = "https://spdx.org/licenses/XFree86-1.1.html#licenseText", + Name = "XFree86 License 1.1", + OsiApproved = false, + SPDX = "XFree86-1.1" + }, + new + { + Id = 349, + FsfApproved = true, + Link = "https://spdx.org/licenses/xinetd.html#licenseText", + Name = "xinetd License", + OsiApproved = false, + SPDX = "xinetd" + }, + new + { + Id = 350, + FsfApproved = false, + Link = "https://spdx.org/licenses/Xnet.html#licenseText", + Name = "X.Net License", + OsiApproved = true, + SPDX = "Xnet" + }, + new + { + Id = 351, + FsfApproved = false, + Link = "https://spdx.org/licenses/xpp.html#licenseText", + Name = "XPP License", + OsiApproved = false, + SPDX = "xpp" + }, + new + { + Id = 352, + FsfApproved = false, + Link = "https://spdx.org/licenses/XSkat.html#licenseText", + Name = "XSkat License", + OsiApproved = false, + SPDX = "XSkat" + }, + new + { + Id = 353, + FsfApproved = false, + Link = "https://spdx.org/licenses/YPL-1.0.html#licenseText", + Name = "Yahoo! Public License v1.0", + OsiApproved = false, + SPDX = "YPL-1.0" + }, + new + { + Id = 354, + FsfApproved = true, + Link = "https://spdx.org/licenses/YPL-1.1.html#licenseText", + Name = "Yahoo! Public License v1.1", + OsiApproved = false, + SPDX = "YPL-1.1" + }, + new + { + Id = 355, + FsfApproved = false, + Link = "https://spdx.org/licenses/Zed.html#licenseText", + Name = "Zed License", + OsiApproved = false, + SPDX = "Zed" + }, + new + { + Id = 356, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zend-2.0.html#licenseText", + Name = "Zend License v2.0", + OsiApproved = false, + SPDX = "Zend-2.0" + }, + new + { + Id = 357, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zimbra-1.3.html#licenseText", + Name = "Zimbra Public License v1.3", + OsiApproved = false, + SPDX = "Zimbra-1.3" + }, + new + { + Id = 358, + FsfApproved = false, + Link = "https://spdx.org/licenses/Zimbra-1.4.html#licenseText", + Name = "Zimbra Public License v1.4", + OsiApproved = false, + SPDX = "Zimbra-1.4" + }, + new + { + Id = 359, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zlib.html#licenseText", + Name = "zlib License", + OsiApproved = true, + SPDX = "Zlib" + }, + new + { + Id = 360, + FsfApproved = false, + Link = "https://spdx.org/licenses/zlib-acknowledgement.html#licenseText", + Name = "zlib/libpng License with Acknowledgement", + OsiApproved = false, + SPDX = "zlib-acknowledgement" + }, + new + { + Id = 361, + FsfApproved = false, + Link = "https://spdx.org/licenses/ZPL-1.1.html#licenseText", + Name = "Zope Public License 1.1", + OsiApproved = false, + SPDX = "ZPL-1.1" + }, + new + { + Id = 362, + FsfApproved = true, + Link = "https://spdx.org/licenses/ZPL-2.0.html#licenseText", + Name = "Zope Public License 2.0", + OsiApproved = true, + SPDX = "ZPL-2.0" + }, + new + { + Id = 363, + FsfApproved = true, + Link = "https://spdx.org/licenses/ZPL-2.1.html#licenseText", + Name = "Zope Public License 2.1", + OsiApproved = false, + SPDX = "ZPL-2.1" + }); + }); + + modelBuilder.Entity("Cicm.Database.Models.Log", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Date") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("date") + .HasColumnType("char(20)") + .HasDefaultValueSql("''"); + + b.Property("Ip") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("ip") + .HasColumnType("char(16)") + .HasDefaultValueSql("''"); + + b.Property("Referer") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("referer") + .HasColumnType("char(255)") + .HasDefaultValueSql("''"); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_log_browser"); + + b.HasIndex("Date") + .HasName("idx_log_date"); + + b.HasIndex("Ip") + .HasName("idx_log_ip"); + + b.HasIndex("Referer") + .HasName("idx_log_referer"); + + b.ToTable("log"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Machine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .ValueGeneratedOnAdd() + .HasColumnName("company") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("FamilyId") + .HasColumnName("family") + .HasColumnType("int(11)"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("Model") + .HasColumnName("model") + .HasColumnType("varchar(50)") + .HasMaxLength(50); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_machines_company"); + + b.HasIndex("FamilyId") + .HasName("idx_machines_family"); + + b.HasIndex("Introduced") + .HasName("idx_machines_introduced"); + + b.HasIndex("Model") + .HasName("idx_machines_model"); + + b.HasIndex("Name") + .HasName("idx_machines_name"); + + b.HasIndex("Type") + .HasName("idx_machines_type"); + + b.ToTable("machines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_machine_families_company"); + + b.HasIndex("Name") + .HasName("idx_machine_families_name"); + + b.ToTable("machine_families"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachinePhoto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Author"); + + b.Property("CameraManufacturer"); + + b.Property("CameraModel"); + + b.Property("ColorSpace"); + + b.Property("Comments"); + + b.Property("Contrast"); + + b.Property("CreationDate"); + + b.Property("DigitalZoomRatio"); + + b.Property("ExifVersion"); + + b.Property("Exposure"); + + b.Property("ExposureMethod"); + + b.Property("ExposureProgram"); + + b.Property("Flash"); + + b.Property("Focal"); + + b.Property("FocalLength"); + + b.Property("FocalLengthEquivalent"); + + b.Property("HorizontalResolution"); + + b.Property("IsoRating"); + + b.Property("Lens"); + + b.Property("LicenseId"); + + b.Property("LightSource"); + + b.Property("MachineId"); + + b.Property("MeteringMode"); + + b.Property("Orientation"); + + b.Property("ResolutionUnit"); + + b.Property("Saturation"); + + b.Property("SceneCaptureType"); + + b.Property("SensingMethod"); + + b.Property("Sharpness"); + + b.Property("SoftwareUsed"); + + b.Property("Source"); + + b.Property("SubjectDistanceRange"); + + b.Property("UploadDate") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate(); + + b.Property("UserId"); + + b.Property("VerticalResolution"); + + b.Property("WhiteBalance"); + + b.HasKey("Id"); + + b.HasIndex("Author"); + + b.HasIndex("CameraManufacturer"); + + b.HasIndex("CameraModel"); + + b.HasIndex("ColorSpace"); + + b.HasIndex("Comments"); + + b.HasIndex("Contrast"); + + b.HasIndex("CreationDate"); + + b.HasIndex("DigitalZoomRatio"); + + b.HasIndex("ExifVersion"); + + b.HasIndex("Exposure"); + + b.HasIndex("ExposureMethod"); + + b.HasIndex("ExposureProgram"); + + b.HasIndex("Flash"); + + b.HasIndex("Focal"); + + b.HasIndex("FocalLength"); + + b.HasIndex("FocalLengthEquivalent"); + + b.HasIndex("HorizontalResolution"); + + b.HasIndex("IsoRating"); + + b.HasIndex("Lens"); + + b.HasIndex("LicenseId"); + + b.HasIndex("LightSource"); + + b.HasIndex("MachineId"); + + b.HasIndex("MeteringMode"); + + b.HasIndex("Orientation"); + + b.HasIndex("ResolutionUnit"); + + b.HasIndex("Saturation"); + + b.HasIndex("SceneCaptureType"); + + b.HasIndex("SensingMethod"); + + b.HasIndex("Sharpness"); + + b.HasIndex("SoftwareUsed"); + + b.HasIndex("SubjectDistanceRange"); + + b.HasIndex("UploadDate"); + + b.HasIndex("UserId"); + + b.HasIndex("VerticalResolution"); + + b.HasIndex("WhiteBalance"); + + b.ToTable("MachinePhotos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Magazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("FirstPublication"); + + b.Property("Issn") + .HasMaxLength(8); + + b.Property("NativeTitle"); + + b.Property("Published"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("FirstPublication"); + + b.HasIndex("Issn"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Published"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Magazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazineIssue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Caption") + .IsRequired(); + + b.Property("MagazineId"); + + b.Property("NativeCaption"); + + b.Property("Pages"); + + b.Property("ProductCode") + .HasMaxLength(18); + + b.Property("Published"); + + b.HasKey("Id"); + + b.HasIndex("Caption"); + + b.HasIndex("MagazineId"); + + b.HasIndex("NativeCaption"); + + b.HasIndex("Pages"); + + b.HasIndex("ProductCode"); + + b.HasIndex("Published"); + + b.ToTable("MagazineIssues"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineId"); + + b.Property("MagazineId"); + + b.HasKey("Id"); + + b.HasIndex("MachineId"); + + b.HasIndex("MagazineId"); + + b.ToTable("MagazinesByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineFamilyId"); + + b.Property("MagazineId"); + + b.HasKey("Id"); + + b.HasIndex("MachineFamilyId"); + + b.HasIndex("MagazineId"); + + b.ToTable("MagazinesByMachinesFamilies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("Size") + .HasColumnName("size") + .HasColumnType("bigint(20)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Usage") + .ValueGeneratedOnAdd() + .HasColumnName("usage") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_memory_by_machine_machine"); + + b.HasIndex("Size") + .HasName("idx_memory_by_machine_size"); + + b.HasIndex("Speed") + .HasName("idx_memory_by_machine_speed"); + + b.HasIndex("Type") + .HasName("idx_memory_by_machine_type"); + + b.HasIndex("Usage") + .HasName("idx_memory_by_machine_usage"); + + b.ToTable("memory_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("Size"); + + b.Property("Speed"); + + b.Property("Type"); + + b.Property("Usage"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("Size"); + + b.HasIndex("Speed"); + + b.HasIndex("Type"); + + b.HasIndex("Usage"); + + b.ToTable("MemoryByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MoneyDonation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Donator") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("donator") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Quantity") + .ValueGeneratedOnAdd() + .HasColumnName("quantity") + .HasColumnType("decimal(11,2)") + .HasDefaultValueSql("'0.00'"); + + b.HasKey("Id"); + + b.HasIndex("Donator") + .HasName("idx_money_donations_donator"); + + b.HasIndex("Quantity") + .HasName("idx_money_donations_quantity"); + + b.ToTable("money_donations"); + }); + + modelBuilder.Entity("Cicm.Database.Models.News", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("AddedId") + .ValueGeneratedOnAdd() + .HasColumnName("added_id") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Date") + .HasColumnName("date") + .HasColumnType("datetime"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("AddedId") + .HasName("idx_news_ip"); + + b.HasIndex("Date") + .HasName("idx_news_date"); + + b.HasIndex("Type") + .HasName("idx_news_type"); + + b.ToTable("news"); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AcquisitionDate"); + + b.Property("Boxed"); + + b.Property("LastStatusDate"); + + b.Property("LostDate"); + + b.Property("MachineId"); + + b.Property("Manuals"); + + b.Property("SerialNumber"); + + b.Property("SerialNumberVisible") + .ValueGeneratedOnAdd() + .HasDefaultValue(true); + + b.Property("Status"); + + b.Property("Trade"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("AcquisitionDate"); + + b.HasIndex("Boxed"); + + b.HasIndex("LastStatusDate"); + + b.HasIndex("LostDate"); + + b.HasIndex("MachineId"); + + b.HasIndex("Manuals"); + + b.HasIndex("SerialNumber"); + + b.HasIndex("SerialNumberVisible"); + + b.HasIndex("Status"); + + b.HasIndex("Trade"); + + b.HasIndex("UserId"); + + b.ToTable("OwnedMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachinePhoto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Author"); + + b.Property("CameraManufacturer"); + + b.Property("CameraModel"); + + b.Property("ColorSpace"); + + b.Property("Comments"); + + b.Property("Contrast"); + + b.Property("CreationDate"); + + b.Property("DigitalZoomRatio"); + + b.Property("ExifVersion"); + + b.Property("Exposure"); + + b.Property("ExposureMethod"); + + b.Property("ExposureProgram"); + + b.Property("Flash"); + + b.Property("Focal"); + + b.Property("FocalLength"); + + b.Property("FocalLengthEquivalent"); + + b.Property("HorizontalResolution"); + + b.Property("IsoRating"); + + b.Property("Lens"); + + b.Property("LicenseId"); + + b.Property("LightSource"); + + b.Property("MeteringMode"); + + b.Property("Orientation"); + + b.Property("OwnedMachineId"); + + b.Property("ResolutionUnit"); + + b.Property("Saturation"); + + b.Property("SceneCaptureType"); + + b.Property("SensingMethod"); + + b.Property("Sharpness"); + + b.Property("SoftwareUsed"); + + b.Property("SubjectDistanceRange"); + + b.Property("UploadDate") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate(); + + b.Property("UserId"); + + b.Property("VerticalResolution"); + + b.Property("WhiteBalance"); + + b.HasKey("Id"); + + b.HasIndex("Author"); + + b.HasIndex("CameraManufacturer"); + + b.HasIndex("CameraModel"); + + b.HasIndex("ColorSpace"); + + b.HasIndex("Comments"); + + b.HasIndex("Contrast"); + + b.HasIndex("CreationDate"); + + b.HasIndex("DigitalZoomRatio"); + + b.HasIndex("ExifVersion"); + + b.HasIndex("Exposure"); + + b.HasIndex("ExposureMethod"); + + b.HasIndex("ExposureProgram"); + + b.HasIndex("Flash"); + + b.HasIndex("Focal"); + + b.HasIndex("FocalLength"); + + b.HasIndex("FocalLengthEquivalent"); + + b.HasIndex("HorizontalResolution"); + + b.HasIndex("IsoRating"); + + b.HasIndex("Lens"); + + b.HasIndex("LicenseId"); + + b.HasIndex("LightSource"); + + b.HasIndex("MeteringMode"); + + b.HasIndex("Orientation"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("ResolutionUnit"); + + b.HasIndex("Saturation"); + + b.HasIndex("SceneCaptureType"); + + b.HasIndex("SensingMethod"); + + b.HasIndex("Sharpness"); + + b.HasIndex("SoftwareUsed"); + + b.HasIndex("SubjectDistanceRange"); + + b.HasIndex("UploadDate"); + + b.HasIndex("UserId"); + + b.HasIndex("VerticalResolution"); + + b.HasIndex("WhiteBalance"); + + b.ToTable("OwnedMachinePhotos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByBook", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByBooks"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByCompany", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("End"); + + b.Property("Ongoing"); + + b.Property("PersonId"); + + b.Property("Position"); + + b.Property("Start"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("End"); + + b.HasIndex("PersonId"); + + b.HasIndex("Position"); + + b.HasIndex("Start"); + + b.ToTable("PeopleByCompany"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByDocuments"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByMagazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MagazineId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("MagazineId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByMagazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Person", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Alias"); + + b.Property("BirthDate"); + + b.Property("CountryOfBirthId"); + + b.Property("DeathDate"); + + b.Property("DisplayName"); + + b.Property("DocumentPersonId"); + + b.Property("Facebook"); + + b.Property("Name") + .IsRequired(); + + b.Property("Photo"); + + b.Property("Surname") + .IsRequired(); + + b.Property("Twitter"); + + b.Property("Webpage"); + + b.HasKey("Id"); + + b.HasIndex("Alias"); + + b.HasIndex("BirthDate"); + + b.HasIndex("CountryOfBirthId"); + + b.HasIndex("DeathDate"); + + b.HasIndex("DisplayName"); + + b.HasIndex("Facebook"); + + b.HasIndex("Name"); + + b.HasIndex("Photo"); + + b.HasIndex("Surname"); + + b.HasIndex("Twitter"); + + b.HasIndex("Webpage"); + + b.ToTable("People"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Processor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("AddrBus") + .HasColumnName("addr_bus") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Cores") + .HasColumnName("cores") + .HasColumnType("int(11)"); + + b.Property("DataBus") + .HasColumnName("data_bus") + .HasColumnType("int(11)"); + + b.Property("DieSize") + .HasColumnName("die_size"); + + b.Property("FprSize") + .HasColumnName("FPR_size") + .HasColumnType("int(11)"); + + b.Property("Fprs") + .HasColumnName("FPRs") + .HasColumnType("int(11)"); + + b.Property("GprSize") + .HasColumnName("GPR_size") + .HasColumnType("int(11)"); + + b.Property("Gprs") + .HasColumnName("GPRs") + .HasColumnType("int(11)"); + + b.Property("InstructionSetId") + .HasColumnName("instruction_set") + .HasColumnType("int(11)"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("L1Data") + .HasColumnName("L1_data"); + + b.Property("L1Instruction") + .HasColumnName("L1_instruction"); + + b.Property("L2"); + + b.Property("L3"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(50)") + .HasDefaultValueSql("''") + .HasMaxLength(50); + + b.Property("Package") + .HasColumnName("package") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Process") + .HasColumnName("process") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("ProcessNm") + .HasColumnName("process_nm"); + + b.Property("SimdRegisters") + .HasColumnName("SIMD_registers") + .HasColumnType("int(11)"); + + b.Property("SimdSize") + .HasColumnName("SIMD_size") + .HasColumnType("int(11)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.Property("ThreadsPerCore") + .HasColumnName("threads_per_core") + .HasColumnType("int(11)"); + + b.Property("Transistors") + .HasColumnName("transistors") + .HasColumnType("bigint(20)"); + + b.HasKey("Id"); + + b.HasIndex("AddrBus") + .HasName("idx_processors_addr_bus"); + + b.HasIndex("CompanyId") + .HasName("idx_processors_company"); + + b.HasIndex("Cores") + .HasName("idx_processors_cores"); + + b.HasIndex("DataBus") + .HasName("idx_processors_data_bus"); + + b.HasIndex("DieSize") + .HasName("idx_processors_die_size"); + + b.HasIndex("FprSize") + .HasName("idx_processors_FPR_size"); + + b.HasIndex("Fprs") + .HasName("idx_processors_FPRs"); + + b.HasIndex("GprSize") + .HasName("idx_processors_GPR_size"); + + b.HasIndex("Gprs") + .HasName("idx_processors_GPRs"); + + b.HasIndex("InstructionSetId") + .HasName("idx_processors_instruction_set"); + + b.HasIndex("Introduced") + .HasName("idx_processors_introduced"); + + b.HasIndex("L1Data") + .HasName("idx_processors_L1_data"); + + b.HasIndex("L1Instruction") + .HasName("idx_processors_L1_instruction"); + + b.HasIndex("L2") + .HasName("idx_processors_L2"); + + b.HasIndex("L3") + .HasName("idx_processors_L3"); + + b.HasIndex("ModelCode") + .HasName("idx_processors_model_code"); + + b.HasIndex("Name") + .HasName("idx_processors_name"); + + b.HasIndex("Package") + .HasName("idx_processors_package"); + + b.HasIndex("Process") + .HasName("idx_processors_process"); + + b.HasIndex("ProcessNm") + .HasName("idx_processors_process_nm"); + + b.HasIndex("SimdRegisters") + .HasName("idx_processors_SIMD_registers"); + + b.HasIndex("SimdSize") + .HasName("idx_processors_SIMD_size"); + + b.HasIndex("Speed") + .HasName("idx_processors_speed"); + + b.HasIndex("ThreadsPerCore") + .HasName("idx_processors_threads_per_core"); + + b.HasIndex("Transistors") + .HasName("idx_processors_transistors"); + + b.ToTable("processors"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("ProcessorId") + .HasColumnName("processor") + .HasColumnType("int(11)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_processors_by_machine_machine"); + + b.HasIndex("ProcessorId") + .HasName("idx_processors_by_machine_processor"); + + b.HasIndex("Speed") + .HasName("idx_processors_by_machine_speed"); + + b.ToTable("processors_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("ProcessorId"); + + b.Property("Speed"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("ProcessorId"); + + b.HasIndex("Speed"); + + b.ToTable("ProcessorsByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Resolution", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Chars") + .ValueGeneratedOnAdd() + .HasColumnName("chars") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Colors") + .HasColumnName("colors") + .HasColumnType("bigint(20)"); + + b.Property("Grayscale"); + + b.Property("Height") + .ValueGeneratedOnAdd() + .HasColumnName("height") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Palette") + .HasColumnName("palette") + .HasColumnType("bigint(20)"); + + b.Property("Width") + .ValueGeneratedOnAdd() + .HasColumnName("width") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("Colors") + .HasName("idx_resolutions_colors"); + + b.HasIndex("Height") + .HasName("idx_resolutions_height"); + + b.HasIndex("Palette") + .HasName("idx_resolutions_palette"); + + b.HasIndex("Width") + .HasName("idx_resolutions_width"); + + b.HasIndex("Width", "Height") + .HasName("idx_resolutions_resolution"); + + b.HasIndex("Width", "Height", "Colors") + .HasName("idx_resolutions_resolution_with_color"); + + b.HasIndex("Width", "Height", "Colors", "Palette") + .HasName("idx_resolutions_resolution_with_color_and_palette"); + + b.ToTable("resolutions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByGpu", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("GpuId") + .HasColumnName("gpu") + .HasColumnType("int(11)"); + + b.Property("ResolutionId") + .HasColumnName("resolution") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("GpuId") + .HasName("idx_resolutions_by_gpu_gpu"); + + b.HasIndex("ResolutionId") + .HasName("idx_resolutions_by_gpu_resolution"); + + b.ToTable("resolutions_by_gpu"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByScreen", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ResolutionId"); + + b.Property("ScreenId"); + + b.HasKey("Id"); + + b.HasIndex("ResolutionId"); + + b.HasIndex("ScreenId"); + + b.ToTable("ResolutionsByScreen"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Screen", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Diagonal"); + + b.Property("EffectiveColors"); + + b.Property("Height"); + + b.Property("NativeResolutionId"); + + b.Property("Type") + .IsRequired(); + + b.Property("Width"); + + b.HasKey("Id"); + + b.HasIndex("Diagonal"); + + b.HasIndex("EffectiveColors"); + + b.HasIndex("Height"); + + b.HasIndex("NativeResolutionId"); + + b.HasIndex("Type"); + + b.HasIndex("Width"); + + b.ToTable("Screens"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ScreensByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineId"); + + b.Property("ScreenId"); + + b.HasKey("Id"); + + b.HasIndex("MachineId"); + + b.HasIndex("ScreenId"); + + b.ToTable("ScreensByMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("SoundSynthId") + .HasColumnName("sound_synth") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_sound_by_machine_machine"); + + b.HasIndex("SoundSynthId") + .HasName("idx_sound_by_machine_sound_synth"); + + b.ToTable("sound_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("SoundSynthId"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("SoundSynthId"); + + b.ToTable("SoundByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundSynth", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Depth") + .HasColumnName("depth") + .HasColumnType("int(11)"); + + b.Property("Frequency") + .HasColumnName("frequency"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(50)") + .HasDefaultValueSql("''") + .HasMaxLength(50); + + b.Property("SquareWave") + .HasColumnName("square_wave") + .HasColumnType("int(11)"); + + b.Property("Type") + .HasColumnName("type") + .HasColumnType("int(11)"); + + b.Property("Voices") + .HasColumnName("voices") + .HasColumnType("int(11)"); + + b.Property("WhiteNoise") + .HasColumnName("white_noise") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_sound_synths_company"); + + b.HasIndex("Depth") + .HasName("idx_sound_synths_depth"); + + b.HasIndex("Frequency") + .HasName("idx_sound_synths_frequency"); + + b.HasIndex("Introduced") + .HasName("idx_sound_synths_introduced"); + + b.HasIndex("ModelCode") + .HasName("idx_sound_synths_model_code"); + + b.HasIndex("Name") + .HasName("idx_sound_synths_name"); + + b.HasIndex("SquareWave") + .HasName("idx_sound_synths_square_wave"); + + b.HasIndex("Type") + .HasName("idx_sound_synths_type"); + + b.HasIndex("Voices") + .HasName("idx_sound_synths_voices"); + + b.HasIndex("WhiteNoise") + .HasName("idx_sound_synths_white_noise"); + + b.ToTable("sound_synths"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("Capacity") + .HasColumnName("capacity") + .HasColumnType("bigint(20)"); + + b.Property("Interface") + .ValueGeneratedOnAdd() + .HasColumnName("interface") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("Capacity") + .HasName("idx_storage_capacity"); + + b.HasIndex("Interface") + .HasName("idx_storage_interface"); + + b.HasIndex("MachineId") + .HasName("idx_storage_machine"); + + b.HasIndex("Type") + .HasName("idx_storage_type"); + + b.ToTable("storage_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Capacity"); + + b.Property("Interface"); + + b.Property("OwnedMachineId"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.HasIndex("Capacity"); + + b.HasIndex("Interface"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("Type"); + + b.ToTable("StorageByOwnedMachine"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Discriminator") + .IsRequired(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex"); + + b.ToTable("AspNetUsers"); + + b.HasDiscriminator("Discriminator").HasValue("IdentityUser"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("ProviderKey") + .HasMaxLength(128); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("Name") + .HasMaxLength(128); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ApplicationUser", b => + { + b.HasBaseType("Microsoft.AspNetCore.Identity.IdentityUser"); + + b.HasDiscriminator().HasValue("ApplicationUser"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Book", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Books") + .HasForeignKey("CountryId"); + + b.HasOne("Cicm.Database.Models.Book", "Previous") + .WithOne("Next") + .HasForeignKey("Cicm.Database.Models.Book", "PreviousId"); + + b.HasOne("Cicm.Database.Models.Book", "Source") + .WithMany("Derivates") + .HasForeignKey("SourceId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachine", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("Machines") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Books") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("MachineFamilies") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Books") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByBook", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("Companies") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Books") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByDocument", b => + { + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Documents") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("Companies") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByMagazine", b => + { + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Magazines") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Magazine", "Magazine") + .WithMany("Companies") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Company", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Companies") + .HasForeignKey("CountryId") + .HasConstraintName("fk_companies_country"); + + b.HasOne("Cicm.Database.Models.Company", "SoldTo") + .WithMany("InverseSoldToNavigation") + .HasForeignKey("SoldToId") + .HasConstraintName("fk_companies_sold_to"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyDescription", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Descriptions") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyLogo", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Logos") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_company_logos_company1"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Document", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Documents") + .HasForeignKey("CountryId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentCompany", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithOne("DocumentCompany") + .HasForeignKey("Cicm.Database.Models.DocumentCompany", "CompanyId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentPerson", b => + { + b.HasOne("Cicm.Database.Models.Person", "Person") + .WithOne("DocumentPerson") + .HasForeignKey("Cicm.Database.Models.DocumentPerson", "PersonId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachine", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("Machines") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Documents") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("MachineFamilies") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Documents") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Gpu", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Gpus") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_gpus_company"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByMachine", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany("GpusByMachine") + .HasForeignKey("GpuId") + .HasConstraintName("fk_gpus_by_machine_gpu") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Gpus") + .HasForeignKey("MachineId") + .HasConstraintName("fk_gpus_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany() + .HasForeignKey("GpuId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Gpus") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtensionsByProcessor", b => + { + b.HasOne("Cicm.Database.Models.InstructionSetExtension", "Extension") + .WithMany("InstructionSetExtensionsByProcessor") + .HasForeignKey("ExtensionId") + .HasConstraintName("fk_extension_extension_id"); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany("InstructionSetExtensions") + .HasForeignKey("ProcessorId") + .HasConstraintName("fk_extension_processor_id"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Machine", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Machines") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_machines_company"); + + b.HasOne("Cicm.Database.Models.MachineFamily", "Family") + .WithMany("Machines") + .HasForeignKey("FamilyId") + .HasConstraintName("fk_machines_family"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("MachineFamilies") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_machine_families_company") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachinePhoto", b => + { + b.HasOne("Cicm.Database.Models.License", "License") + .WithMany("Photos") + .HasForeignKey("LicenseId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Photos") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.Magazine", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Magazines") + .HasForeignKey("CountryId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazineIssue", b => + { + b.HasOne("Cicm.Database.Models.Magazine", "Magazine") + .WithMany("Issues") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Magazines") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("Machines") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Magazines") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("MachineFamilies") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Memory") + .HasForeignKey("MachineId") + .HasConstraintName("fk_memory_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Memory") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany() + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("OwnedMachines") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachinePhoto", b => + { + b.HasOne("Cicm.Database.Models.License", "License") + .WithMany("OwnedMachinePhotos") + .HasForeignKey("LicenseId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Photos") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("OwnedMachinePhotos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByBook", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("People") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Books") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByCompany", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("People") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Person", "Person") + .WithMany("Companies") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByDocument", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("People") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Documents") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByMagazine", b => + { + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("People") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Magazines") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Person", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "CountryOfBirth") + .WithMany("People") + .HasForeignKey("CountryOfBirthId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Processor", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Processors") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_processors_company"); + + b.HasOne("Cicm.Database.Models.InstructionSet", "InstructionSet") + .WithMany("Processors") + .HasForeignKey("InstructionSetId") + .HasConstraintName("fk_processors_instruction_set"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Processors") + .HasForeignKey("MachineId") + .HasConstraintName("fk_processors_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany("ProcessorsByMachine") + .HasForeignKey("ProcessorId") + .HasConstraintName("fk_processors_by_machine_processor") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Processors") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany() + .HasForeignKey("ProcessorId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByGpu", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany("ResolutionsByGpu") + .HasForeignKey("GpuId") + .HasConstraintName("fk_resolutions_by_gpu_gpu") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Resolution", "Resolution") + .WithMany("ResolutionsByGpu") + .HasForeignKey("ResolutionId") + .HasConstraintName("fk_resolutions_by_gpu_resolution") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByScreen", b => + { + b.HasOne("Cicm.Database.Models.Resolution", "Resolution") + .WithMany("ResolutionsByScreen") + .HasForeignKey("ResolutionId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Screen", "Screen") + .WithMany("Resolutions") + .HasForeignKey("ScreenId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Screen", b => + { + b.HasOne("Cicm.Database.Models.Resolution", "NativeResolution") + .WithMany("Screens") + .HasForeignKey("NativeResolutionId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ScreensByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Screens") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Screen", "Screen") + .WithMany("ScreensByMachines") + .HasForeignKey("ScreenId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Sound") + .HasForeignKey("MachineId") + .HasConstraintName("fk_sound_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.SoundSynth", "SoundSynth") + .WithMany("SoundByMachine") + .HasForeignKey("SoundSynthId") + .HasConstraintName("fk_sound_by_machine_sound_synth") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Sound") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.SoundSynth", "SoundSynth") + .WithMany() + .HasForeignKey("SoundSynthId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundSynth", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("SoundSynths") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_sound_synths_company"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Storage") + .HasForeignKey("MachineId") + .HasConstraintName("fk_storage_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Storage") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.cs b/Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.cs new file mode 100644 index 00000000..58e9e386 --- /dev/null +++ b/Cicm.Database/Migrations/20190630202244_AddDisplayNameAndAliasToPerson.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Cicm.Database.Migrations +{ + public partial class AddDisplayNameAndAliasToPerson : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn("Alias", "People", nullable: true); + + migrationBuilder.AddColumn("DisplayName", "People", nullable: true); + + migrationBuilder.CreateIndex("IX_People_Alias", "People", "Alias"); + + migrationBuilder.CreateIndex("IX_People_DisplayName", "People", "DisplayName"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex("IX_People_Alias", "People"); + + migrationBuilder.DropIndex("IX_People_DisplayName", "People"); + + migrationBuilder.DropColumn("Alias", "People"); + + migrationBuilder.DropColumn("DisplayName", "People"); + } + } +} \ No newline at end of file diff --git a/Cicm.Database/Migrations/cicmContextModelSnapshot.cs b/Cicm.Database/Migrations/cicmContextModelSnapshot.cs index de4f03b8..6deb4a9f 100644 --- a/Cicm.Database/Migrations/cicmContextModelSnapshot.cs +++ b/Cicm.Database/Migrations/cicmContextModelSnapshot.cs @@ -4958,12 +4958,16 @@ namespace Cicm.Database.Migrations { b.Property("Id").ValueGeneratedOnAdd(); + b.Property("Alias"); + b.Property("BirthDate"); b.Property("CountryOfBirthId"); b.Property("DeathDate"); + b.Property("DisplayName"); + b.Property("DocumentPersonId"); b.Property("Facebook"); @@ -4980,12 +4984,16 @@ namespace Cicm.Database.Migrations b.HasKey("Id"); + b.HasIndex("Alias"); + b.HasIndex("BirthDate"); b.HasIndex("CountryOfBirthId"); b.HasIndex("DeathDate"); + b.HasIndex("DisplayName"); + b.HasIndex("Facebook"); b.HasIndex("Name"); diff --git a/Cicm.Database/Models/Person.cs b/Cicm.Database/Models/Person.cs index 044f9976..9e979800 100644 --- a/Cicm.Database/Models/Person.cs +++ b/Cicm.Database/Models/Person.cs @@ -28,10 +28,13 @@ namespace Cicm.Database.Models public string Facebook { get; set; } public Guid Photo { get; set; } public int? DocumentPersonId { get; set; } + public string Alias { get; set; } + [DisplayName("Name to be displayed")] + public string DisplayName { get; set; } [NotMapped] [DisplayName("Name")] - public string FullName => $"{Name} {Surname}"; + public string FullName => DisplayName ?? Alias ?? $"{Name} {Surname}"; public short? CountryOfBirthId { get; set; } public virtual ICollection Companies { get; set; } diff --git a/Cicm.Database/Models/cicmContext.cs b/Cicm.Database/Models/cicmContext.cs index a6acd4a4..fe0738fc 100644 --- a/Cicm.Database/Models/cicmContext.cs +++ b/Cicm.Database/Models/cicmContext.cs @@ -1076,6 +1076,10 @@ namespace Cicm.Database.Models entity.HasIndex(e => e.Photo); + entity.HasIndex(e => e.Alias); + + entity.HasIndex(e => e.DisplayName); + entity.HasOne(d => d.CountryOfBirth).WithMany(p => p.People).HasForeignKey(d => d.CountryOfBirthId); entity.HasOne(d => d.DocumentPerson).WithOne(p => p.Person) diff --git a/cicm_web/Areas/Admin/Controllers/PeopleController.cs b/cicm_web/Areas/Admin/Controllers/PeopleController.cs index 84f5078d..bd6a51b3 100644 --- a/cicm_web/Areas/Admin/Controllers/PeopleController.cs +++ b/cicm_web/Areas/Admin/Controllers/PeopleController.cs @@ -51,7 +51,8 @@ namespace cicm_web.Areas.Admin.Controllers [HttpPost] [ValidateAntiForgeryToken] public async Task Create( - [Bind("Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id")] + [Bind( + "Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id,Alias,DisplayName")] Person person) { if(ModelState.IsValid) @@ -85,7 +86,8 @@ namespace cicm_web.Areas.Admin.Controllers [HttpPost] [ValidateAntiForgeryToken] public async Task Edit( - int id, [Bind("Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id")] + int id, [Bind( + "Name,Surname,BirthDate,DeathDate,Webpage,Twitter,Facebook,Photo,CountryOfBirthId,Id,Alias,DisplayName")] Person person) { if(id != person.Id) return NotFound(); diff --git a/cicm_web/Areas/Admin/Views/People/Create.cshtml b/cicm_web/Areas/Admin/Views/People/Create.cshtml index 7bae0db9..2cce5a8f 100644 --- a/cicm_web/Areas/Admin/Views/People/Create.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Create.cshtml @@ -24,6 +24,26 @@ class="text-danger"> +
+ + + + +
+
+ + + + +
diff --git a/cicm_web/Areas/Admin/Views/People/Delete.cshtml b/cicm_web/Areas/Admin/Views/People/Delete.cshtml index 4f475494..ce163d83 100644 --- a/cicm_web/Areas/Admin/Views/People/Delete.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Delete.cshtml @@ -23,6 +23,18 @@
@Html.DisplayFor(model => model.Surname)
+
+ @Html.DisplayNameFor(model => model.Alias) +
+
+ @Html.DisplayFor(model => model.Alias) +
+
+ @Html.DisplayNameFor(model => model.DisplayName) +
+
+ @Html.DisplayFor(model => model.DisplayName) +
@Html.DisplayNameFor(model => model.CountryOfBirth)
@@ -66,10 +78,16 @@ } - +
- - - Back to List + + + + Back to List + - + \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/People/Details.cshtml b/cicm_web/Areas/Admin/Views/People/Details.cshtml index bb651564..e98b45f8 100644 --- a/cicm_web/Areas/Admin/Views/People/Details.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Details.cshtml @@ -22,6 +22,18 @@
@Html.DisplayFor(model => model.Surname)
+
+ @Html.DisplayNameFor(model => model.Alias) +
+
+ @Html.DisplayFor(model => model.Alias) +
+
+ @Html.DisplayNameFor(model => model.DisplayName) +
+
+ @Html.DisplayFor(model => model.DisplayName) +
@Html.DisplayNameFor(model => model.CountryOfBirth)
diff --git a/cicm_web/Areas/Admin/Views/People/Edit.cshtml b/cicm_web/Areas/Admin/Views/People/Edit.cshtml index 6665d400..fec2854a 100644 --- a/cicm_web/Areas/Admin/Views/People/Edit.cshtml +++ b/cicm_web/Areas/Admin/Views/People/Edit.cshtml @@ -11,7 +11,9 @@
-
+
+
+
+ + + + +
+
+ + + + +
- +
@@ -102,4 +130,4 @@ @section Scripts { @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } -} +} \ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index b09a51bb..bdf0be80 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.869 + 3.0.99.872 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 56678f1b1644611056412c8e62f1e93ed0c642aa Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 22:07:16 +0100 Subject: [PATCH 14/23] Sort people in admin controller. --- cicm_web/Areas/Admin/Controllers/PeopleController.cs | 2 +- cicm_web/cicm_web.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cicm_web/Areas/Admin/Controllers/PeopleController.cs b/cicm_web/Areas/Admin/Controllers/PeopleController.cs index bd6a51b3..c3a17abc 100644 --- a/cicm_web/Areas/Admin/Controllers/PeopleController.cs +++ b/cicm_web/Areas/Admin/Controllers/PeopleController.cs @@ -24,7 +24,7 @@ namespace cicm_web.Areas.Admin.Controllers public async Task Index() { IIncludableQueryable cicmContext = _context.People.Include(p => p.CountryOfBirth); - return View(await cicmContext.ToListAsync()); + return View(await cicmContext.OrderBy(p => p.FullName).ToListAsync()); } // GET: People/Details/5 diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index bdf0be80..b706d634 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.872 + 3.0.99.874 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 3e03c962fa89879be2aacd24dcc810387221947e Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 22:10:38 +0100 Subject: [PATCH 15/23] Sort document companies in admin controller. --- cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs | 2 +- cicm_web/cicm_web.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs index 8063aa99..fc5cd0b0 100644 --- a/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs +++ b/cicm_web/Areas/Admin/Controllers/DocumentCompaniesController.cs @@ -23,7 +23,7 @@ namespace cicm_web.Areas.Admin.Controllers // GET: DocumentCompanies public async Task Index() { - return View(await _context.DocumentCompanies + return View(await _context.DocumentCompanies.OrderBy(c => c.Name) .Select(d => new DocumentCompanyViewModel { Id = d.Id, diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index b706d634..8f4511cc 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.874 + 3.0.99.875 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From b4b01ce2e20b148fc8e90c13b49be530235230ef Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 22:37:03 +0100 Subject: [PATCH 16/23] Add alias and display name to document people. --- ...ayNameAndAliasToDocumentPerson.Designer.cs | 8202 +++++++++++++++++ ..._AddDisplayNameAndAliasToDocumentPerson.cs | 29 + .../Migrations/cicmContextModelSnapshot.cs | 8 + Cicm.Database/Models/DocumentPerson.cs | 15 +- Cicm.Database/Models/cicmContext.cs | 4 + cicm_web/cicm_web.csproj | 2 +- 6 files changed, 8254 insertions(+), 6 deletions(-) create mode 100644 Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.Designer.cs create mode 100644 Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.cs diff --git a/Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.Designer.cs b/Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.Designer.cs new file mode 100644 index 00000000..d17ec479 --- /dev/null +++ b/Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.Designer.cs @@ -0,0 +1,8202 @@ +// +using System; +using Cicm.Database.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace Cicm.Database.Migrations +{ + [DbContext(typeof(cicmContext))] + [Migration("20190630212811_AddDisplayNameAndAliasToDocumentPerson")] + partial class AddDisplayNameAndAliasToDocumentPerson + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Cicm.Database.Models.Book", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("Edition"); + + b.Property("Isbn") + .HasMaxLength(13); + + b.Property("NativeTitle"); + + b.Property("Pages"); + + b.Property("PreviousId"); + + b.Property("Published"); + + b.Property("SourceId"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("Edition"); + + b.HasIndex("Isbn"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Pages"); + + b.HasIndex("PreviousId") + .IsUnique(); + + b.HasIndex("Published"); + + b.HasIndex("SourceId"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Books"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("MachineId"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("MachineId"); + + b.ToTable("BooksByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("MachineFamilyId"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("MachineFamilyId"); + + b.ToTable("BooksByMachineFamilies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BrowserTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Agif") + .ValueGeneratedOnAdd() + .HasColumnName("agif") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("varchar(64)") + .HasDefaultValueSql("''") + .HasMaxLength(64); + + b.Property("Colors") + .ValueGeneratedOnAdd() + .HasColumnName("colors") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Flash") + .ValueGeneratedOnAdd() + .HasColumnName("flash") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Frames") + .ValueGeneratedOnAdd() + .HasColumnName("frames") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Gif87") + .ValueGeneratedOnAdd() + .HasColumnName("gif87") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Gif89") + .ValueGeneratedOnAdd() + .HasColumnName("gif89") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Jpeg") + .ValueGeneratedOnAdd() + .HasColumnName("jpeg") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Js") + .ValueGeneratedOnAdd() + .HasColumnName("js") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Os") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("os") + .HasColumnType("varchar(32)") + .HasDefaultValueSql("''") + .HasMaxLength(32); + + b.Property("Platform") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("platform") + .HasColumnType("varchar(8)") + .HasDefaultValueSql("''") + .HasMaxLength(8); + + b.Property("Png") + .ValueGeneratedOnAdd() + .HasColumnName("png") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Pngt") + .ValueGeneratedOnAdd() + .HasColumnName("pngt") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Table") + .ValueGeneratedOnAdd() + .HasColumnName("table") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("UserAgent") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("user_agent") + .HasColumnType("varchar(128)") + .HasDefaultValueSql("''") + .HasMaxLength(128); + + b.Property("Version") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("version") + .HasColumnType("varchar(16)") + .HasDefaultValueSql("''") + .HasMaxLength(16); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_browser_tests_browser"); + + b.HasIndex("Os") + .HasName("idx_browser_tests_os"); + + b.HasIndex("Platform") + .HasName("idx_browser_tests_platform"); + + b.HasIndex("UserAgent") + .HasName("idx_browser_tests_user_agent"); + + b.HasIndex("Version") + .HasName("idx_browser_tests_version"); + + b.ToTable("browser_tests"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CicmDb", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Updated") + .ValueGeneratedOnAdd() + .HasColumnName("updated") + .HasColumnType("datetime") + .HasDefaultValueSql("'CURRENT_TIMESTAMP'"); + + b.Property("Version") + .HasColumnName("version") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.ToTable("cicm_db"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByBook", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("CompanyId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("CompanyId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByBooks"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("DocumentId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByDocuments"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByMagazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("MagazineId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("MagazineId"); + + b.HasIndex("RoleId"); + + b.ToTable("CompaniesByMagazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Company", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Address") + .HasColumnName("address") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("City") + .HasColumnName("city") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("CountryId") + .HasColumnName("country") + .HasColumnType("smallint(3)"); + + b.Property("DocumentCompanyId"); + + b.Property("Facebook") + .HasColumnName("facebook") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Founded") + .HasColumnName("founded") + .HasColumnType("datetime"); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("varchar(128)") + .HasDefaultValueSql("''"); + + b.Property("PostalCode") + .HasColumnName("postal_code") + .HasColumnType("varchar(25)") + .HasMaxLength(25); + + b.Property("Province") + .HasColumnName("province") + .HasColumnType("varchar(80)") + .HasMaxLength(80); + + b.Property("Sold") + .HasColumnName("sold") + .HasColumnType("datetime"); + + b.Property("SoldToId") + .HasColumnName("sold_to") + .HasColumnType("int(11)"); + + b.Property("Status") + .HasColumnName("status") + .HasColumnType("int(11)"); + + b.Property("Twitter") + .HasColumnName("twitter") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Website") + .HasColumnName("website") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.HasKey("Id"); + + b.HasIndex("Address") + .HasName("idx_companies_address"); + + b.HasIndex("City") + .HasName("idx_companies_city"); + + b.HasIndex("CountryId") + .HasName("idx_companies_country"); + + b.HasIndex("Facebook") + .HasName("idx_companies_facebook"); + + b.HasIndex("Founded") + .HasName("idx_companies_founded"); + + b.HasIndex("Name") + .HasName("idx_companies_name"); + + b.HasIndex("PostalCode") + .HasName("idx_companies_postal_code"); + + b.HasIndex("Province") + .HasName("idx_companies_province"); + + b.HasIndex("Sold") + .HasName("idx_companies_sold"); + + b.HasIndex("SoldToId") + .HasName("idx_companies_sold_to"); + + b.HasIndex("Status") + .HasName("idx_companies_status"); + + b.HasIndex("Twitter") + .HasName("idx_companies_twitter"); + + b.HasIndex("Website") + .HasName("idx_companies_website"); + + b.ToTable("companies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyDescription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("Html") + .HasMaxLength(262144); + + b.Property("Text") + .IsRequired() + .HasMaxLength(262144); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("Text") + .HasAnnotation("MySql:FullTextIndex", true); + + b.ToTable("CompanyDescriptions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyLogo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company_id") + .HasColumnType("int(11)"); + + b.Property("Guid") + .HasColumnName("logo_guid") + .HasColumnType("char(36)"); + + b.Property("Year") + .HasColumnName("year") + .HasColumnType("int(4)"); + + b.HasKey("Id", "CompanyId", "Guid"); + + b.HasIndex("CompanyId") + .HasName("idx_company_id"); + + b.HasIndex("Guid") + .HasName("idx_guid"); + + b.HasIndex("Id") + .IsUnique() + .HasName("idx_id"); + + b.ToTable("company_logos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Document", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("NativeTitle"); + + b.Property("Published"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Published"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Documents"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentCompany", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .IsUnique(); + + b.HasIndex("Name"); + + b.ToTable("DocumentCompanies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentPerson", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Alias"); + + b.Property("DisplayName"); + + b.Property("Name") + .IsRequired(); + + b.Property("PersonId"); + + b.Property("Surname") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("Alias"); + + b.HasIndex("DisplayName"); + + b.HasIndex("Name"); + + b.HasIndex("PersonId") + .IsUnique(); + + b.HasIndex("Surname"); + + b.ToTable("DocumentPeople"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(3)"); + + b.Property("Enabled") + .ValueGeneratedOnAdd() + .HasDefaultValue(true); + + b.Property("Name"); + + b.HasKey("Id"); + + b.HasIndex("Enabled"); + + b.HasIndex("Name"); + + b.ToTable("DocumentRoles"); + + b.HasData( + new + { + Id = "abr", + Enabled = true, + Name = "Abridger" + }, + new + { + Id = "acp", + Enabled = true, + Name = "Art copyist" + }, + new + { + Id = "act", + Enabled = true, + Name = "Actor" + }, + new + { + Id = "adi", + Enabled = true, + Name = "Art director" + }, + new + { + Id = "adp", + Enabled = true, + Name = "Adapter" + }, + new + { + Id = "aft", + Enabled = true, + Name = "Author of afterword, colophon, etc." + }, + new + { + Id = "anl", + Enabled = true, + Name = "Analyst" + }, + new + { + Id = "anm", + Enabled = true, + Name = "Animator" + }, + new + { + Id = "ann", + Enabled = true, + Name = "Annotator" + }, + new + { + Id = "ant", + Enabled = true, + Name = "Bibliographic antecedent" + }, + new + { + Id = "ape", + Enabled = true, + Name = "Appellee" + }, + new + { + Id = "apl", + Enabled = true, + Name = "Appellant" + }, + new + { + Id = "app", + Enabled = true, + Name = "Applicant" + }, + new + { + Id = "aqt", + Enabled = true, + Name = "Author in quotations or text abstracts" + }, + new + { + Id = "arc", + Enabled = true, + Name = "Architect" + }, + new + { + Id = "ard", + Enabled = true, + Name = "Artistic director" + }, + new + { + Id = "arr", + Enabled = true, + Name = "Arranger" + }, + new + { + Id = "art", + Enabled = true, + Name = "Artist" + }, + new + { + Id = "asg", + Enabled = true, + Name = "Assignee" + }, + new + { + Id = "asn", + Enabled = true, + Name = "Associated name" + }, + new + { + Id = "ato", + Enabled = true, + Name = "Autographer" + }, + new + { + Id = "att", + Enabled = true, + Name = "Attributed name" + }, + new + { + Id = "auc", + Enabled = true, + Name = "Auctioneer" + }, + new + { + Id = "aud", + Enabled = true, + Name = "Author of dialog" + }, + new + { + Id = "aui", + Enabled = true, + Name = "Author of introduction, etc." + }, + new + { + Id = "aus", + Enabled = true, + Name = "Screenwriter" + }, + new + { + Id = "aut", + Enabled = true, + Name = "Author" + }, + new + { + Id = "bdd", + Enabled = true, + Name = "Binding designer" + }, + new + { + Id = "bjd", + Enabled = true, + Name = "Bookjacket designer" + }, + new + { + Id = "bkd", + Enabled = true, + Name = "Book designer" + }, + new + { + Id = "bkp", + Enabled = true, + Name = "Book producer" + }, + new + { + Id = "blw", + Enabled = true, + Name = "Blurb writer" + }, + new + { + Id = "bnd", + Enabled = true, + Name = "Binder" + }, + new + { + Id = "bpd", + Enabled = true, + Name = "Bookplate designer" + }, + new + { + Id = "brd", + Enabled = true, + Name = "Broadcaster" + }, + new + { + Id = "brl", + Enabled = true, + Name = "Braille embosser" + }, + new + { + Id = "bsl", + Enabled = true, + Name = "Bookseller" + }, + new + { + Id = "cas", + Enabled = true, + Name = "Caster" + }, + new + { + Id = "ccp", + Enabled = true, + Name = "Conceptor" + }, + new + { + Id = "chr", + Enabled = true, + Name = "Choreographer" + }, + new + { + Id = "clb", + Enabled = false, + Name = "Collaborator" + }, + new + { + Id = "cli", + Enabled = true, + Name = "Client" + }, + new + { + Id = "cll", + Enabled = true, + Name = "Calligrapher" + }, + new + { + Id = "clr", + Enabled = true, + Name = "Colorist" + }, + new + { + Id = "clt", + Enabled = true, + Name = "Collotyper" + }, + new + { + Id = "cmm", + Enabled = true, + Name = "Commentator" + }, + new + { + Id = "cmp", + Enabled = true, + Name = "Composer" + }, + new + { + Id = "cmt", + Enabled = true, + Name = "Compositor" + }, + new + { + Id = "cnd", + Enabled = true, + Name = "Conductor" + }, + new + { + Id = "cng", + Enabled = true, + Name = "Cinematographer" + }, + new + { + Id = "cns", + Enabled = true, + Name = "Censor" + }, + new + { + Id = "coe", + Enabled = true, + Name = "Contestant-appellee" + }, + new + { + Id = "col", + Enabled = true, + Name = "Collector" + }, + new + { + Id = "com", + Enabled = true, + Name = "Compiler" + }, + new + { + Id = "con", + Enabled = true, + Name = "Conservator" + }, + new + { + Id = "cor", + Enabled = true, + Name = "Collection registrar" + }, + new + { + Id = "cos", + Enabled = true, + Name = "Contestant" + }, + new + { + Id = "cot", + Enabled = true, + Name = "Contestant-appellant" + }, + new + { + Id = "cou", + Enabled = true, + Name = "Court governed" + }, + new + { + Id = "cov", + Enabled = true, + Name = "Cover designer" + }, + new + { + Id = "cpc", + Enabled = true, + Name = "Copyright claimant" + }, + new + { + Id = "cpe", + Enabled = true, + Name = "Complainant-appellee" + }, + new + { + Id = "cph", + Enabled = true, + Name = "Copyright holder" + }, + new + { + Id = "cpl", + Enabled = true, + Name = "Complainant" + }, + new + { + Id = "cpt", + Enabled = true, + Name = "Complainant-appellant" + }, + new + { + Id = "cre", + Enabled = true, + Name = "Creator" + }, + new + { + Id = "crp", + Enabled = true, + Name = "Correspondent" + }, + new + { + Id = "crr", + Enabled = true, + Name = "Corrector" + }, + new + { + Id = "crt", + Enabled = true, + Name = "Court reporter" + }, + new + { + Id = "csl", + Enabled = true, + Name = "Consultant" + }, + new + { + Id = "csp", + Enabled = true, + Name = "Consultant to a project" + }, + new + { + Id = "cst", + Enabled = true, + Name = "Costume designer" + }, + new + { + Id = "ctb", + Enabled = true, + Name = "Contributor" + }, + new + { + Id = "cte", + Enabled = true, + Name = "Contestee-appellee" + }, + new + { + Id = "ctg", + Enabled = true, + Name = "Cartographer" + }, + new + { + Id = "ctr", + Enabled = true, + Name = "Contractor" + }, + new + { + Id = "cts", + Enabled = true, + Name = "Contestee" + }, + new + { + Id = "ctt", + Enabled = true, + Name = "Contestee-appellant" + }, + new + { + Id = "cur", + Enabled = true, + Name = "Curator" + }, + new + { + Id = "cwt", + Enabled = true, + Name = "Commentator for written text" + }, + new + { + Id = "dbp", + Enabled = true, + Name = "Distribution place" + }, + new + { + Id = "dfd", + Enabled = true, + Name = "Defendant" + }, + new + { + Id = "dfe", + Enabled = true, + Name = "Defendant-appellee" + }, + new + { + Id = "dft", + Enabled = true, + Name = "Defendant-appellant" + }, + new + { + Id = "dgg", + Enabled = true, + Name = "Degree granting institution" + }, + new + { + Id = "dgs", + Enabled = true, + Name = "Degree supervisor" + }, + new + { + Id = "dis", + Enabled = true, + Name = "Dissertant" + }, + new + { + Id = "dln", + Enabled = true, + Name = "Delineator" + }, + new + { + Id = "dnc", + Enabled = true, + Name = "Dancer" + }, + new + { + Id = "dnr", + Enabled = true, + Name = "Donor" + }, + new + { + Id = "dpc", + Enabled = true, + Name = "Depicted" + }, + new + { + Id = "dpt", + Enabled = true, + Name = "Depositor" + }, + new + { + Id = "drm", + Enabled = true, + Name = "Draftsman" + }, + new + { + Id = "drt", + Enabled = true, + Name = "Director" + }, + new + { + Id = "dsr", + Enabled = true, + Name = "Designer" + }, + new + { + Id = "dst", + Enabled = true, + Name = "Distributor" + }, + new + { + Id = "dtc", + Enabled = true, + Name = "Data contributor" + }, + new + { + Id = "dte", + Enabled = true, + Name = "Dedicatee" + }, + new + { + Id = "dtm", + Enabled = true, + Name = "Data manager" + }, + new + { + Id = "dto", + Enabled = true, + Name = "Dedicator" + }, + new + { + Id = "dub", + Enabled = true, + Name = "Dubious author" + }, + new + { + Id = "edc", + Enabled = true, + Name = "Editor of compilation" + }, + new + { + Id = "edm", + Enabled = true, + Name = "Editor of moving image work" + }, + new + { + Id = "edt", + Enabled = true, + Name = "Editor" + }, + new + { + Id = "egr", + Enabled = true, + Name = "Engraver" + }, + new + { + Id = "elg", + Enabled = true, + Name = "Electrician" + }, + new + { + Id = "elt", + Enabled = true, + Name = "Electrotyper" + }, + new + { + Id = "eng", + Enabled = true, + Name = "Engineer" + }, + new + { + Id = "enj", + Enabled = true, + Name = "Enacting jurisdiction" + }, + new + { + Id = "etr", + Enabled = true, + Name = "Etcher" + }, + new + { + Id = "evp", + Enabled = true, + Name = "Event place" + }, + new + { + Id = "exp", + Enabled = true, + Name = "Expert" + }, + new + { + Id = "fac", + Enabled = true, + Name = "Facsimilist" + }, + new + { + Id = "fds", + Enabled = true, + Name = "Film distributor" + }, + new + { + Id = "fld", + Enabled = true, + Name = "Field director" + }, + new + { + Id = "flm", + Enabled = true, + Name = "Film editor" + }, + new + { + Id = "fmd", + Enabled = true, + Name = "Film director" + }, + new + { + Id = "fmk", + Enabled = true, + Name = "Filmmaker" + }, + new + { + Id = "fmo", + Enabled = true, + Name = "Former owner" + }, + new + { + Id = "fmp", + Enabled = true, + Name = "Film producer" + }, + new + { + Id = "fnd", + Enabled = true, + Name = "Funder" + }, + new + { + Id = "fpy", + Enabled = true, + Name = "First party" + }, + new + { + Id = "frg", + Enabled = true, + Name = "Forger" + }, + new + { + Id = "gis", + Enabled = true, + Name = "Geographic information specialist" + }, + new + { + Id = "grt", + Enabled = false, + Name = "Graphic technician" + }, + new + { + Id = "his", + Enabled = true, + Name = "Host institution" + }, + new + { + Id = "hnr", + Enabled = true, + Name = "Honoree" + }, + new + { + Id = "hst", + Enabled = true, + Name = "Host" + }, + new + { + Id = "ill", + Enabled = true, + Name = "Illustrator" + }, + new + { + Id = "ilu", + Enabled = true, + Name = "Illuminator" + }, + new + { + Id = "ins", + Enabled = true, + Name = "Inscriber" + }, + new + { + Id = "inv", + Enabled = true, + Name = "Inventor" + }, + new + { + Id = "isb", + Enabled = true, + Name = "Issuing body" + }, + new + { + Id = "itr", + Enabled = true, + Name = "Instrumentalist" + }, + new + { + Id = "ive", + Enabled = true, + Name = "Interviewee" + }, + new + { + Id = "ivr", + Enabled = true, + Name = "Interviewer" + }, + new + { + Id = "jud", + Enabled = true, + Name = "Judge" + }, + new + { + Id = "jug", + Enabled = true, + Name = "Jurisdiction governed" + }, + new + { + Id = "lbr", + Enabled = true, + Name = "Laboratory" + }, + new + { + Id = "lbt", + Enabled = true, + Name = "Librettist" + }, + new + { + Id = "ldr", + Enabled = true, + Name = "Laboratory director" + }, + new + { + Id = "led", + Enabled = true, + Name = "Lead" + }, + new + { + Id = "lee", + Enabled = true, + Name = "Libelee-appellee" + }, + new + { + Id = "lel", + Enabled = true, + Name = "Libelee" + }, + new + { + Id = "len", + Enabled = true, + Name = "Lender" + }, + new + { + Id = "let", + Enabled = true, + Name = "Libelee-appellant" + }, + new + { + Id = "lgd", + Enabled = true, + Name = "Lighting designer" + }, + new + { + Id = "lie", + Enabled = true, + Name = "Libelant-appellee" + }, + new + { + Id = "lil", + Enabled = true, + Name = "Libelant" + }, + new + { + Id = "lit", + Enabled = true, + Name = "Libelant-appellant" + }, + new + { + Id = "lsa", + Enabled = true, + Name = "Landscape architect" + }, + new + { + Id = "lse", + Enabled = true, + Name = "Licensee" + }, + new + { + Id = "lso", + Enabled = true, + Name = "Licensor" + }, + new + { + Id = "ltg", + Enabled = true, + Name = "Lithographer" + }, + new + { + Id = "lyr", + Enabled = true, + Name = "Lyricist" + }, + new + { + Id = "mcp", + Enabled = true, + Name = "Music copyist" + }, + new + { + Id = "mdc", + Enabled = true, + Name = "Metadata contact" + }, + new + { + Id = "med", + Enabled = true, + Name = "Medium" + }, + new + { + Id = "mfp", + Enabled = true, + Name = "Manufacture place" + }, + new + { + Id = "mfr", + Enabled = true, + Name = "Manufacturer" + }, + new + { + Id = "mod", + Enabled = true, + Name = "Moderator" + }, + new + { + Id = "mon", + Enabled = true, + Name = "Monitor" + }, + new + { + Id = "mrb", + Enabled = true, + Name = "Marbler" + }, + new + { + Id = "mrk", + Enabled = true, + Name = "Markup editor" + }, + new + { + Id = "msd", + Enabled = true, + Name = "Musical director" + }, + new + { + Id = "mte", + Enabled = true, + Name = "Metal-engraver" + }, + new + { + Id = "mtk", + Enabled = true, + Name = "Minute taker" + }, + new + { + Id = "mus", + Enabled = true, + Name = "Musician" + }, + new + { + Id = "nrt", + Enabled = true, + Name = "Narrator" + }, + new + { + Id = "opn", + Enabled = true, + Name = "Opponent" + }, + new + { + Id = "org", + Enabled = true, + Name = "Originator" + }, + new + { + Id = "orm", + Enabled = true, + Name = "Organizer" + }, + new + { + Id = "osp", + Enabled = true, + Name = "Onscreen presenter" + }, + new + { + Id = "oth", + Enabled = true, + Name = "Other" + }, + new + { + Id = "own", + Enabled = true, + Name = "Owner" + }, + new + { + Id = "pan", + Enabled = true, + Name = "Panelist" + }, + new + { + Id = "pat", + Enabled = true, + Name = "Patron" + }, + new + { + Id = "pbd", + Enabled = true, + Name = "Publishing director" + }, + new + { + Id = "pbl", + Enabled = true, + Name = "Publisher" + }, + new + { + Id = "pdr", + Enabled = true, + Name = "Project director" + }, + new + { + Id = "pfr", + Enabled = true, + Name = "Proofreader" + }, + new + { + Id = "pht", + Enabled = true, + Name = "Photographer" + }, + new + { + Id = "plt", + Enabled = true, + Name = "Platemaker" + }, + new + { + Id = "pma", + Enabled = true, + Name = "Permitting agency" + }, + new + { + Id = "pmn", + Enabled = true, + Name = "Production manager" + }, + new + { + Id = "pop", + Enabled = true, + Name = "Printer of plates" + }, + new + { + Id = "ppm", + Enabled = true, + Name = "Papermaker" + }, + new + { + Id = "ppt", + Enabled = true, + Name = "Puppeteer" + }, + new + { + Id = "pra", + Enabled = true, + Name = "Praeses" + }, + new + { + Id = "prc", + Enabled = true, + Name = "Process contact" + }, + new + { + Id = "prd", + Enabled = true, + Name = "Production personnel" + }, + new + { + Id = "pre", + Enabled = true, + Name = "Presenter" + }, + new + { + Id = "prf", + Enabled = true, + Name = "Performer" + }, + new + { + Id = "prg", + Enabled = true, + Name = "Programmer" + }, + new + { + Id = "prm", + Enabled = true, + Name = "Printmaker" + }, + new + { + Id = "prn", + Enabled = true, + Name = "Production company" + }, + new + { + Id = "pro", + Enabled = true, + Name = "Producer" + }, + new + { + Id = "prp", + Enabled = true, + Name = "Production place" + }, + new + { + Id = "prs", + Enabled = true, + Name = "Production designer" + }, + new + { + Id = "prt", + Enabled = true, + Name = "Printer" + }, + new + { + Id = "prv", + Enabled = true, + Name = "Provider" + }, + new + { + Id = "pta", + Enabled = true, + Name = "Patent applicant" + }, + new + { + Id = "pte", + Enabled = true, + Name = "Plaintiff-appellee" + }, + new + { + Id = "ptf", + Enabled = true, + Name = "Plaintiff" + }, + new + { + Id = "pth", + Enabled = true, + Name = "Patent holder" + }, + new + { + Id = "ptt", + Enabled = true, + Name = "Plaintiff-appellant" + }, + new + { + Id = "pup", + Enabled = true, + Name = "Publication place" + }, + new + { + Id = "rbr", + Enabled = true, + Name = "Rubricator" + }, + new + { + Id = "rcd", + Enabled = true, + Name = "Recordist" + }, + new + { + Id = "rce", + Enabled = true, + Name = "Recording engineer" + }, + new + { + Id = "rcp", + Enabled = true, + Name = "Addressee" + }, + new + { + Id = "rdd", + Enabled = true, + Name = "Radio director" + }, + new + { + Id = "red", + Enabled = true, + Name = "Redaktor" + }, + new + { + Id = "ren", + Enabled = true, + Name = "Renderer" + }, + new + { + Id = "res", + Enabled = true, + Name = "Researcher" + }, + new + { + Id = "rev", + Enabled = true, + Name = "Reviewer" + }, + new + { + Id = "rpc", + Enabled = true, + Name = "Radio producer" + }, + new + { + Id = "rps", + Enabled = true, + Name = "Repository" + }, + new + { + Id = "rpt", + Enabled = true, + Name = "Reporter" + }, + new + { + Id = "rpy", + Enabled = true, + Name = "Responsible party" + }, + new + { + Id = "rse", + Enabled = true, + Name = "Respondent-appellee" + }, + new + { + Id = "rsg", + Enabled = true, + Name = "Restager" + }, + new + { + Id = "rsp", + Enabled = true, + Name = "Respondent" + }, + new + { + Id = "rsr", + Enabled = true, + Name = "Restorationist" + }, + new + { + Id = "rst", + Enabled = true, + Name = "Respondent-appellant" + }, + new + { + Id = "rth", + Enabled = true, + Name = "Research team head" + }, + new + { + Id = "rtm", + Enabled = true, + Name = "Research team member" + }, + new + { + Id = "sad", + Enabled = true, + Name = "Scientific advisor" + }, + new + { + Id = "sce", + Enabled = true, + Name = "Scenarist" + }, + new + { + Id = "scl", + Enabled = true, + Name = "Sculptor" + }, + new + { + Id = "scr", + Enabled = true, + Name = "Scribe" + }, + new + { + Id = "sds", + Enabled = true, + Name = "Sound designer" + }, + new + { + Id = "sec", + Enabled = true, + Name = "Secretary" + }, + new + { + Id = "sgd", + Enabled = true, + Name = "Stage director" + }, + new + { + Id = "sgn", + Enabled = true, + Name = "Signer" + }, + new + { + Id = "sht", + Enabled = true, + Name = "Supporting host" + }, + new + { + Id = "sll", + Enabled = true, + Name = "Seller" + }, + new + { + Id = "sng", + Enabled = true, + Name = "Singer" + }, + new + { + Id = "spk", + Enabled = true, + Name = "Speaker" + }, + new + { + Id = "spn", + Enabled = true, + Name = "Sponsor" + }, + new + { + Id = "spy", + Enabled = true, + Name = "Second party" + }, + new + { + Id = "srv", + Enabled = true, + Name = "Surveyor" + }, + new + { + Id = "std", + Enabled = true, + Name = "Set designer" + }, + new + { + Id = "stg", + Enabled = true, + Name = "Setting" + }, + new + { + Id = "stl", + Enabled = true, + Name = "Storyteller" + }, + new + { + Id = "stm", + Enabled = true, + Name = "Stage manager" + }, + new + { + Id = "stn", + Enabled = true, + Name = "Standards body" + }, + new + { + Id = "str", + Enabled = true, + Name = "Stereotyper" + }, + new + { + Id = "tcd", + Enabled = true, + Name = "Technical director" + }, + new + { + Id = "tch", + Enabled = true, + Name = "Teacher" + }, + new + { + Id = "ths", + Enabled = true, + Name = "Thesis advisor" + }, + new + { + Id = "tld", + Enabled = true, + Name = "Television director" + }, + new + { + Id = "tlp", + Enabled = true, + Name = "Television producer" + }, + new + { + Id = "trc", + Enabled = true, + Name = "Transcriber" + }, + new + { + Id = "trl", + Enabled = true, + Name = "Translator" + }, + new + { + Id = "tyd", + Enabled = true, + Name = "Type designer" + }, + new + { + Id = "tyg", + Enabled = true, + Name = "Typographer" + }, + new + { + Id = "uvp", + Enabled = true, + Name = "University place" + }, + new + { + Id = "vac", + Enabled = true, + Name = "Voice actor" + }, + new + { + Id = "vdg", + Enabled = true, + Name = "Videographer" + }, + new + { + Id = "voc", + Enabled = false, + Name = "Vocalist" + }, + new + { + Id = "wac", + Enabled = true, + Name = "Writer of added commentary" + }, + new + { + Id = "wal", + Enabled = true, + Name = "Writer of added lyrics" + }, + new + { + Id = "wam", + Enabled = true, + Name = "Writer of accompanying material" + }, + new + { + Id = "wat", + Enabled = true, + Name = "Writer of added text" + }, + new + { + Id = "wdc", + Enabled = true, + Name = "Woodcutter" + }, + new + { + Id = "wde", + Enabled = true, + Name = "Wood engraver" + }, + new + { + Id = "win", + Enabled = true, + Name = "Writer of introduction" + }, + new + { + Id = "wit", + Enabled = true, + Name = "Witness" + }, + new + { + Id = "wpr", + Enabled = true, + Name = "Writer of preface" + }, + new + { + Id = "wst", + Enabled = true, + Name = "Writer of supplementary textual content" + }); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("MachineId"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("MachineId"); + + b.ToTable("DocumentsByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("MachineFamilyId"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("MachineFamilyId"); + + b.ToTable("DocumentsByMachineFamily"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Forbidden", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Date") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("date") + .HasColumnType("char(20)") + .HasDefaultValueSql("''"); + + b.Property("Ip") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("ip") + .HasColumnType("char(16)") + .HasDefaultValueSql("''"); + + b.Property("Referer") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("referer") + .HasColumnType("char(255)") + .HasDefaultValueSql("''"); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_forbidden_browser"); + + b.HasIndex("Date") + .HasName("idx_forbidden_date"); + + b.HasIndex("Ip") + .HasName("idx_forbidden_ip"); + + b.HasIndex("Referer") + .HasName("idx_forbidden_referer"); + + b.ToTable("forbidden"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Gpu", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("DieSize") + .HasColumnName("die_size"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(128)") + .HasDefaultValueSql("''") + .HasMaxLength(128); + + b.Property("Package") + .HasColumnName("package") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Process") + .HasColumnName("process") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("ProcessNm") + .HasColumnName("process_nm"); + + b.Property("Transistors") + .HasColumnName("transistors") + .HasColumnType("bigint(20)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_gpus_company"); + + b.HasIndex("DieSize") + .HasName("idx_gpus_die_size"); + + b.HasIndex("Introduced") + .HasName("idx_gpus_introduced"); + + b.HasIndex("ModelCode") + .HasName("idx_gpus_model_code"); + + b.HasIndex("Name") + .HasName("idx_gpus_name"); + + b.HasIndex("Package") + .HasName("idx_gpus_package"); + + b.HasIndex("Process") + .HasName("idx_gpus_process"); + + b.HasIndex("ProcessNm") + .HasName("idx_gpus_process_nm"); + + b.HasIndex("Transistors") + .HasName("idx_gpus_transistors"); + + b.ToTable("gpus"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("GpuId") + .HasColumnName("gpu") + .HasColumnType("int(11)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("GpuId") + .HasName("idx_gpus_by_machine_gpus"); + + b.HasIndex("MachineId") + .HasName("idx_gpus_by_machine_machine"); + + b.ToTable("gpus_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("GpuId"); + + b.Property("OwnedMachineId"); + + b.HasKey("Id"); + + b.HasIndex("GpuId"); + + b.HasIndex("OwnedMachineId"); + + b.ToTable("GpusByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSet", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("instruction_set") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.HasKey("Id"); + + b.ToTable("instruction_sets"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtension", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Extension") + .IsRequired() + .HasColumnName("extension") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.HasKey("Id"); + + b.ToTable("instruction_set_extensions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtensionsByProcessor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("ProcessorId") + .HasColumnName("processor_id") + .HasColumnType("int(11)"); + + b.Property("ExtensionId") + .HasColumnName("extension_id") + .HasColumnType("int(11)"); + + b.HasKey("Id", "ProcessorId", "ExtensionId"); + + b.HasIndex("ExtensionId") + .HasName("idx_setextension_extension"); + + b.HasIndex("ProcessorId") + .HasName("idx_setextension_processor"); + + b.ToTable("instruction_set_extensions_by_processor"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Iso31661Numeric", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("smallint(3)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(64)") + .HasMaxLength(64); + + b.HasKey("Id"); + + b.HasIndex("Name") + .HasName("idx_name"); + + b.ToTable("iso3166_1_numeric"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Iso639", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(3)"); + + b.Property("Comment") + .HasColumnType("varchar(150)"); + + b.Property("Part1") + .HasColumnType("char(2)"); + + b.Property("Part2B") + .HasColumnType("char(3)"); + + b.Property("Part2T") + .HasColumnType("char(3)"); + + b.Property("ReferenceName") + .IsRequired() + .HasColumnName("Ref_Name") + .HasColumnType("varchar(150)"); + + b.Property("Scope") + .IsRequired() + .HasColumnType("char(1)"); + + b.Property("Type") + .IsRequired() + .HasColumnType("char(1)"); + + b.HasKey("Id"); + + b.HasIndex("Comment"); + + b.HasIndex("Part1"); + + b.HasIndex("Part2B"); + + b.HasIndex("Part2T"); + + b.HasIndex("ReferenceName"); + + b.HasIndex("Scope"); + + b.HasIndex("Type"); + + b.ToTable("ISO_639-3"); + }); + + modelBuilder.Entity("Cicm.Database.Models.License", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FsfApproved"); + + b.Property("Link") + .HasMaxLength(512); + + b.Property("Name") + .IsRequired(); + + b.Property("OsiApproved"); + + b.Property("SPDX"); + + b.Property("Text") + .HasColumnType("longtext") + .HasMaxLength(131072); + + b.HasKey("Id"); + + b.HasIndex("FsfApproved"); + + b.HasIndex("Name"); + + b.HasIndex("OsiApproved"); + + b.HasIndex("SPDX"); + + b.ToTable("Licenses"); + + b.HasData( + new + { + Id = 1, + FsfApproved = false, + Name = "Fair use", + OsiApproved = false + }, + new + { + Id = 2, + FsfApproved = false, + Name = "Advertisement use", + OsiApproved = false + }, + new + { + Id = 3, + FsfApproved = false, + Name = "All rights reserved", + OsiApproved = false + }, + new + { + Id = 4, + FsfApproved = false, + Link = "https://spdx.org/licenses/0BSD.html#licenseText", + Name = "BSD Zero Clause License", + OsiApproved = true, + SPDX = "0BSD" + }, + new + { + Id = 5, + FsfApproved = false, + Link = "https://spdx.org/licenses/AAL.html#licenseText", + Name = "Attribution Assurance License", + OsiApproved = true, + SPDX = "AAL" + }, + new + { + Id = 6, + FsfApproved = false, + Link = "https://spdx.org/licenses/Abstyles.html#licenseText", + Name = "Abstyles License", + OsiApproved = false, + SPDX = "Abstyles" + }, + new + { + Id = 7, + FsfApproved = false, + Link = "https://spdx.org/licenses/Adobe-2006.html#licenseText", + Name = "Adobe Systems Incorporated Source Code License Agreement", + OsiApproved = false, + SPDX = "Adobe-2006" + }, + new + { + Id = 8, + FsfApproved = false, + Link = "https://spdx.org/licenses/Adobe-Glyph.html#licenseText", + Name = "Adobe Glyph List License", + OsiApproved = false, + SPDX = "Adobe-Glyph" + }, + new + { + Id = 9, + FsfApproved = false, + Link = "https://spdx.org/licenses/ADSL.html#licenseText", + Name = "Amazon Digital Services License", + OsiApproved = false, + SPDX = "ADSL" + }, + new + { + Id = 10, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-1.1.html#licenseText", + Name = "Academic Free License v1.1", + OsiApproved = true, + SPDX = "AFL-1.1" + }, + new + { + Id = 11, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-1.2.html#licenseText", + Name = "Academic Free License v1.2", + OsiApproved = true, + SPDX = "AFL-1.2" + }, + new + { + Id = 12, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-2.0.html#licenseText", + Name = "Academic Free License v2.0", + OsiApproved = true, + SPDX = "AFL-2.0" + }, + new + { + Id = 13, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-2.1.html#licenseText", + Name = "Academic Free License v2.1", + OsiApproved = true, + SPDX = "AFL-2.1" + }, + new + { + Id = 14, + FsfApproved = true, + Link = "https://spdx.org/licenses/AFL-3.0.html#licenseText", + Name = "Academic Free License v3.0", + OsiApproved = true, + SPDX = "AFL-3.0" + }, + new + { + Id = 15, + FsfApproved = false, + Link = "https://spdx.org/licenses/Afmparse.html#licenseText", + Name = "Afmparse License", + OsiApproved = false, + SPDX = "Afmparse" + }, + new + { + Id = 16, + FsfApproved = false, + Link = "https://spdx.org/licenses/AGPL-1.0-only.html#licenseText", + Name = "Affero General Public License v1.0 only", + OsiApproved = false, + SPDX = "AGPL-1.0-only" + }, + new + { + Id = 17, + FsfApproved = false, + Link = "https://spdx.org/licenses/AGPL-1.0-or-later.html#licenseText", + Name = "Affero General Public License v1.0 or later", + OsiApproved = false, + SPDX = "AGPL-1.0-or-later" + }, + new + { + Id = 18, + FsfApproved = true, + Link = "https://spdx.org/licenses/AGPL-3.0-only.html#licenseText", + Name = "GNU Affero General Public License v3.0 only", + OsiApproved = true, + SPDX = "AGPL-3.0-only" + }, + new + { + Id = 19, + FsfApproved = true, + Link = "https://spdx.org/licenses/AGPL-3.0-or-later.html#licenseText", + Name = "GNU Affero General Public License v3.0 or later", + OsiApproved = true, + SPDX = "AGPL-3.0-or-later" + }, + new + { + Id = 20, + FsfApproved = false, + Link = "https://spdx.org/licenses/Aladdin.html#licenseText", + Name = "Aladdin Free Public License", + OsiApproved = false, + SPDX = "Aladdin" + }, + new + { + Id = 21, + FsfApproved = false, + Link = "https://spdx.org/licenses/AMDPLPA.html#licenseText", + Name = "AMD's plpa_map.c License", + OsiApproved = false, + SPDX = "AMDPLPA" + }, + new + { + Id = 22, + FsfApproved = false, + Link = "https://spdx.org/licenses/AML.html#licenseText", + Name = "Apple MIT License", + OsiApproved = false, + SPDX = "AML" + }, + new + { + Id = 23, + FsfApproved = false, + Link = "https://spdx.org/licenses/AMPAS.html#licenseText", + Name = "Academy of Motion Picture Arts and Sciences BSD", + OsiApproved = false, + SPDX = "AMPAS" + }, + new + { + Id = 24, + FsfApproved = false, + Link = "https://spdx.org/licenses/ANTLR-PD.html#licenseText", + Name = "ANTLR Software Rights Notice", + OsiApproved = false, + SPDX = "ANTLR-PD" + }, + new + { + Id = 25, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-1.0.html#licenseText", + Name = "Apache License 1.0", + OsiApproved = false, + SPDX = "Apache-1.0" + }, + new + { + Id = 26, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-1.1.html#licenseText", + Name = "Apache License 1.1", + OsiApproved = true, + SPDX = "Apache-1.1" + }, + new + { + Id = 27, + FsfApproved = true, + Link = "https://spdx.org/licenses/Apache-2.0.html#licenseText", + Name = "Apache License 2.0", + OsiApproved = true, + SPDX = "Apache-2.0" + }, + new + { + Id = 28, + FsfApproved = false, + Link = "https://spdx.org/licenses/APAFML.html#licenseText", + Name = "Adobe Postscript AFM License", + OsiApproved = false, + SPDX = "APAFML" + }, + new + { + Id = 29, + FsfApproved = false, + Link = "https://spdx.org/licenses/APL-1.0.html#licenseText", + Name = "Adaptive Public License 1.0", + OsiApproved = true, + SPDX = "APL-1.0" + }, + new + { + Id = 30, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.0.html#licenseText", + Name = "Apple Public Source License 1.0", + OsiApproved = true, + SPDX = "APSL-1.0" + }, + new + { + Id = 31, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.1.html#licenseText", + Name = "Apple Public Source License 1.1", + OsiApproved = true, + SPDX = "APSL-1.1" + }, + new + { + Id = 32, + FsfApproved = false, + Link = "https://spdx.org/licenses/APSL-1.2.html#licenseText", + Name = "Apple Public Source License 1.2", + OsiApproved = true, + SPDX = "APSL-1.2" + }, + new + { + Id = 33, + FsfApproved = true, + Link = "https://spdx.org/licenses/APSL-2.0.html#licenseText", + Name = "Apple Public Source License 2.0", + OsiApproved = true, + SPDX = "APSL-2.0" + }, + new + { + Id = 34, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0.html#licenseText", + Name = "Artistic License 1.0", + OsiApproved = true, + SPDX = "Artistic-1.0" + }, + new + { + Id = 35, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0-cl8.html#licenseText", + Name = "Artistic License 1.0 w/clause 8", + OsiApproved = true, + SPDX = "Artistic-1.0-cl8" + }, + new + { + Id = 36, + FsfApproved = false, + Link = "https://spdx.org/licenses/Artistic-1.0-Perl.html#licenseText", + Name = "Artistic License 1.0 (Perl)", + OsiApproved = true, + SPDX = "Artistic-1.0-Perl" + }, + new + { + Id = 37, + FsfApproved = true, + Link = "https://spdx.org/licenses/Artistic-2.0.html#licenseText", + Name = "Artistic License 2.0", + OsiApproved = true, + SPDX = "Artistic-2.0" + }, + new + { + Id = 38, + FsfApproved = false, + Link = "https://spdx.org/licenses/Bahyph.html#licenseText", + Name = "Bahyph License", + OsiApproved = false, + SPDX = "Bahyph" + }, + new + { + Id = 39, + FsfApproved = false, + Link = "https://spdx.org/licenses/Barr.html#licenseText", + Name = "Barr License", + OsiApproved = false, + SPDX = "Barr" + }, + new + { + Id = 40, + FsfApproved = false, + Link = "https://spdx.org/licenses/Beerware.html#licenseText", + Name = "Beerware License", + OsiApproved = false, + SPDX = "Beerware" + }, + new + { + Id = 41, + FsfApproved = false, + Link = "https://spdx.org/licenses/BitTorrent-1.0.html#licenseText", + Name = "BitTorrent Open Source License v1.0", + OsiApproved = false, + SPDX = "BitTorrent-1.0" + }, + new + { + Id = 42, + FsfApproved = true, + Link = "https://spdx.org/licenses/BitTorrent-1.1.html#licenseText", + Name = "BitTorrent Open Source License v1.1", + OsiApproved = false, + SPDX = "BitTorrent-1.1" + }, + new + { + Id = 43, + FsfApproved = false, + Link = "https://spdx.org/licenses/Borceux.html#licenseText", + Name = "Borceux license", + OsiApproved = false, + SPDX = "Borceux" + }, + new + { + Id = 44, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-1-Clause.html#licenseText", + Name = "BSD 1-Clause License", + OsiApproved = false, + SPDX = "BSD-1-Clause" + }, + new + { + Id = 45, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause.html#licenseText", + Name = "BSD 2-Clause \"Simplified\" License", + OsiApproved = true, + SPDX = "BSD-2-Clause" + }, + new + { + Id = 46, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-2-Clause-FreeBSD.html#licenseText", + Name = "BSD 2-Clause FreeBSD License", + OsiApproved = false, + SPDX = "BSD-2-Clause-FreeBSD" + }, + new + { + Id = 47, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause-NetBSD.html#licenseText", + Name = "BSD 2-Clause NetBSD License", + OsiApproved = false, + SPDX = "BSD-2-Clause-NetBSD" + }, + new + { + Id = 48, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-2-Clause-Patent.html#licenseText", + Name = "BSD-2-Clause Plus Patent License", + OsiApproved = true, + SPDX = "BSD-2-Clause-Patent" + }, + new + { + Id = 49, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-3-Clause.html#licenseText", + Name = "BSD 3-Clause \"New\" or \"Revised\" License", + OsiApproved = true, + SPDX = "BSD-3-Clause" + }, + new + { + Id = 50, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-Attribution.html#licenseText", + Name = "BSD with attribution", + OsiApproved = false, + SPDX = "BSD-3-Clause-Attribution" + }, + new + { + Id = 51, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-3-Clause-Clear.html#licenseText", + Name = "BSD 3-Clause Clear License", + OsiApproved = false, + SPDX = "BSD-3-Clause-Clear" + }, + new + { + Id = 52, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-LBNL.html#licenseText", + Name = "Lawrence Berkeley National Labs BSD variant license", + OsiApproved = false, + SPDX = "BSD-3-Clause-LBNL" + }, + new + { + Id = 53, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.html#licenseText", + Name = "BSD 3-Clause No Nuclear License", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-License" + }, + new + { + Id = 54, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License-2014.html#licenseText", + Name = "BSD 3-Clause No Nuclear License 2014", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-License-2014" + }, + new + { + Id = 55, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.html#licenseText", + Name = "BSD 3-Clause No Nuclear Warranty", + OsiApproved = false, + SPDX = "BSD-3-Clause-No-Nuclear-Warranty" + }, + new + { + Id = 56, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSD-4-Clause.html#licenseText", + Name = "BSD 4-Clause \"Original\" or \"Old\" License", + OsiApproved = false, + SPDX = "BSD-4-Clause" + }, + new + { + Id = 57, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-4-Clause-UC.html#licenseText", + Name = "BSD-4-Clause (University of California-Specific)", + OsiApproved = false, + SPDX = "BSD-4-Clause-UC" + }, + new + { + Id = 58, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-Protection.html#licenseText", + Name = "BSD Protection License", + OsiApproved = false, + SPDX = "BSD-Protection" + }, + new + { + Id = 59, + FsfApproved = false, + Link = "https://spdx.org/licenses/BSD-Source-Code.html#licenseText", + Name = "BSD Source Code Attribution", + OsiApproved = false, + SPDX = "BSD-Source-Code" + }, + new + { + Id = 60, + FsfApproved = true, + Link = "https://spdx.org/licenses/BSL-1.0.html#licenseText", + Name = "Boost Software License 1.0", + OsiApproved = true, + SPDX = "BSL-1.0" + }, + new + { + Id = 61, + FsfApproved = false, + Link = "https://spdx.org/licenses/bzip2-1.0.5.html#licenseText", + Name = "bzip2 and libbzip2 License v1.0.5", + OsiApproved = false, + SPDX = "bzip2-1.0.5" + }, + new + { + Id = 62, + FsfApproved = false, + Link = "https://spdx.org/licenses/bzip2-1.0.6.html#licenseText", + Name = "bzip2 and libbzip2 License v1.0.6", + OsiApproved = false, + SPDX = "bzip2-1.0.6" + }, + new + { + Id = 63, + FsfApproved = false, + Link = "https://spdx.org/licenses/Caldera.html#licenseText", + Name = "Caldera License", + OsiApproved = false, + SPDX = "Caldera" + }, + new + { + Id = 64, + FsfApproved = false, + Link = "https://spdx.org/licenses/CATOSL-1.1.html#licenseText", + Name = "Computer Associates Trusted Open Source License 1.1", + OsiApproved = true, + SPDX = "CATOSL-1.1" + }, + new + { + Id = 65, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-1.0.html#licenseText", + Name = "Creative Commons Attribution 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-1.0" + }, + new + { + Id = 66, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-2.0.html#licenseText", + Name = "Creative Commons Attribution 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-2.0" + }, + new + { + Id = 67, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-2.5.html#licenseText", + Name = "Creative Commons Attribution 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-2.5" + }, + new + { + Id = 68, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-3.0.html#licenseText", + Name = "Creative Commons Attribution 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-3.0" + }, + new + { + Id = 69, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC-BY-4.0.html#licenseText", + Name = "Creative Commons Attribution 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-4.0" + }, + new + { + Id = 70, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-1.0" + }, + new + { + Id = 71, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-2.0" + }, + new + { + Id = 72, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-2.5" + }, + new + { + Id = 73, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-3.0" + }, + new + { + Id = 74, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-4.0" + }, + new + { + Id = 75, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-1.0" + }, + new + { + Id = 76, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-2.0" + }, + new + { + Id = 77, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-2.5" + }, + new + { + Id = 78, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-3.0" + }, + new + { + Id = 79, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-ND-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial No Derivatives 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-ND-4.0" + }, + new + { + Id = 80, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-1.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-1.0" + }, + new + { + Id = 81, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-2.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-2.0" + }, + new + { + Id = 82, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-2.5.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-2.5" + }, + new + { + Id = 83, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-3.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-3.0" + }, + new + { + Id = 84, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-NC-SA-4.0.html#licenseText", + Name = "Creative Commons Attribution Non Commercial Share Alike 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-NC-SA-4.0" + }, + new + { + Id = 85, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-1.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-1.0" + }, + new + { + Id = 86, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-2.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-2.0" + }, + new + { + Id = 87, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-2.5.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-ND-2.5" + }, + new + { + Id = 88, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-3.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-ND-3.0" + }, + new + { + Id = 89, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-ND-4.0.html#licenseText", + Name = "Creative Commons Attribution No Derivatives 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-ND-4.0" + }, + new + { + Id = 90, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-1.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 1.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-1.0" + }, + new + { + Id = 91, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-2.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 2.0 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-2.0" + }, + new + { + Id = 92, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-2.5.html#licenseText", + Name = "Creative Commons Attribution Share Alike 2.5 Generic", + OsiApproved = false, + SPDX = "CC-BY-SA-2.5" + }, + new + { + Id = 93, + FsfApproved = false, + Link = "https://spdx.org/licenses/CC-BY-SA-3.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 3.0 Unported", + OsiApproved = false, + SPDX = "CC-BY-SA-3.0" + }, + new + { + Id = 94, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC-BY-SA-4.0.html#licenseText", + Name = "Creative Commons Attribution Share Alike 4.0 International", + OsiApproved = false, + SPDX = "CC-BY-SA-4.0" + }, + new + { + Id = 95, + FsfApproved = true, + Link = "https://spdx.org/licenses/CC0-1.0.html#licenseText", + Name = "Creative Commons Zero v1.0 Universal", + OsiApproved = false, + SPDX = "CC0-1.0" + }, + new + { + Id = 96, + FsfApproved = true, + Link = "https://spdx.org/licenses/CDDL-1.0.html#licenseText", + Name = "Common Development and Distribution License 1.0", + OsiApproved = true, + SPDX = "CDDL-1.0" + }, + new + { + Id = 97, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDDL-1.1.html#licenseText", + Name = "Common Development and Distribution License 1.1", + OsiApproved = false, + SPDX = "CDDL-1.1" + }, + new + { + Id = 98, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDLA-Permissive-1.0.html#licenseText", + Name = "Community Data License Agreement Permissive 1.0", + OsiApproved = false, + SPDX = "CDLA-Permissive-1.0" + }, + new + { + Id = 99, + FsfApproved = false, + Link = "https://spdx.org/licenses/CDLA-Sharing-1.0.html#licenseText", + Name = "Community Data License Agreement Sharing 1.0", + OsiApproved = false, + SPDX = "CDLA-Sharing-1.0" + }, + new + { + Id = 100, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-1.0.html#licenseText", + Name = "CeCILL Free Software License Agreement v1.0", + OsiApproved = false, + SPDX = "CECILL-1.0" + }, + new + { + Id = 101, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-1.1.html#licenseText", + Name = "CeCILL Free Software License Agreement v1.1", + OsiApproved = false, + SPDX = "CECILL-1.1" + }, + new + { + Id = 102, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-2.0.html#licenseText", + Name = "CeCILL Free Software License Agreement v2.0", + OsiApproved = false, + SPDX = "CECILL-2.0" + }, + new + { + Id = 103, + FsfApproved = false, + Link = "https://spdx.org/licenses/CECILL-2.1.html#licenseText", + Name = "CeCILL Free Software License Agreement v2.1", + OsiApproved = true, + SPDX = "CECILL-2.1" + }, + new + { + Id = 104, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-B.html#licenseText", + Name = "CeCILL-B Free Software License Agreement", + OsiApproved = false, + SPDX = "CECILL-B" + }, + new + { + Id = 105, + FsfApproved = true, + Link = "https://spdx.org/licenses/CECILL-C.html#licenseText", + Name = "CeCILL-C Free Software License Agreement", + OsiApproved = false, + SPDX = "CECILL-C" + }, + new + { + Id = 106, + FsfApproved = false, + Link = "https://spdx.org/licenses/CERN-OHL-1.1.html#licenseText", + Name = "CERN Open Hardware License v1.1", + OsiApproved = false, + SPDX = "CERN-OHL-1.1" + }, + new + { + Id = 107, + FsfApproved = false, + Link = "https://spdx.org/licenses/CERN-OHL-1.2.html#licenseText", + Name = "CERN Open Hardware Licence v1.2", + OsiApproved = false, + SPDX = "CERN-OHL-1.2" + }, + new + { + Id = 108, + FsfApproved = true, + Link = "https://spdx.org/licenses/ClArtistic.html#licenseText", + Name = "Clarified Artistic License", + OsiApproved = false, + SPDX = "ClArtistic" + }, + new + { + Id = 109, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Jython.html#licenseText", + Name = "CNRI Jython License", + OsiApproved = false, + SPDX = "CNRI-Jython" + }, + new + { + Id = 110, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Python.html#licenseText", + Name = "CNRI Python License", + OsiApproved = true, + SPDX = "CNRI-Python" + }, + new + { + Id = 111, + FsfApproved = false, + Link = "https://spdx.org/licenses/CNRI-Python-GPL-Compatible.html#licenseText", + Name = "CNRI Python Open Source GPL Compatible License Agreement", + OsiApproved = false, + SPDX = "CNRI-Python-GPL-Compatible" + }, + new + { + Id = 112, + FsfApproved = true, + Link = "https://spdx.org/licenses/Condor-1.1.html#licenseText", + Name = "Condor Public License v1.1", + OsiApproved = false, + SPDX = "Condor-1.1" + }, + new + { + Id = 113, + FsfApproved = false, + Link = "https://spdx.org/licenses/copyleft-next-0.3.0.html#licenseText", + Name = "copyleft-next 0.3.0", + OsiApproved = false, + SPDX = "copyleft-next-0.3.0" + }, + new + { + Id = 114, + FsfApproved = false, + Link = "https://spdx.org/licenses/copyleft-next-0.3.1.html#licenseText", + Name = "copyleft-next 0.3.1", + OsiApproved = false, + SPDX = "copyleft-next-0.3.1" + }, + new + { + Id = 115, + FsfApproved = true, + Link = "https://spdx.org/licenses/CPAL-1.0.html#licenseText", + Name = "Common Public Attribution License 1.0", + OsiApproved = true, + SPDX = "CPAL-1.0" + }, + new + { + Id = 116, + FsfApproved = true, + Link = "https://spdx.org/licenses/CPL-1.0.html#licenseText", + Name = "Common Public License 1.0", + OsiApproved = true, + SPDX = "CPL-1.0" + }, + new + { + Id = 117, + FsfApproved = false, + Link = "https://spdx.org/licenses/CPOL-1.02.html#licenseText", + Name = "Code Project Open License 1.02", + OsiApproved = false, + SPDX = "CPOL-1.02" + }, + new + { + Id = 118, + FsfApproved = false, + Link = "https://spdx.org/licenses/Crossword.html#licenseText", + Name = "Crossword License", + OsiApproved = false, + SPDX = "Crossword" + }, + new + { + Id = 119, + FsfApproved = false, + Link = "https://spdx.org/licenses/CrystalStacker.html#licenseText", + Name = "CrystalStacker License", + OsiApproved = false, + SPDX = "CrystalStacker" + }, + new + { + Id = 120, + FsfApproved = false, + Link = "https://spdx.org/licenses/CUA-OPL-1.0.html#licenseText", + Name = "CUA Office Public License v1.0", + OsiApproved = true, + SPDX = "CUA-OPL-1.0" + }, + new + { + Id = 121, + FsfApproved = false, + Link = "https://spdx.org/licenses/Cube.html#licenseText", + Name = "Cube License", + OsiApproved = false, + SPDX = "Cube" + }, + new + { + Id = 122, + FsfApproved = false, + Link = "https://spdx.org/licenses/curl.html#licenseText", + Name = "curl License", + OsiApproved = false, + SPDX = "curl" + }, + new + { + Id = 123, + FsfApproved = false, + Link = "https://spdx.org/licenses/D-FSL-1.0.html#licenseText", + Name = "Deutsche Freie Software Lizenz", + OsiApproved = false, + SPDX = "D-FSL-1.0" + }, + new + { + Id = 124, + FsfApproved = false, + Link = "https://spdx.org/licenses/diffmark.html#licenseText", + Name = "diffmark license", + OsiApproved = false, + SPDX = "diffmark" + }, + new + { + Id = 125, + FsfApproved = false, + Link = "https://spdx.org/licenses/DOC.html#licenseText", + Name = "DOC License", + OsiApproved = false, + SPDX = "DOC" + }, + new + { + Id = 126, + FsfApproved = false, + Link = "https://spdx.org/licenses/Dotseqn.html#licenseText", + Name = "Dotseqn License", + OsiApproved = false, + SPDX = "Dotseqn" + }, + new + { + Id = 127, + FsfApproved = false, + Link = "https://spdx.org/licenses/DSDP.html#licenseText", + Name = "DSDP License", + OsiApproved = false, + SPDX = "DSDP" + }, + new + { + Id = 128, + FsfApproved = false, + Link = "https://spdx.org/licenses/dvipdfm.html#licenseText", + Name = "dvipdfm License", + OsiApproved = false, + SPDX = "dvipdfm" + }, + new + { + Id = 129, + FsfApproved = false, + Link = "https://spdx.org/licenses/ECL-1.0.html#licenseText", + Name = "Educational Community License v1.0", + OsiApproved = true, + SPDX = "ECL-1.0" + }, + new + { + Id = 130, + FsfApproved = true, + Link = "https://spdx.org/licenses/ECL-2.0.html#licenseText", + Name = "Educational Community License v2.0", + OsiApproved = true, + SPDX = "ECL-2.0" + }, + new + { + Id = 131, + FsfApproved = false, + Link = "https://spdx.org/licenses/EFL-1.0.html#licenseText", + Name = "Eiffel Forum License v1.0", + OsiApproved = true, + SPDX = "EFL-1.0" + }, + new + { + Id = 132, + FsfApproved = true, + Link = "https://spdx.org/licenses/EFL-2.0.html#licenseText", + Name = "Eiffel Forum License v2.0", + OsiApproved = true, + SPDX = "EFL-2.0" + }, + new + { + Id = 133, + FsfApproved = false, + Link = "https://spdx.org/licenses/eGenix.html#licenseText", + Name = "eGenix.com Public License 1.1.0", + OsiApproved = false, + SPDX = "eGenix" + }, + new + { + Id = 134, + FsfApproved = false, + Link = "https://spdx.org/licenses/Entessa.html#licenseText", + Name = "Entessa Public License v1.0", + OsiApproved = true, + SPDX = "Entessa" + }, + new + { + Id = 135, + FsfApproved = true, + Link = "https://spdx.org/licenses/EPL-1.0.html#licenseText", + Name = "Eclipse Public License 1.0", + OsiApproved = true, + SPDX = "EPL-1.0" + }, + new + { + Id = 136, + FsfApproved = true, + Link = "https://spdx.org/licenses/EPL-2.0.html#licenseText", + Name = "Eclipse Public License 2.0", + OsiApproved = true, + SPDX = "EPL-2.0" + }, + new + { + Id = 137, + FsfApproved = false, + Link = "https://spdx.org/licenses/ErlPL-1.1.html#licenseText", + Name = "Erlang Public License v1.1", + OsiApproved = false, + SPDX = "ErlPL-1.1" + }, + new + { + Id = 138, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUDatagrid.html#licenseText", + Name = "EU DataGrid Software License", + OsiApproved = true, + SPDX = "EUDatagrid" + }, + new + { + Id = 139, + FsfApproved = false, + Link = "https://spdx.org/licenses/EUPL-1.0.html#licenseText", + Name = "European Union Public License 1.0", + OsiApproved = false, + SPDX = "EUPL-1.0" + }, + new + { + Id = 140, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUPL-1.1.html#licenseText", + Name = "European Union Public License 1.1", + OsiApproved = true, + SPDX = "EUPL-1.1" + }, + new + { + Id = 141, + FsfApproved = true, + Link = "https://spdx.org/licenses/EUPL-1.2.html#licenseText", + Name = "European Union Public License 1.2", + OsiApproved = true, + SPDX = "EUPL-1.2" + }, + new + { + Id = 142, + FsfApproved = false, + Link = "https://spdx.org/licenses/Eurosym.html#licenseText", + Name = "Eurosym License", + OsiApproved = false, + SPDX = "Eurosym" + }, + new + { + Id = 143, + FsfApproved = false, + Link = "https://spdx.org/licenses/Fair.html#licenseText", + Name = "Fair License", + OsiApproved = true, + SPDX = "Fair" + }, + new + { + Id = 144, + FsfApproved = false, + Link = "https://spdx.org/licenses/Frameworx-1.0.html#licenseText", + Name = "Frameworx Open License 1.0", + OsiApproved = true, + SPDX = "Frameworx-1.0" + }, + new + { + Id = 145, + FsfApproved = false, + Link = "https://spdx.org/licenses/FreeImage.html#licenseText", + Name = "FreeImage Public License v1.0", + OsiApproved = false, + SPDX = "FreeImage" + }, + new + { + Id = 146, + FsfApproved = true, + Link = "https://spdx.org/licenses/FSFAP.html#licenseText", + Name = "FSF All Permissive License", + OsiApproved = false, + SPDX = "FSFAP" + }, + new + { + Id = 147, + FsfApproved = false, + Link = "https://spdx.org/licenses/FSFUL.html#licenseText", + Name = "FSF Unlimited License", + OsiApproved = false, + SPDX = "FSFUL" + }, + new + { + Id = 148, + FsfApproved = false, + Link = "https://spdx.org/licenses/FSFULLR.html#licenseText", + Name = "FSF Unlimited License (with License Retention)", + OsiApproved = false, + SPDX = "FSFULLR" + }, + new + { + Id = 149, + FsfApproved = true, + Link = "https://spdx.org/licenses/FTL.html#licenseText", + Name = "Freetype Project License", + OsiApproved = false, + SPDX = "FTL" + }, + new + { + Id = 150, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.1-only.html#licenseText", + Name = "GNU Free Documentation License v1.1 only", + OsiApproved = false, + SPDX = "GFDL-1.1-only" + }, + new + { + Id = 151, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.1-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.1 or later", + OsiApproved = false, + SPDX = "GFDL-1.1-or-later" + }, + new + { + Id = 152, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.2-only.html#licenseText", + Name = "GNU Free Documentation License v1.2 only", + OsiApproved = false, + SPDX = "GFDL-1.2-only" + }, + new + { + Id = 153, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.2-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.2 or later", + OsiApproved = false, + SPDX = "GFDL-1.2-or-later" + }, + new + { + Id = 154, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.3-only.html#licenseText", + Name = "GNU Free Documentation License v1.3 only", + OsiApproved = false, + SPDX = "GFDL-1.3-only" + }, + new + { + Id = 155, + FsfApproved = true, + Link = "https://spdx.org/licenses/GFDL-1.3-or-later.html#licenseText", + Name = "GNU Free Documentation License v1.3 or later", + OsiApproved = false, + SPDX = "GFDL-1.3-or-later" + }, + new + { + Id = 156, + FsfApproved = false, + Link = "https://spdx.org/licenses/Giftware.html#licenseText", + Name = "Giftware License", + OsiApproved = false, + SPDX = "Giftware" + }, + new + { + Id = 157, + FsfApproved = false, + Link = "https://spdx.org/licenses/GL2PS.html#licenseText", + Name = "GL2PS License", + OsiApproved = false, + SPDX = "GL2PS" + }, + new + { + Id = 158, + FsfApproved = false, + Link = "https://spdx.org/licenses/Glide.html#licenseText", + Name = "3dfx Glide License", + OsiApproved = false, + SPDX = "Glide" + }, + new + { + Id = 159, + FsfApproved = false, + Link = "https://spdx.org/licenses/Glulxe.html#licenseText", + Name = "Glulxe License", + OsiApproved = false, + SPDX = "Glulxe" + }, + new + { + Id = 160, + FsfApproved = true, + Link = "https://spdx.org/licenses/gnuplot.html#licenseText", + Name = "gnuplot License", + OsiApproved = false, + SPDX = "gnuplot" + }, + new + { + Id = 161, + FsfApproved = false, + Link = "https://spdx.org/licenses/GPL-1.0-only.html#licenseText", + Name = "GNU General Public License v1.0 only", + OsiApproved = false, + SPDX = "GPL-1.0-only" + }, + new + { + Id = 162, + FsfApproved = false, + Link = "https://spdx.org/licenses/GPL-1.0-or-later.html#licenseText", + Name = "GNU General Public License v1.0 or later", + OsiApproved = false, + SPDX = "GPL-1.0-or-later" + }, + new + { + Id = 163, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-2.0-only.html#licenseText", + Name = "GNU General Public License v2.0 only", + OsiApproved = true, + SPDX = "GPL-2.0-only" + }, + new + { + Id = 164, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-2.0-or-later.html#licenseText", + Name = "GNU General Public License v2.0 or later", + OsiApproved = true, + SPDX = "GPL-2.0-or-later" + }, + new + { + Id = 165, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-3.0-only.html#licenseText", + Name = "GNU General Public License v3.0 only", + OsiApproved = true, + SPDX = "GPL-3.0-only" + }, + new + { + Id = 166, + FsfApproved = true, + Link = "https://spdx.org/licenses/GPL-3.0-or-later.html#licenseText", + Name = "GNU General Public License v3.0 or later", + OsiApproved = true, + SPDX = "GPL-3.0-or-later" + }, + new + { + Id = 167, + FsfApproved = false, + Link = "https://spdx.org/licenses/gSOAP-1.3b.html#licenseText", + Name = "gSOAP Public License v1.3b", + OsiApproved = false, + SPDX = "gSOAP-1.3b" + }, + new + { + Id = 168, + FsfApproved = false, + Link = "https://spdx.org/licenses/HaskellReport.html#licenseText", + Name = "Haskell Language Report License", + OsiApproved = false, + SPDX = "HaskellReport" + }, + new + { + Id = 169, + FsfApproved = true, + Link = "https://spdx.org/licenses/HPND.html#licenseText", + Name = "Historical Permission Notice and Disclaimer", + OsiApproved = true, + SPDX = "HPND" + }, + new + { + Id = 170, + FsfApproved = false, + Link = "https://spdx.org/licenses/HPND-sell-variant.html#licenseText", + Name = "Historical Permission Notice and Disclaimer - sell variant", + OsiApproved = false, + SPDX = "HPND-sell-variant" + }, + new + { + Id = 171, + FsfApproved = false, + Link = "https://spdx.org/licenses/IBM-pibs.html#licenseText", + Name = "IBM PowerPC Initialization and Boot Software", + OsiApproved = false, + SPDX = "IBM-pibs" + }, + new + { + Id = 172, + FsfApproved = false, + Link = "https://spdx.org/licenses/ICU.html#licenseText", + Name = "ICU License", + OsiApproved = false, + SPDX = "ICU" + }, + new + { + Id = 173, + FsfApproved = true, + Link = "https://spdx.org/licenses/IJG.html#licenseText", + Name = "Independent JPEG Group License", + OsiApproved = false, + SPDX = "IJG" + }, + new + { + Id = 174, + FsfApproved = false, + Link = "https://spdx.org/licenses/ImageMagick.html#licenseText", + Name = "ImageMagick License", + OsiApproved = false, + SPDX = "ImageMagick" + }, + new + { + Id = 175, + FsfApproved = true, + Link = "https://spdx.org/licenses/iMatix.html#licenseText", + Name = "iMatix Standard Function Library Agreement", + OsiApproved = false, + SPDX = "iMatix" + }, + new + { + Id = 176, + FsfApproved = true, + Link = "https://spdx.org/licenses/Imlib2.html#licenseText", + Name = "Imlib2 License", + OsiApproved = false, + SPDX = "Imlib2" + }, + new + { + Id = 177, + FsfApproved = false, + Link = "https://spdx.org/licenses/Info-ZIP.html#licenseText", + Name = "Info-ZIP License", + OsiApproved = false, + SPDX = "Info-ZIP" + }, + new + { + Id = 178, + FsfApproved = true, + Link = "https://spdx.org/licenses/Intel.html#licenseText", + Name = "Intel Open Source License", + OsiApproved = true, + SPDX = "Intel" + }, + new + { + Id = 179, + FsfApproved = false, + Link = "https://spdx.org/licenses/Intel-ACPI.html#licenseText", + Name = "Intel ACPI Software License Agreement", + OsiApproved = false, + SPDX = "Intel-ACPI" + }, + new + { + Id = 180, + FsfApproved = false, + Link = "https://spdx.org/licenses/Interbase-1.0.html#licenseText", + Name = "Interbase Public License v1.0", + OsiApproved = false, + SPDX = "Interbase-1.0" + }, + new + { + Id = 181, + FsfApproved = true, + Link = "https://spdx.org/licenses/IPA.html#licenseText", + Name = "IPA Font License", + OsiApproved = true, + SPDX = "IPA" + }, + new + { + Id = 182, + FsfApproved = true, + Link = "https://spdx.org/licenses/IPL-1.0.html#licenseText", + Name = "IBM Public License v1.0", + OsiApproved = true, + SPDX = "IPL-1.0" + }, + new + { + Id = 183, + FsfApproved = true, + Link = "https://spdx.org/licenses/ISC.html#licenseText", + Name = "ISC License", + OsiApproved = true, + SPDX = "ISC" + }, + new + { + Id = 184, + FsfApproved = false, + Link = "https://spdx.org/licenses/JasPer-2.0.html#licenseText", + Name = "JasPer License", + OsiApproved = false, + SPDX = "JasPer-2.0" + }, + new + { + Id = 185, + FsfApproved = false, + Link = "https://spdx.org/licenses/JPNIC.html#licenseText", + Name = "Japan Network Information Center License", + OsiApproved = false, + SPDX = "JPNIC" + }, + new + { + Id = 186, + FsfApproved = false, + Link = "https://spdx.org/licenses/JSON.html#licenseText", + Name = "JSON License", + OsiApproved = false, + SPDX = "JSON" + }, + new + { + Id = 187, + FsfApproved = false, + Link = "https://spdx.org/licenses/LAL-1.2.html#licenseText", + Name = "Licence Art Libre 1.2", + OsiApproved = false, + SPDX = "LAL-1.2" + }, + new + { + Id = 188, + FsfApproved = false, + Link = "https://spdx.org/licenses/LAL-1.3.html#licenseText", + Name = "Licence Art Libre 1.3", + OsiApproved = false, + SPDX = "LAL-1.3" + }, + new + { + Id = 189, + FsfApproved = false, + Link = "https://spdx.org/licenses/Latex2e.html#licenseText", + Name = "Latex2e License", + OsiApproved = false, + SPDX = "Latex2e" + }, + new + { + Id = 190, + FsfApproved = false, + Link = "https://spdx.org/licenses/Leptonica.html#licenseText", + Name = "Leptonica License", + OsiApproved = false, + SPDX = "Leptonica" + }, + new + { + Id = 191, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPL-2.0-only.html#licenseText", + Name = "GNU Library General Public License v2 only", + OsiApproved = true, + SPDX = "LGPL-2.0-only" + }, + new + { + Id = 192, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPL-2.0-or-later.html#licenseText", + Name = "GNU Library General Public License v2 or later", + OsiApproved = true, + SPDX = "LGPL-2.0-or-later" + }, + new + { + Id = 193, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-2.1-only.html#licenseText", + Name = "GNU Lesser General Public License v2.1 only", + OsiApproved = true, + SPDX = "LGPL-2.1-only" + }, + new + { + Id = 194, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-2.1-or-later.html#licenseText", + Name = "GNU Lesser General Public License v2.1 or later", + OsiApproved = true, + SPDX = "LGPL-2.1-or-later" + }, + new + { + Id = 195, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-3.0-only.html#licenseText", + Name = "GNU Lesser General Public License v3.0 only", + OsiApproved = true, + SPDX = "LGPL-3.0-only" + }, + new + { + Id = 196, + FsfApproved = true, + Link = "https://spdx.org/licenses/LGPL-3.0-or-later.html#licenseText", + Name = "GNU Lesser General Public License v3.0 or later", + OsiApproved = true, + SPDX = "LGPL-3.0-or-later" + }, + new + { + Id = 197, + FsfApproved = false, + Link = "https://spdx.org/licenses/LGPLLR.html#licenseText", + Name = "Lesser General Public License For Linguistic Resources", + OsiApproved = false, + SPDX = "LGPLLR" + }, + new + { + Id = 198, + FsfApproved = false, + Link = "https://spdx.org/licenses/Libpng.html#licenseText", + Name = "libpng License", + OsiApproved = false, + SPDX = "Libpng" + }, + new + { + Id = 199, + FsfApproved = false, + Link = "https://spdx.org/licenses/libpng-2.0.html#licenseText", + Name = "PNG Reference Library version 2", + OsiApproved = false, + SPDX = "libpng-2.0" + }, + new + { + Id = 200, + FsfApproved = false, + Link = "https://spdx.org/licenses/libtiff.html#licenseText", + Name = "libtiff License", + OsiApproved = false, + SPDX = "libtiff" + }, + new + { + Id = 201, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-P-1.1.html#licenseText", + Name = "Licence Libre du Québec – Permissive version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-P-1.1" + }, + new + { + Id = 202, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-R-1.1.html#licenseText", + Name = "Licence Libre du Québec – Réciprocité version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-R-1.1" + }, + new + { + Id = 203, + FsfApproved = false, + Link = "https://spdx.org/licenses/LiLiQ-Rplus-1.1.html#licenseText", + Name = "Licence Libre du Québec – Réciprocité forte version 1.1", + OsiApproved = true, + SPDX = "LiLiQ-Rplus-1.1" + }, + new + { + Id = 204, + FsfApproved = false, + Link = "https://spdx.org/licenses/Linux-OpenIB.html#licenseText", + Name = "Linux Kernel Variant of OpenIB.org license", + OsiApproved = false, + SPDX = "Linux-OpenIB" + }, + new + { + Id = 205, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPL-1.0.html#licenseText", + Name = "Lucent Public License Version 1.0", + OsiApproved = true, + SPDX = "LPL-1.0" + }, + new + { + Id = 206, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPL-1.02.html#licenseText", + Name = "Lucent Public License v1.02", + OsiApproved = true, + SPDX = "LPL-1.02" + }, + new + { + Id = 207, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.0.html#licenseText", + Name = "LaTeX Project Public License v1.0", + OsiApproved = false, + SPDX = "LPPL-1.0" + }, + new + { + Id = 208, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.1.html#licenseText", + Name = "LaTeX Project Public License v1.1", + OsiApproved = false, + SPDX = "LPPL-1.1" + }, + new + { + Id = 209, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPPL-1.2.html#licenseText", + Name = "LaTeX Project Public License v1.2", + OsiApproved = false, + SPDX = "LPPL-1.2" + }, + new + { + Id = 210, + FsfApproved = true, + Link = "https://spdx.org/licenses/LPPL-1.3a.html#licenseText", + Name = "LaTeX Project Public License v1.3a", + OsiApproved = false, + SPDX = "LPPL-1.3a" + }, + new + { + Id = 211, + FsfApproved = false, + Link = "https://spdx.org/licenses/LPPL-1.3c.html#licenseText", + Name = "LaTeX Project Public License v1.3c", + OsiApproved = true, + SPDX = "LPPL-1.3c" + }, + new + { + Id = 212, + FsfApproved = false, + Link = "https://spdx.org/licenses/MakeIndex.html#licenseText", + Name = "MakeIndex License", + OsiApproved = false, + SPDX = "MakeIndex" + }, + new + { + Id = 213, + FsfApproved = false, + Link = "https://spdx.org/licenses/MirOS.html#licenseText", + Name = "MirOS License", + OsiApproved = true, + SPDX = "MirOS" + }, + new + { + Id = 214, + FsfApproved = true, + Link = "https://spdx.org/licenses/MIT.html#licenseText", + Name = "MIT License", + OsiApproved = true, + SPDX = "MIT" + }, + new + { + Id = 215, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-0.html#licenseText", + Name = "MIT No Attribution", + OsiApproved = true, + SPDX = "MIT-0" + }, + new + { + Id = 216, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-advertising.html#licenseText", + Name = "Enlightenment License (e16)", + OsiApproved = false, + SPDX = "MIT-advertising" + }, + new + { + Id = 217, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-CMU.html#licenseText", + Name = "CMU License", + OsiApproved = false, + SPDX = "MIT-CMU" + }, + new + { + Id = 218, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-enna.html#licenseText", + Name = "enna License", + OsiApproved = false, + SPDX = "MIT-enna" + }, + new + { + Id = 219, + FsfApproved = false, + Link = "https://spdx.org/licenses/MIT-feh.html#licenseText", + Name = "feh License", + OsiApproved = false, + SPDX = "MIT-feh" + }, + new + { + Id = 220, + FsfApproved = false, + Link = "https://spdx.org/licenses/MITNFA.html#licenseText", + Name = "MIT +no-false-attribs license", + OsiApproved = false, + SPDX = "MITNFA" + }, + new + { + Id = 221, + FsfApproved = false, + Link = "https://spdx.org/licenses/Motosoto.html#licenseText", + Name = "Motosoto License", + OsiApproved = true, + SPDX = "Motosoto" + }, + new + { + Id = 222, + FsfApproved = false, + Link = "https://spdx.org/licenses/mpich2.html#licenseText", + Name = "mpich2 License", + OsiApproved = false, + SPDX = "mpich2" + }, + new + { + Id = 223, + FsfApproved = false, + Link = "https://spdx.org/licenses/MPL-1.0.html#licenseText", + Name = "Mozilla Public License 1.0", + OsiApproved = true, + SPDX = "MPL-1.0" + }, + new + { + Id = 224, + FsfApproved = true, + Link = "https://spdx.org/licenses/MPL-1.1.html#licenseText", + Name = "Mozilla Public License 1.1", + OsiApproved = true, + SPDX = "MPL-1.1" + }, + new + { + Id = 225, + FsfApproved = true, + Link = "https://spdx.org/licenses/MPL-2.0.html#licenseText", + Name = "Mozilla Public License 2.0", + OsiApproved = true, + SPDX = "MPL-2.0" + }, + new + { + Id = 226, + FsfApproved = false, + Link = "https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.html#licenseText", + Name = "Mozilla Public License 2.0 (no copyleft exception)", + OsiApproved = true, + SPDX = "MPL-2.0-no-copyleft-exception" + }, + new + { + Id = 227, + FsfApproved = true, + Link = "https://spdx.org/licenses/MS-PL.html#licenseText", + Name = "Microsoft Public License", + OsiApproved = true, + SPDX = "MS-PL" + }, + new + { + Id = 228, + FsfApproved = true, + Link = "https://spdx.org/licenses/MS-RL.html#licenseText", + Name = "Microsoft Reciprocal License", + OsiApproved = true, + SPDX = "MS-RL" + }, + new + { + Id = 229, + FsfApproved = false, + Link = "https://spdx.org/licenses/MTLL.html#licenseText", + Name = "Matrix Template Library License", + OsiApproved = false, + SPDX = "MTLL" + }, + new + { + Id = 230, + FsfApproved = false, + Link = "https://spdx.org/licenses/Multics.html#licenseText", + Name = "Multics License", + OsiApproved = true, + SPDX = "Multics" + }, + new + { + Id = 231, + FsfApproved = false, + Link = "https://spdx.org/licenses/Mup.html#licenseText", + Name = "Mup License", + OsiApproved = false, + SPDX = "Mup" + }, + new + { + Id = 232, + FsfApproved = false, + Link = "https://spdx.org/licenses/NASA-1.3.html#licenseText", + Name = "NASA Open Source Agreement 1.3", + OsiApproved = true, + SPDX = "NASA-1.3" + }, + new + { + Id = 233, + FsfApproved = false, + Link = "https://spdx.org/licenses/Naumen.html#licenseText", + Name = "Naumen Public License", + OsiApproved = true, + SPDX = "Naumen" + }, + new + { + Id = 234, + FsfApproved = false, + Link = "https://spdx.org/licenses/NBPL-1.0.html#licenseText", + Name = "Net Boolean Public License v1", + OsiApproved = false, + SPDX = "NBPL-1.0" + }, + new + { + Id = 235, + FsfApproved = true, + Link = "https://spdx.org/licenses/NCSA.html#licenseText", + Name = "University of Illinois/NCSA Open Source License", + OsiApproved = true, + SPDX = "NCSA" + }, + new + { + Id = 236, + FsfApproved = false, + Link = "https://spdx.org/licenses/Net-SNMP.html#licenseText", + Name = "Net-SNMP License", + OsiApproved = false, + SPDX = "Net-SNMP" + }, + new + { + Id = 237, + FsfApproved = false, + Link = "https://spdx.org/licenses/NetCDF.html#licenseText", + Name = "NetCDF license", + OsiApproved = false, + SPDX = "NetCDF" + }, + new + { + Id = 238, + FsfApproved = false, + Link = "https://spdx.org/licenses/Newsletr.html#licenseText", + Name = "Newsletr License", + OsiApproved = false, + SPDX = "Newsletr" + }, + new + { + Id = 239, + FsfApproved = false, + Link = "https://spdx.org/licenses/NGPL.html#licenseText", + Name = "Nethack General Public License", + OsiApproved = true, + SPDX = "NGPL" + }, + new + { + Id = 240, + FsfApproved = false, + Link = "https://spdx.org/licenses/NLOD-1.0.html#licenseText", + Name = "Norwegian Licence for Open Government Data", + OsiApproved = false, + SPDX = "NLOD-1.0" + }, + new + { + Id = 241, + FsfApproved = false, + Link = "https://spdx.org/licenses/NLPL.html#licenseText", + Name = "No Limit Public License", + OsiApproved = false, + SPDX = "NLPL" + }, + new + { + Id = 242, + FsfApproved = true, + Link = "https://spdx.org/licenses/Nokia.html#licenseText", + Name = "Nokia Open Source License", + OsiApproved = true, + SPDX = "Nokia" + }, + new + { + Id = 243, + FsfApproved = true, + Link = "https://spdx.org/licenses/NOSL.html#licenseText", + Name = "Netizen Open Source License", + OsiApproved = false, + SPDX = "NOSL" + }, + new + { + Id = 244, + FsfApproved = false, + Link = "https://spdx.org/licenses/Noweb.html#licenseText", + Name = "Noweb License", + OsiApproved = false, + SPDX = "Noweb" + }, + new + { + Id = 245, + FsfApproved = true, + Link = "https://spdx.org/licenses/NPL-1.0.html#licenseText", + Name = "Netscape Public License v1.0", + OsiApproved = false, + SPDX = "NPL-1.0" + }, + new + { + Id = 246, + FsfApproved = true, + Link = "https://spdx.org/licenses/NPL-1.1.html#licenseText", + Name = "Netscape Public License v1.1", + OsiApproved = false, + SPDX = "NPL-1.1" + }, + new + { + Id = 247, + FsfApproved = false, + Link = "https://spdx.org/licenses/NPOSL-3.0.html#licenseText", + Name = "Non-Profit Open Software License 3.0", + OsiApproved = true, + SPDX = "NPOSL-3.0" + }, + new + { + Id = 248, + FsfApproved = false, + Link = "https://spdx.org/licenses/NRL.html#licenseText", + Name = "NRL License", + OsiApproved = false, + SPDX = "NRL" + }, + new + { + Id = 249, + FsfApproved = false, + Link = "https://spdx.org/licenses/NTP.html#licenseText", + Name = "NTP License", + OsiApproved = true, + SPDX = "NTP" + }, + new + { + Id = 250, + FsfApproved = false, + Link = "https://spdx.org/licenses/OCCT-PL.html#licenseText", + Name = "Open CASCADE Technology Public License", + OsiApproved = false, + SPDX = "OCCT-PL" + }, + new + { + Id = 251, + FsfApproved = false, + Link = "https://spdx.org/licenses/OCLC-2.0.html#licenseText", + Name = "OCLC Research Public License 2.0", + OsiApproved = true, + SPDX = "OCLC-2.0" + }, + new + { + Id = 252, + FsfApproved = true, + Link = "https://spdx.org/licenses/ODbL-1.0.html#licenseText", + Name = "ODC Open Database License v1.0", + OsiApproved = false, + SPDX = "ODbL-1.0" + }, + new + { + Id = 253, + FsfApproved = false, + Link = "https://spdx.org/licenses/ODC-By-1.0.html#licenseText", + Name = "Open Data Commons Attribution License v1.0", + OsiApproved = false, + SPDX = "ODC-By-1.0" + }, + new + { + Id = 254, + FsfApproved = true, + Link = "https://spdx.org/licenses/OFL-1.0.html#licenseText", + Name = "SIL Open Font License 1.0", + OsiApproved = false, + SPDX = "OFL-1.0" + }, + new + { + Id = 255, + FsfApproved = true, + Link = "https://spdx.org/licenses/OFL-1.1.html#licenseText", + Name = "SIL Open Font License 1.1", + OsiApproved = true, + SPDX = "OFL-1.1" + }, + new + { + Id = 256, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-1.0.html#licenseText", + Name = "Open Government Licence v1.0", + OsiApproved = false, + SPDX = "OGL-UK-1.0" + }, + new + { + Id = 257, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-2.0.html#licenseText", + Name = "Open Government Licence v2.0", + OsiApproved = false, + SPDX = "OGL-UK-2.0" + }, + new + { + Id = 258, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGL-UK-3.0.html#licenseText", + Name = "Open Government Licence v3.0", + OsiApproved = false, + SPDX = "OGL-UK-3.0" + }, + new + { + Id = 259, + FsfApproved = false, + Link = "https://spdx.org/licenses/OGTSL.html#licenseText", + Name = "Open Group Test Suite License", + OsiApproved = true, + SPDX = "OGTSL" + }, + new + { + Id = 260, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.1.html#licenseText", + Name = "Open LDAP Public License v1.1", + OsiApproved = false, + SPDX = "OLDAP-1.1" + }, + new + { + Id = 261, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.2.html#licenseText", + Name = "Open LDAP Public License v1.2", + OsiApproved = false, + SPDX = "OLDAP-1.2" + }, + new + { + Id = 262, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.3.html#licenseText", + Name = "Open LDAP Public License v1.3", + OsiApproved = false, + SPDX = "OLDAP-1.3" + }, + new + { + Id = 263, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-1.4.html#licenseText", + Name = "Open LDAP Public License v1.4", + OsiApproved = false, + SPDX = "OLDAP-1.4" + }, + new + { + Id = 264, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.0.html#licenseText", + Name = "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)", + OsiApproved = false, + SPDX = "OLDAP-2.0" + }, + new + { + Id = 265, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.0.1.html#licenseText", + Name = "Open LDAP Public License v2.0.1", + OsiApproved = false, + SPDX = "OLDAP-2.0.1" + }, + new + { + Id = 266, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.1.html#licenseText", + Name = "Open LDAP Public License v2.1", + OsiApproved = false, + SPDX = "OLDAP-2.1" + }, + new + { + Id = 267, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.html#licenseText", + Name = "Open LDAP Public License v2.2", + OsiApproved = false, + SPDX = "OLDAP-2.2" + }, + new + { + Id = 268, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.1.html#licenseText", + Name = "Open LDAP Public License v2.2.1", + OsiApproved = false, + SPDX = "OLDAP-2.2.1" + }, + new + { + Id = 269, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.2.2.html#licenseText", + Name = "Open LDAP Public License 2.2.2", + OsiApproved = false, + SPDX = "OLDAP-2.2.2" + }, + new + { + Id = 270, + FsfApproved = true, + Link = "https://spdx.org/licenses/OLDAP-2.3.html#licenseText", + Name = "Open LDAP Public License v2.3", + OsiApproved = false, + SPDX = "OLDAP-2.3" + }, + new + { + Id = 271, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.4.html#licenseText", + Name = "Open LDAP Public License v2.4", + OsiApproved = false, + SPDX = "OLDAP-2.4" + }, + new + { + Id = 272, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.5.html#licenseText", + Name = "Open LDAP Public License v2.5", + OsiApproved = false, + SPDX = "OLDAP-2.5" + }, + new + { + Id = 273, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.6.html#licenseText", + Name = "Open LDAP Public License v2.6", + OsiApproved = false, + SPDX = "OLDAP-2.6" + }, + new + { + Id = 274, + FsfApproved = true, + Link = "https://spdx.org/licenses/OLDAP-2.7.html#licenseText", + Name = "Open LDAP Public License v2.7", + OsiApproved = false, + SPDX = "OLDAP-2.7" + }, + new + { + Id = 275, + FsfApproved = false, + Link = "https://spdx.org/licenses/OLDAP-2.8.html#licenseText", + Name = "Open LDAP Public License v2.8", + OsiApproved = false, + SPDX = "OLDAP-2.8" + }, + new + { + Id = 276, + FsfApproved = false, + Link = "https://spdx.org/licenses/OML.html#licenseText", + Name = "Open Market License", + OsiApproved = false, + SPDX = "OML" + }, + new + { + Id = 277, + FsfApproved = true, + Link = "https://spdx.org/licenses/OpenSSL.html#licenseText", + Name = "OpenSSL License", + OsiApproved = false, + SPDX = "OpenSSL" + }, + new + { + Id = 278, + FsfApproved = false, + Link = "https://spdx.org/licenses/OPL-1.0.html#licenseText", + Name = "Open Public License v1.0", + OsiApproved = false, + SPDX = "OPL-1.0" + }, + new + { + Id = 279, + FsfApproved = false, + Link = "https://spdx.org/licenses/OSET-PL-2.1.html#licenseText", + Name = "OSET Public License version 2.1", + OsiApproved = true, + SPDX = "OSET-PL-2.1" + }, + new + { + Id = 280, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-1.0.html#licenseText", + Name = "Open Software License 1.0", + OsiApproved = true, + SPDX = "OSL-1.0" + }, + new + { + Id = 281, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-1.1.html#licenseText", + Name = "Open Software License 1.1", + OsiApproved = false, + SPDX = "OSL-1.1" + }, + new + { + Id = 282, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-2.0.html#licenseText", + Name = "Open Software License 2.0", + OsiApproved = true, + SPDX = "OSL-2.0" + }, + new + { + Id = 283, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-2.1.html#licenseText", + Name = "Open Software License 2.1", + OsiApproved = true, + SPDX = "OSL-2.1" + }, + new + { + Id = 284, + FsfApproved = true, + Link = "https://spdx.org/licenses/OSL-3.0.html#licenseText", + Name = "Open Software License 3.0", + OsiApproved = true, + SPDX = "OSL-3.0" + }, + new + { + Id = 285, + FsfApproved = false, + Link = "https://spdx.org/licenses/PDDL-1.0.html#licenseText", + Name = "ODC Public Domain Dedication & License 1.0", + OsiApproved = false, + SPDX = "PDDL-1.0" + }, + new + { + Id = 286, + FsfApproved = false, + Link = "https://spdx.org/licenses/PHP-3.0.html#licenseText", + Name = "PHP License v3.0", + OsiApproved = true, + SPDX = "PHP-3.0" + }, + new + { + Id = 287, + FsfApproved = true, + Link = "https://spdx.org/licenses/PHP-3.01.html#licenseText", + Name = "PHP License v3.01", + OsiApproved = false, + SPDX = "PHP-3.01" + }, + new + { + Id = 288, + FsfApproved = false, + Link = "https://spdx.org/licenses/Plexus.html#licenseText", + Name = "Plexus Classworlds License", + OsiApproved = false, + SPDX = "Plexus" + }, + new + { + Id = 289, + FsfApproved = false, + Link = "https://spdx.org/licenses/PostgreSQL.html#licenseText", + Name = "PostgreSQL License", + OsiApproved = true, + SPDX = "PostgreSQL" + }, + new + { + Id = 290, + FsfApproved = false, + Link = "https://spdx.org/licenses/psfrag.html#licenseText", + Name = "psfrag License", + OsiApproved = false, + SPDX = "psfrag" + }, + new + { + Id = 291, + FsfApproved = false, + Link = "https://spdx.org/licenses/psutils.html#licenseText", + Name = "psutils License", + OsiApproved = false, + SPDX = "psutils" + }, + new + { + Id = 292, + FsfApproved = true, + Link = "https://spdx.org/licenses/Python-2.0.html#licenseText", + Name = "Python License 2.0", + OsiApproved = true, + SPDX = "Python-2.0" + }, + new + { + Id = 293, + FsfApproved = false, + Link = "https://spdx.org/licenses/Qhull.html#licenseText", + Name = "Qhull License", + OsiApproved = false, + SPDX = "Qhull" + }, + new + { + Id = 294, + FsfApproved = true, + Link = "https://spdx.org/licenses/QPL-1.0.html#licenseText", + Name = "Q Public License 1.0", + OsiApproved = true, + SPDX = "QPL-1.0" + }, + new + { + Id = 295, + FsfApproved = false, + Link = "https://spdx.org/licenses/Rdisc.html#licenseText", + Name = "Rdisc License", + OsiApproved = false, + SPDX = "Rdisc" + }, + new + { + Id = 296, + FsfApproved = false, + Link = "https://spdx.org/licenses/RHeCos-1.1.html#licenseText", + Name = "Red Hat eCos Public License v1.1", + OsiApproved = false, + SPDX = "RHeCos-1.1" + }, + new + { + Id = 297, + FsfApproved = false, + Link = "https://spdx.org/licenses/RPL-1.1.html#licenseText", + Name = "Reciprocal Public License 1.1", + OsiApproved = true, + SPDX = "RPL-1.1" + }, + new + { + Id = 298, + FsfApproved = false, + Link = "https://spdx.org/licenses/RPL-1.5.html#licenseText", + Name = "Reciprocal Public License 1.5", + OsiApproved = true, + SPDX = "RPL-1.5" + }, + new + { + Id = 299, + FsfApproved = true, + Link = "https://spdx.org/licenses/RPSL-1.0.html#licenseText", + Name = "RealNetworks Public Source License v1.0", + OsiApproved = true, + SPDX = "RPSL-1.0" + }, + new + { + Id = 300, + FsfApproved = false, + Link = "https://spdx.org/licenses/RSA-MD.html#licenseText", + Name = "RSA Message-Digest License", + OsiApproved = false, + SPDX = "RSA-MD" + }, + new + { + Id = 301, + FsfApproved = false, + Link = "https://spdx.org/licenses/RSCPL.html#licenseText", + Name = "Ricoh Source Code Public License", + OsiApproved = true, + SPDX = "RSCPL" + }, + new + { + Id = 302, + FsfApproved = true, + Link = "https://spdx.org/licenses/Ruby.html#licenseText", + Name = "Ruby License", + OsiApproved = false, + SPDX = "Ruby" + }, + new + { + Id = 303, + FsfApproved = false, + Link = "https://spdx.org/licenses/SAX-PD.html#licenseText", + Name = "Sax Public Domain Notice", + OsiApproved = false, + SPDX = "SAX-PD" + }, + new + { + Id = 304, + FsfApproved = false, + Link = "https://spdx.org/licenses/Saxpath.html#licenseText", + Name = "Saxpath License", + OsiApproved = false, + SPDX = "Saxpath" + }, + new + { + Id = 305, + FsfApproved = false, + Link = "https://spdx.org/licenses/SCEA.html#licenseText", + Name = "SCEA Shared Source License", + OsiApproved = false, + SPDX = "SCEA" + }, + new + { + Id = 306, + FsfApproved = false, + Link = "https://spdx.org/licenses/Sendmail.html#licenseText", + Name = "Sendmail License", + OsiApproved = false, + SPDX = "Sendmail" + }, + new + { + Id = 307, + FsfApproved = false, + Link = "https://spdx.org/licenses/Sendmail-8.23.html#licenseText", + Name = "Sendmail License 8.23", + OsiApproved = false, + SPDX = "Sendmail-8.23" + }, + new + { + Id = 308, + FsfApproved = false, + Link = "https://spdx.org/licenses/SGI-B-1.0.html#licenseText", + Name = "SGI Free Software License B v1.0", + OsiApproved = false, + SPDX = "SGI-B-1.0" + }, + new + { + Id = 309, + FsfApproved = false, + Link = "https://spdx.org/licenses/SGI-B-1.1.html#licenseText", + Name = "SGI Free Software License B v1.1", + OsiApproved = false, + SPDX = "SGI-B-1.1" + }, + new + { + Id = 310, + FsfApproved = true, + Link = "https://spdx.org/licenses/SGI-B-2.0.html#licenseText", + Name = "SGI Free Software License B v2.0", + OsiApproved = false, + SPDX = "SGI-B-2.0" + }, + new + { + Id = 311, + FsfApproved = false, + Link = "https://spdx.org/licenses/SimPL-2.0.html#licenseText", + Name = "Simple Public License 2.0", + OsiApproved = true, + SPDX = "SimPL-2.0" + }, + new + { + Id = 312, + FsfApproved = true, + Link = "https://spdx.org/licenses/SISSL.html#licenseText", + Name = "Sun Industry Standards Source License v1.1", + OsiApproved = true, + SPDX = "SISSL" + }, + new + { + Id = 313, + FsfApproved = false, + Link = "https://spdx.org/licenses/SISSL-1.2.html#licenseText", + Name = "Sun Industry Standards Source License v1.2", + OsiApproved = false, + SPDX = "SISSL-1.2" + }, + new + { + Id = 314, + FsfApproved = true, + Link = "https://spdx.org/licenses/Sleepycat.html#licenseText", + Name = "Sleepycat License", + OsiApproved = true, + SPDX = "Sleepycat" + }, + new + { + Id = 315, + FsfApproved = true, + Link = "https://spdx.org/licenses/SMLNJ.html#licenseText", + Name = "Standard ML of New Jersey License", + OsiApproved = false, + SPDX = "SMLNJ" + }, + new + { + Id = 316, + FsfApproved = false, + Link = "https://spdx.org/licenses/SMPPL.html#licenseText", + Name = "Secure Messaging Protocol Public License", + OsiApproved = false, + SPDX = "SMPPL" + }, + new + { + Id = 317, + FsfApproved = false, + Link = "https://spdx.org/licenses/SNIA.html#licenseText", + Name = "SNIA Public License 1.1", + OsiApproved = false, + SPDX = "SNIA" + }, + new + { + Id = 318, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-86.html#licenseText", + Name = "Spencer License 86", + OsiApproved = false, + SPDX = "Spencer-86" + }, + new + { + Id = 319, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-94.html#licenseText", + Name = "Spencer License 94", + OsiApproved = false, + SPDX = "Spencer-94" + }, + new + { + Id = 320, + FsfApproved = false, + Link = "https://spdx.org/licenses/Spencer-99.html#licenseText", + Name = "Spencer License 99", + OsiApproved = false, + SPDX = "Spencer-99" + }, + new + { + Id = 321, + FsfApproved = true, + Link = "https://spdx.org/licenses/SPL-1.0.html#licenseText", + Name = "Sun Public License v1.0", + OsiApproved = true, + SPDX = "SPL-1.0" + }, + new + { + Id = 322, + FsfApproved = false, + Link = "https://spdx.org/licenses/SugarCRM-1.1.3.html#licenseText", + Name = "SugarCRM Public License v1.1.3", + OsiApproved = false, + SPDX = "SugarCRM-1.1.3" + }, + new + { + Id = 323, + FsfApproved = false, + Link = "https://spdx.org/licenses/SWL.html#licenseText", + Name = "Scheme Widget Library (SWL) Software License Agreement", + OsiApproved = false, + SPDX = "SWL" + }, + new + { + Id = 324, + FsfApproved = false, + Link = "https://spdx.org/licenses/TAPR-OHL-1.0.html#licenseText", + Name = "TAPR Open Hardware License v1.0", + OsiApproved = false, + SPDX = "TAPR-OHL-1.0" + }, + new + { + Id = 325, + FsfApproved = false, + Link = "https://spdx.org/licenses/TCL.html#licenseText", + Name = "TCL/TK License", + OsiApproved = false, + SPDX = "TCL" + }, + new + { + Id = 326, + FsfApproved = false, + Link = "https://spdx.org/licenses/TCP-wrappers.html#licenseText", + Name = "TCP Wrappers License", + OsiApproved = false, + SPDX = "TCP-wrappers" + }, + new + { + Id = 327, + FsfApproved = false, + Link = "https://spdx.org/licenses/TMate.html#licenseText", + Name = "TMate Open Source License", + OsiApproved = false, + SPDX = "TMate" + }, + new + { + Id = 328, + FsfApproved = false, + Link = "https://spdx.org/licenses/TORQUE-1.1.html#licenseText", + Name = "TORQUE v2.5+ Software License v1.1", + OsiApproved = false, + SPDX = "TORQUE-1.1" + }, + new + { + Id = 329, + FsfApproved = false, + Link = "https://spdx.org/licenses/TOSL.html#licenseText", + Name = "Trusster Open Source License", + OsiApproved = false, + SPDX = "TOSL" + }, + new + { + Id = 330, + FsfApproved = false, + Link = "https://spdx.org/licenses/TU-Berlin-1.0.html#licenseText", + Name = "Technische Universitaet Berlin License 1.0", + OsiApproved = false, + SPDX = "TU-Berlin-1.0" + }, + new + { + Id = 331, + FsfApproved = false, + Link = "https://spdx.org/licenses/TU-Berlin-2.0.html#licenseText", + Name = "Technische Universitaet Berlin License 2.0", + OsiApproved = false, + SPDX = "TU-Berlin-2.0" + }, + new + { + Id = 332, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-DFS-2015.html#licenseText", + Name = "Unicode License Agreement - Data Files and Software (2015)", + OsiApproved = false, + SPDX = "Unicode-DFS-2015" + }, + new + { + Id = 333, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-DFS-2016.html#licenseText", + Name = "Unicode License Agreement - Data Files and Software (2016)", + OsiApproved = false, + SPDX = "Unicode-DFS-2016" + }, + new + { + Id = 334, + FsfApproved = false, + Link = "https://spdx.org/licenses/Unicode-TOU.html#licenseText", + Name = "Unicode Terms of Use", + OsiApproved = false, + SPDX = "Unicode-TOU" + }, + new + { + Id = 335, + FsfApproved = true, + Link = "https://spdx.org/licenses/Unlicense.html#licenseText", + Name = "The Unlicense", + OsiApproved = false, + SPDX = "Unlicense" + }, + new + { + Id = 336, + FsfApproved = true, + Link = "https://spdx.org/licenses/UPL-1.0.html#licenseText", + Name = "Universal Permissive License v1.0", + OsiApproved = true, + SPDX = "UPL-1.0" + }, + new + { + Id = 337, + FsfApproved = true, + Link = "https://spdx.org/licenses/Vim.html#licenseText", + Name = "Vim License", + OsiApproved = false, + SPDX = "Vim" + }, + new + { + Id = 338, + FsfApproved = false, + Link = "https://spdx.org/licenses/VOSTROM.html#licenseText", + Name = "VOSTROM Public License for Open Source", + OsiApproved = false, + SPDX = "VOSTROM" + }, + new + { + Id = 339, + FsfApproved = false, + Link = "https://spdx.org/licenses/VSL-1.0.html#licenseText", + Name = "Vovida Software License v1.0", + OsiApproved = true, + SPDX = "VSL-1.0" + }, + new + { + Id = 340, + FsfApproved = true, + Link = "https://spdx.org/licenses/W3C.html#licenseText", + Name = "W3C Software Notice and License (2002-12-31)", + OsiApproved = true, + SPDX = "W3C" + }, + new + { + Id = 341, + FsfApproved = false, + Link = "https://spdx.org/licenses/W3C-19980720.html#licenseText", + Name = "W3C Software Notice and License (1998-07-20)", + OsiApproved = false, + SPDX = "W3C-19980720" + }, + new + { + Id = 342, + FsfApproved = false, + Link = "https://spdx.org/licenses/W3C-20150513.html#licenseText", + Name = "W3C Software Notice and Document License (2015-05-13)", + OsiApproved = false, + SPDX = "W3C-20150513" + }, + new + { + Id = 343, + FsfApproved = false, + Link = "https://spdx.org/licenses/Watcom-1.0.html#licenseText", + Name = "Sybase Open Watcom Public License 1.0", + OsiApproved = true, + SPDX = "Watcom-1.0" + }, + new + { + Id = 344, + FsfApproved = false, + Link = "https://spdx.org/licenses/Wsuipa.html#licenseText", + Name = "Wsuipa License", + OsiApproved = false, + SPDX = "Wsuipa" + }, + new + { + Id = 345, + FsfApproved = true, + Link = "https://spdx.org/licenses/WTFPL.html#licenseText", + Name = "Do What The F*ck You Want To Public License", + OsiApproved = false, + SPDX = "WTFPL" + }, + new + { + Id = 346, + FsfApproved = true, + Link = "https://spdx.org/licenses/X11.html#licenseText", + Name = "X11 License", + OsiApproved = false, + SPDX = "X11" + }, + new + { + Id = 347, + FsfApproved = false, + Link = "https://spdx.org/licenses/Xerox.html#licenseText", + Name = "Xerox License", + OsiApproved = false, + SPDX = "Xerox" + }, + new + { + Id = 348, + FsfApproved = true, + Link = "https://spdx.org/licenses/XFree86-1.1.html#licenseText", + Name = "XFree86 License 1.1", + OsiApproved = false, + SPDX = "XFree86-1.1" + }, + new + { + Id = 349, + FsfApproved = true, + Link = "https://spdx.org/licenses/xinetd.html#licenseText", + Name = "xinetd License", + OsiApproved = false, + SPDX = "xinetd" + }, + new + { + Id = 350, + FsfApproved = false, + Link = "https://spdx.org/licenses/Xnet.html#licenseText", + Name = "X.Net License", + OsiApproved = true, + SPDX = "Xnet" + }, + new + { + Id = 351, + FsfApproved = false, + Link = "https://spdx.org/licenses/xpp.html#licenseText", + Name = "XPP License", + OsiApproved = false, + SPDX = "xpp" + }, + new + { + Id = 352, + FsfApproved = false, + Link = "https://spdx.org/licenses/XSkat.html#licenseText", + Name = "XSkat License", + OsiApproved = false, + SPDX = "XSkat" + }, + new + { + Id = 353, + FsfApproved = false, + Link = "https://spdx.org/licenses/YPL-1.0.html#licenseText", + Name = "Yahoo! Public License v1.0", + OsiApproved = false, + SPDX = "YPL-1.0" + }, + new + { + Id = 354, + FsfApproved = true, + Link = "https://spdx.org/licenses/YPL-1.1.html#licenseText", + Name = "Yahoo! Public License v1.1", + OsiApproved = false, + SPDX = "YPL-1.1" + }, + new + { + Id = 355, + FsfApproved = false, + Link = "https://spdx.org/licenses/Zed.html#licenseText", + Name = "Zed License", + OsiApproved = false, + SPDX = "Zed" + }, + new + { + Id = 356, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zend-2.0.html#licenseText", + Name = "Zend License v2.0", + OsiApproved = false, + SPDX = "Zend-2.0" + }, + new + { + Id = 357, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zimbra-1.3.html#licenseText", + Name = "Zimbra Public License v1.3", + OsiApproved = false, + SPDX = "Zimbra-1.3" + }, + new + { + Id = 358, + FsfApproved = false, + Link = "https://spdx.org/licenses/Zimbra-1.4.html#licenseText", + Name = "Zimbra Public License v1.4", + OsiApproved = false, + SPDX = "Zimbra-1.4" + }, + new + { + Id = 359, + FsfApproved = true, + Link = "https://spdx.org/licenses/Zlib.html#licenseText", + Name = "zlib License", + OsiApproved = true, + SPDX = "Zlib" + }, + new + { + Id = 360, + FsfApproved = false, + Link = "https://spdx.org/licenses/zlib-acknowledgement.html#licenseText", + Name = "zlib/libpng License with Acknowledgement", + OsiApproved = false, + SPDX = "zlib-acknowledgement" + }, + new + { + Id = 361, + FsfApproved = false, + Link = "https://spdx.org/licenses/ZPL-1.1.html#licenseText", + Name = "Zope Public License 1.1", + OsiApproved = false, + SPDX = "ZPL-1.1" + }, + new + { + Id = 362, + FsfApproved = true, + Link = "https://spdx.org/licenses/ZPL-2.0.html#licenseText", + Name = "Zope Public License 2.0", + OsiApproved = true, + SPDX = "ZPL-2.0" + }, + new + { + Id = 363, + FsfApproved = true, + Link = "https://spdx.org/licenses/ZPL-2.1.html#licenseText", + Name = "Zope Public License 2.1", + OsiApproved = false, + SPDX = "ZPL-2.1" + }); + }); + + modelBuilder.Entity("Cicm.Database.Models.Log", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Browser") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("browser") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Date") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("date") + .HasColumnType("char(20)") + .HasDefaultValueSql("''"); + + b.Property("Ip") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("ip") + .HasColumnType("char(16)") + .HasDefaultValueSql("''"); + + b.Property("Referer") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("referer") + .HasColumnType("char(255)") + .HasDefaultValueSql("''"); + + b.HasKey("Id"); + + b.HasIndex("Browser") + .HasName("idx_log_browser"); + + b.HasIndex("Date") + .HasName("idx_log_date"); + + b.HasIndex("Ip") + .HasName("idx_log_ip"); + + b.HasIndex("Referer") + .HasName("idx_log_referer"); + + b.ToTable("log"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Machine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .ValueGeneratedOnAdd() + .HasColumnName("company") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("FamilyId") + .HasColumnName("family") + .HasColumnType("int(11)"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("Model") + .HasColumnName("model") + .HasColumnType("varchar(50)") + .HasMaxLength(50); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_machines_company"); + + b.HasIndex("FamilyId") + .HasName("idx_machines_family"); + + b.HasIndex("Introduced") + .HasName("idx_machines_introduced"); + + b.HasIndex("Model") + .HasName("idx_machines_model"); + + b.HasIndex("Name") + .HasName("idx_machines_name"); + + b.HasIndex("Type") + .HasName("idx_machines_type"); + + b.ToTable("machines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Name") + .IsRequired() + .HasColumnName("name") + .HasColumnType("varchar(255)") + .HasMaxLength(255); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_machine_families_company"); + + b.HasIndex("Name") + .HasName("idx_machine_families_name"); + + b.ToTable("machine_families"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachinePhoto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Author"); + + b.Property("CameraManufacturer"); + + b.Property("CameraModel"); + + b.Property("ColorSpace"); + + b.Property("Comments"); + + b.Property("Contrast"); + + b.Property("CreationDate"); + + b.Property("DigitalZoomRatio"); + + b.Property("ExifVersion"); + + b.Property("Exposure"); + + b.Property("ExposureMethod"); + + b.Property("ExposureProgram"); + + b.Property("Flash"); + + b.Property("Focal"); + + b.Property("FocalLength"); + + b.Property("FocalLengthEquivalent"); + + b.Property("HorizontalResolution"); + + b.Property("IsoRating"); + + b.Property("Lens"); + + b.Property("LicenseId"); + + b.Property("LightSource"); + + b.Property("MachineId"); + + b.Property("MeteringMode"); + + b.Property("Orientation"); + + b.Property("ResolutionUnit"); + + b.Property("Saturation"); + + b.Property("SceneCaptureType"); + + b.Property("SensingMethod"); + + b.Property("Sharpness"); + + b.Property("SoftwareUsed"); + + b.Property("Source"); + + b.Property("SubjectDistanceRange"); + + b.Property("UploadDate") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate(); + + b.Property("UserId"); + + b.Property("VerticalResolution"); + + b.Property("WhiteBalance"); + + b.HasKey("Id"); + + b.HasIndex("Author"); + + b.HasIndex("CameraManufacturer"); + + b.HasIndex("CameraModel"); + + b.HasIndex("ColorSpace"); + + b.HasIndex("Comments"); + + b.HasIndex("Contrast"); + + b.HasIndex("CreationDate"); + + b.HasIndex("DigitalZoomRatio"); + + b.HasIndex("ExifVersion"); + + b.HasIndex("Exposure"); + + b.HasIndex("ExposureMethod"); + + b.HasIndex("ExposureProgram"); + + b.HasIndex("Flash"); + + b.HasIndex("Focal"); + + b.HasIndex("FocalLength"); + + b.HasIndex("FocalLengthEquivalent"); + + b.HasIndex("HorizontalResolution"); + + b.HasIndex("IsoRating"); + + b.HasIndex("Lens"); + + b.HasIndex("LicenseId"); + + b.HasIndex("LightSource"); + + b.HasIndex("MachineId"); + + b.HasIndex("MeteringMode"); + + b.HasIndex("Orientation"); + + b.HasIndex("ResolutionUnit"); + + b.HasIndex("Saturation"); + + b.HasIndex("SceneCaptureType"); + + b.HasIndex("SensingMethod"); + + b.HasIndex("Sharpness"); + + b.HasIndex("SoftwareUsed"); + + b.HasIndex("SubjectDistanceRange"); + + b.HasIndex("UploadDate"); + + b.HasIndex("UserId"); + + b.HasIndex("VerticalResolution"); + + b.HasIndex("WhiteBalance"); + + b.ToTable("MachinePhotos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Magazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CountryId"); + + b.Property("FirstPublication"); + + b.Property("Issn") + .HasMaxLength(8); + + b.Property("NativeTitle"); + + b.Property("Published"); + + b.Property("Synopsis") + .HasMaxLength(262144); + + b.Property("Title") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("CountryId"); + + b.HasIndex("FirstPublication"); + + b.HasIndex("Issn"); + + b.HasIndex("NativeTitle"); + + b.HasIndex("Published"); + + b.HasIndex("Synopsis") + .HasAnnotation("MySql:FullTextIndex", true); + + b.HasIndex("Title"); + + b.ToTable("Magazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazineIssue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Caption") + .IsRequired(); + + b.Property("MagazineId"); + + b.Property("NativeCaption"); + + b.Property("Pages"); + + b.Property("ProductCode") + .HasMaxLength(18); + + b.Property("Published"); + + b.HasKey("Id"); + + b.HasIndex("Caption"); + + b.HasIndex("MagazineId"); + + b.HasIndex("NativeCaption"); + + b.HasIndex("Pages"); + + b.HasIndex("ProductCode"); + + b.HasIndex("Published"); + + b.ToTable("MagazineIssues"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineId"); + + b.Property("MagazineId"); + + b.HasKey("Id"); + + b.HasIndex("MachineId"); + + b.HasIndex("MagazineId"); + + b.ToTable("MagazinesByMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachineFamily", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineFamilyId"); + + b.Property("MagazineId"); + + b.HasKey("Id"); + + b.HasIndex("MachineFamilyId"); + + b.HasIndex("MagazineId"); + + b.ToTable("MagazinesByMachinesFamilies"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("Size") + .HasColumnName("size") + .HasColumnType("bigint(20)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Usage") + .ValueGeneratedOnAdd() + .HasColumnName("usage") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_memory_by_machine_machine"); + + b.HasIndex("Size") + .HasName("idx_memory_by_machine_size"); + + b.HasIndex("Speed") + .HasName("idx_memory_by_machine_speed"); + + b.HasIndex("Type") + .HasName("idx_memory_by_machine_type"); + + b.HasIndex("Usage") + .HasName("idx_memory_by_machine_usage"); + + b.ToTable("memory_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("Size"); + + b.Property("Speed"); + + b.Property("Type"); + + b.Property("Usage"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("Size"); + + b.HasIndex("Speed"); + + b.HasIndex("Type"); + + b.HasIndex("Usage"); + + b.ToTable("MemoryByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MoneyDonation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Donator") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("donator") + .HasColumnType("char(128)") + .HasDefaultValueSql("''"); + + b.Property("Quantity") + .ValueGeneratedOnAdd() + .HasColumnName("quantity") + .HasColumnType("decimal(11,2)") + .HasDefaultValueSql("'0.00'"); + + b.HasKey("Id"); + + b.HasIndex("Donator") + .HasName("idx_money_donations_donator"); + + b.HasIndex("Quantity") + .HasName("idx_money_donations_quantity"); + + b.ToTable("money_donations"); + }); + + modelBuilder.Entity("Cicm.Database.Models.News", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("AddedId") + .ValueGeneratedOnAdd() + .HasColumnName("added_id") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Date") + .HasColumnName("date") + .HasColumnType("datetime"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("AddedId") + .HasName("idx_news_ip"); + + b.HasIndex("Date") + .HasName("idx_news_date"); + + b.HasIndex("Type") + .HasName("idx_news_type"); + + b.ToTable("news"); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AcquisitionDate"); + + b.Property("Boxed"); + + b.Property("LastStatusDate"); + + b.Property("LostDate"); + + b.Property("MachineId"); + + b.Property("Manuals"); + + b.Property("SerialNumber"); + + b.Property("SerialNumberVisible") + .ValueGeneratedOnAdd() + .HasDefaultValue(true); + + b.Property("Status"); + + b.Property("Trade"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("AcquisitionDate"); + + b.HasIndex("Boxed"); + + b.HasIndex("LastStatusDate"); + + b.HasIndex("LostDate"); + + b.HasIndex("MachineId"); + + b.HasIndex("Manuals"); + + b.HasIndex("SerialNumber"); + + b.HasIndex("SerialNumberVisible"); + + b.HasIndex("Status"); + + b.HasIndex("Trade"); + + b.HasIndex("UserId"); + + b.ToTable("OwnedMachines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachinePhoto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Author"); + + b.Property("CameraManufacturer"); + + b.Property("CameraModel"); + + b.Property("ColorSpace"); + + b.Property("Comments"); + + b.Property("Contrast"); + + b.Property("CreationDate"); + + b.Property("DigitalZoomRatio"); + + b.Property("ExifVersion"); + + b.Property("Exposure"); + + b.Property("ExposureMethod"); + + b.Property("ExposureProgram"); + + b.Property("Flash"); + + b.Property("Focal"); + + b.Property("FocalLength"); + + b.Property("FocalLengthEquivalent"); + + b.Property("HorizontalResolution"); + + b.Property("IsoRating"); + + b.Property("Lens"); + + b.Property("LicenseId"); + + b.Property("LightSource"); + + b.Property("MeteringMode"); + + b.Property("Orientation"); + + b.Property("OwnedMachineId"); + + b.Property("ResolutionUnit"); + + b.Property("Saturation"); + + b.Property("SceneCaptureType"); + + b.Property("SensingMethod"); + + b.Property("Sharpness"); + + b.Property("SoftwareUsed"); + + b.Property("SubjectDistanceRange"); + + b.Property("UploadDate") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate(); + + b.Property("UserId"); + + b.Property("VerticalResolution"); + + b.Property("WhiteBalance"); + + b.HasKey("Id"); + + b.HasIndex("Author"); + + b.HasIndex("CameraManufacturer"); + + b.HasIndex("CameraModel"); + + b.HasIndex("ColorSpace"); + + b.HasIndex("Comments"); + + b.HasIndex("Contrast"); + + b.HasIndex("CreationDate"); + + b.HasIndex("DigitalZoomRatio"); + + b.HasIndex("ExifVersion"); + + b.HasIndex("Exposure"); + + b.HasIndex("ExposureMethod"); + + b.HasIndex("ExposureProgram"); + + b.HasIndex("Flash"); + + b.HasIndex("Focal"); + + b.HasIndex("FocalLength"); + + b.HasIndex("FocalLengthEquivalent"); + + b.HasIndex("HorizontalResolution"); + + b.HasIndex("IsoRating"); + + b.HasIndex("Lens"); + + b.HasIndex("LicenseId"); + + b.HasIndex("LightSource"); + + b.HasIndex("MeteringMode"); + + b.HasIndex("Orientation"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("ResolutionUnit"); + + b.HasIndex("Saturation"); + + b.HasIndex("SceneCaptureType"); + + b.HasIndex("SensingMethod"); + + b.HasIndex("Sharpness"); + + b.HasIndex("SoftwareUsed"); + + b.HasIndex("SubjectDistanceRange"); + + b.HasIndex("UploadDate"); + + b.HasIndex("UserId"); + + b.HasIndex("VerticalResolution"); + + b.HasIndex("WhiteBalance"); + + b.ToTable("OwnedMachinePhotos"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByBook", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BookId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("BookId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByBooks"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByCompany", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CompanyId"); + + b.Property("End"); + + b.Property("Ongoing"); + + b.Property("PersonId"); + + b.Property("Position"); + + b.Property("Start"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.HasIndex("End"); + + b.HasIndex("PersonId"); + + b.HasIndex("Position"); + + b.HasIndex("Start"); + + b.ToTable("PeopleByCompany"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DocumentId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByDocuments"); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByMagazine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MagazineId"); + + b.Property("PersonId"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("char(3)"); + + b.HasKey("Id"); + + b.HasIndex("MagazineId"); + + b.HasIndex("PersonId"); + + b.HasIndex("RoleId"); + + b.ToTable("PeopleByMagazines"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Person", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Alias"); + + b.Property("BirthDate"); + + b.Property("CountryOfBirthId"); + + b.Property("DeathDate"); + + b.Property("DisplayName"); + + b.Property("DocumentPersonId"); + + b.Property("Facebook"); + + b.Property("Name") + .IsRequired(); + + b.Property("Photo"); + + b.Property("Surname") + .IsRequired(); + + b.Property("Twitter"); + + b.Property("Webpage"); + + b.HasKey("Id"); + + b.HasIndex("Alias"); + + b.HasIndex("BirthDate"); + + b.HasIndex("CountryOfBirthId"); + + b.HasIndex("DeathDate"); + + b.HasIndex("DisplayName"); + + b.HasIndex("Facebook"); + + b.HasIndex("Name"); + + b.HasIndex("Photo"); + + b.HasIndex("Surname"); + + b.HasIndex("Twitter"); + + b.HasIndex("Webpage"); + + b.ToTable("People"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Processor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("AddrBus") + .HasColumnName("addr_bus") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Cores") + .HasColumnName("cores") + .HasColumnType("int(11)"); + + b.Property("DataBus") + .HasColumnName("data_bus") + .HasColumnType("int(11)"); + + b.Property("DieSize") + .HasColumnName("die_size"); + + b.Property("FprSize") + .HasColumnName("FPR_size") + .HasColumnType("int(11)"); + + b.Property("Fprs") + .HasColumnName("FPRs") + .HasColumnType("int(11)"); + + b.Property("GprSize") + .HasColumnName("GPR_size") + .HasColumnType("int(11)"); + + b.Property("Gprs") + .HasColumnName("GPRs") + .HasColumnType("int(11)"); + + b.Property("InstructionSetId") + .HasColumnName("instruction_set") + .HasColumnType("int(11)"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("L1Data") + .HasColumnName("L1_data"); + + b.Property("L1Instruction") + .HasColumnName("L1_instruction"); + + b.Property("L2"); + + b.Property("L3"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(50)") + .HasDefaultValueSql("''") + .HasMaxLength(50); + + b.Property("Package") + .HasColumnName("package") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Process") + .HasColumnName("process") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("ProcessNm") + .HasColumnName("process_nm"); + + b.Property("SimdRegisters") + .HasColumnName("SIMD_registers") + .HasColumnType("int(11)"); + + b.Property("SimdSize") + .HasColumnName("SIMD_size") + .HasColumnType("int(11)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.Property("ThreadsPerCore") + .HasColumnName("threads_per_core") + .HasColumnType("int(11)"); + + b.Property("Transistors") + .HasColumnName("transistors") + .HasColumnType("bigint(20)"); + + b.HasKey("Id"); + + b.HasIndex("AddrBus") + .HasName("idx_processors_addr_bus"); + + b.HasIndex("CompanyId") + .HasName("idx_processors_company"); + + b.HasIndex("Cores") + .HasName("idx_processors_cores"); + + b.HasIndex("DataBus") + .HasName("idx_processors_data_bus"); + + b.HasIndex("DieSize") + .HasName("idx_processors_die_size"); + + b.HasIndex("FprSize") + .HasName("idx_processors_FPR_size"); + + b.HasIndex("Fprs") + .HasName("idx_processors_FPRs"); + + b.HasIndex("GprSize") + .HasName("idx_processors_GPR_size"); + + b.HasIndex("Gprs") + .HasName("idx_processors_GPRs"); + + b.HasIndex("InstructionSetId") + .HasName("idx_processors_instruction_set"); + + b.HasIndex("Introduced") + .HasName("idx_processors_introduced"); + + b.HasIndex("L1Data") + .HasName("idx_processors_L1_data"); + + b.HasIndex("L1Instruction") + .HasName("idx_processors_L1_instruction"); + + b.HasIndex("L2") + .HasName("idx_processors_L2"); + + b.HasIndex("L3") + .HasName("idx_processors_L3"); + + b.HasIndex("ModelCode") + .HasName("idx_processors_model_code"); + + b.HasIndex("Name") + .HasName("idx_processors_name"); + + b.HasIndex("Package") + .HasName("idx_processors_package"); + + b.HasIndex("Process") + .HasName("idx_processors_process"); + + b.HasIndex("ProcessNm") + .HasName("idx_processors_process_nm"); + + b.HasIndex("SimdRegisters") + .HasName("idx_processors_SIMD_registers"); + + b.HasIndex("SimdSize") + .HasName("idx_processors_SIMD_size"); + + b.HasIndex("Speed") + .HasName("idx_processors_speed"); + + b.HasIndex("ThreadsPerCore") + .HasName("idx_processors_threads_per_core"); + + b.HasIndex("Transistors") + .HasName("idx_processors_transistors"); + + b.ToTable("processors"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("ProcessorId") + .HasColumnName("processor") + .HasColumnType("int(11)"); + + b.Property("Speed") + .HasColumnName("speed"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_processors_by_machine_machine"); + + b.HasIndex("ProcessorId") + .HasName("idx_processors_by_machine_processor"); + + b.HasIndex("Speed") + .HasName("idx_processors_by_machine_speed"); + + b.ToTable("processors_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("ProcessorId"); + + b.Property("Speed"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("ProcessorId"); + + b.HasIndex("Speed"); + + b.ToTable("ProcessorsByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Resolution", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("Chars") + .ValueGeneratedOnAdd() + .HasColumnName("chars") + .HasColumnType("tinyint(1)") + .HasDefaultValueSql("'0'"); + + b.Property("Colors") + .HasColumnName("colors") + .HasColumnType("bigint(20)"); + + b.Property("Grayscale"); + + b.Property("Height") + .ValueGeneratedOnAdd() + .HasColumnName("height") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("Palette") + .HasColumnName("palette") + .HasColumnType("bigint(20)"); + + b.Property("Width") + .ValueGeneratedOnAdd() + .HasColumnName("width") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("Colors") + .HasName("idx_resolutions_colors"); + + b.HasIndex("Height") + .HasName("idx_resolutions_height"); + + b.HasIndex("Palette") + .HasName("idx_resolutions_palette"); + + b.HasIndex("Width") + .HasName("idx_resolutions_width"); + + b.HasIndex("Width", "Height") + .HasName("idx_resolutions_resolution"); + + b.HasIndex("Width", "Height", "Colors") + .HasName("idx_resolutions_resolution_with_color"); + + b.HasIndex("Width", "Height", "Colors", "Palette") + .HasName("idx_resolutions_resolution_with_color_and_palette"); + + b.ToTable("resolutions"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByGpu", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("GpuId") + .HasColumnName("gpu") + .HasColumnType("int(11)"); + + b.Property("ResolutionId") + .HasColumnName("resolution") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("GpuId") + .HasName("idx_resolutions_by_gpu_gpu"); + + b.HasIndex("ResolutionId") + .HasName("idx_resolutions_by_gpu_resolution"); + + b.ToTable("resolutions_by_gpu"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByScreen", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ResolutionId"); + + b.Property("ScreenId"); + + b.HasKey("Id"); + + b.HasIndex("ResolutionId"); + + b.HasIndex("ScreenId"); + + b.ToTable("ResolutionsByScreen"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Screen", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Diagonal"); + + b.Property("EffectiveColors"); + + b.Property("Height"); + + b.Property("NativeResolutionId"); + + b.Property("Type") + .IsRequired(); + + b.Property("Width"); + + b.HasKey("Id"); + + b.HasIndex("Diagonal"); + + b.HasIndex("EffectiveColors"); + + b.HasIndex("Height"); + + b.HasIndex("NativeResolutionId"); + + b.HasIndex("Type"); + + b.HasIndex("Width"); + + b.ToTable("Screens"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ScreensByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("MachineId"); + + b.Property("ScreenId"); + + b.HasKey("Id"); + + b.HasIndex("MachineId"); + + b.HasIndex("ScreenId"); + + b.ToTable("ScreensByMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("SoundSynthId") + .HasColumnName("sound_synth") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("MachineId") + .HasName("idx_sound_by_machine_machine"); + + b.HasIndex("SoundSynthId") + .HasName("idx_sound_by_machine_sound_synth"); + + b.ToTable("sound_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnedMachineId"); + + b.Property("SoundSynthId"); + + b.HasKey("Id"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("SoundSynthId"); + + b.ToTable("SoundByOwnedMachine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundSynth", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("int(11)"); + + b.Property("CompanyId") + .HasColumnName("company") + .HasColumnType("int(11)"); + + b.Property("Depth") + .HasColumnName("depth") + .HasColumnType("int(11)"); + + b.Property("Frequency") + .HasColumnName("frequency"); + + b.Property("Introduced") + .HasColumnName("introduced") + .HasColumnType("datetime"); + + b.Property("ModelCode") + .HasColumnName("model_code") + .HasColumnType("varchar(45)") + .HasMaxLength(45); + + b.Property("Name") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnName("name") + .HasColumnType("char(50)") + .HasDefaultValueSql("''") + .HasMaxLength(50); + + b.Property("SquareWave") + .HasColumnName("square_wave") + .HasColumnType("int(11)"); + + b.Property("Type") + .HasColumnName("type") + .HasColumnType("int(11)"); + + b.Property("Voices") + .HasColumnName("voices") + .HasColumnType("int(11)"); + + b.Property("WhiteNoise") + .HasColumnName("white_noise") + .HasColumnType("int(11)"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId") + .HasName("idx_sound_synths_company"); + + b.HasIndex("Depth") + .HasName("idx_sound_synths_depth"); + + b.HasIndex("Frequency") + .HasName("idx_sound_synths_frequency"); + + b.HasIndex("Introduced") + .HasName("idx_sound_synths_introduced"); + + b.HasIndex("ModelCode") + .HasName("idx_sound_synths_model_code"); + + b.HasIndex("Name") + .HasName("idx_sound_synths_name"); + + b.HasIndex("SquareWave") + .HasName("idx_sound_synths_square_wave"); + + b.HasIndex("Type") + .HasName("idx_sound_synths_type"); + + b.HasIndex("Voices") + .HasName("idx_sound_synths_voices"); + + b.HasIndex("WhiteNoise") + .HasName("idx_sound_synths_white_noise"); + + b.ToTable("sound_synths"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("bigint(20)"); + + b.Property("Capacity") + .HasColumnName("capacity") + .HasColumnType("bigint(20)"); + + b.Property("Interface") + .ValueGeneratedOnAdd() + .HasColumnName("interface") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.Property("MachineId") + .HasColumnName("machine") + .HasColumnType("int(11)"); + + b.Property("Type") + .ValueGeneratedOnAdd() + .HasColumnName("type") + .HasColumnType("int(11)") + .HasDefaultValueSql("'0'"); + + b.HasKey("Id"); + + b.HasIndex("Capacity") + .HasName("idx_storage_capacity"); + + b.HasIndex("Interface") + .HasName("idx_storage_interface"); + + b.HasIndex("MachineId") + .HasName("idx_storage_machine"); + + b.HasIndex("Type") + .HasName("idx_storage_type"); + + b.ToTable("storage_by_machine"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByOwnedMachine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Capacity"); + + b.Property("Interface"); + + b.Property("OwnedMachineId"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.HasIndex("Capacity"); + + b.HasIndex("Interface"); + + b.HasIndex("OwnedMachineId"); + + b.HasIndex("Type"); + + b.ToTable("StorageByOwnedMachine"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Discriminator") + .IsRequired(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex"); + + b.ToTable("AspNetUsers"); + + b.HasDiscriminator("Discriminator").HasValue("IdentityUser"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("ProviderKey") + .HasMaxLength(128); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("Name") + .HasMaxLength(128); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ApplicationUser", b => + { + b.HasBaseType("Microsoft.AspNetCore.Identity.IdentityUser"); + + b.HasDiscriminator().HasValue("ApplicationUser"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Book", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Books") + .HasForeignKey("CountryId"); + + b.HasOne("Cicm.Database.Models.Book", "Previous") + .WithOne("Next") + .HasForeignKey("Cicm.Database.Models.Book", "PreviousId"); + + b.HasOne("Cicm.Database.Models.Book", "Source") + .WithMany("Derivates") + .HasForeignKey("SourceId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachine", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("Machines") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Books") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.BooksByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("MachineFamilies") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Books") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByBook", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("Companies") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Books") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByDocument", b => + { + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Documents") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("Companies") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompaniesByMagazine", b => + { + b.HasOne("Cicm.Database.Models.DocumentCompany", "Company") + .WithMany("Magazines") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Magazine", "Magazine") + .WithMany("Companies") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Company", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Companies") + .HasForeignKey("CountryId") + .HasConstraintName("fk_companies_country"); + + b.HasOne("Cicm.Database.Models.Company", "SoldTo") + .WithMany("InverseSoldToNavigation") + .HasForeignKey("SoldToId") + .HasConstraintName("fk_companies_sold_to"); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyDescription", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Descriptions") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.CompanyLogo", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Logos") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_company_logos_company1"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Document", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Documents") + .HasForeignKey("CountryId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentCompany", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithOne("DocumentCompany") + .HasForeignKey("Cicm.Database.Models.DocumentCompany", "CompanyId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentPerson", b => + { + b.HasOne("Cicm.Database.Models.Person", "Person") + .WithOne("DocumentPerson") + .HasForeignKey("Cicm.Database.Models.DocumentPerson", "PersonId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachine", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("Machines") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Documents") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.DocumentsByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("MachineFamilies") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Documents") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Gpu", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Gpus") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_gpus_company"); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByMachine", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany("GpusByMachine") + .HasForeignKey("GpuId") + .HasConstraintName("fk_gpus_by_machine_gpu") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Gpus") + .HasForeignKey("MachineId") + .HasConstraintName("fk_gpus_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.GpusByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany() + .HasForeignKey("GpuId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Gpus") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.InstructionSetExtensionsByProcessor", b => + { + b.HasOne("Cicm.Database.Models.InstructionSetExtension", "Extension") + .WithMany("InstructionSetExtensionsByProcessor") + .HasForeignKey("ExtensionId") + .HasConstraintName("fk_extension_extension_id"); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany("InstructionSetExtensions") + .HasForeignKey("ProcessorId") + .HasConstraintName("fk_extension_processor_id"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Machine", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Machines") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_machines_company"); + + b.HasOne("Cicm.Database.Models.MachineFamily", "Family") + .WithMany("Machines") + .HasForeignKey("FamilyId") + .HasConstraintName("fk_machines_family"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachineFamily", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("MachineFamilies") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_machine_families_company") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MachinePhoto", b => + { + b.HasOne("Cicm.Database.Models.License", "License") + .WithMany("Photos") + .HasForeignKey("LicenseId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Photos") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.SetNull); + }); + + modelBuilder.Entity("Cicm.Database.Models.Magazine", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "Country") + .WithMany("Magazines") + .HasForeignKey("CountryId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazineIssue", b => + { + b.HasOne("Cicm.Database.Models.Magazine", "Magazine") + .WithMany("Issues") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Magazines") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("Machines") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MagazinesByMachineFamily", b => + { + b.HasOne("Cicm.Database.Models.MachineFamily", "MachineFamily") + .WithMany("Magazines") + .HasForeignKey("MachineFamilyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("MachineFamilies") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Memory") + .HasForeignKey("MachineId") + .HasConstraintName("fk_memory_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.MemoryByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Memory") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany() + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("OwnedMachines") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.OwnedMachinePhoto", b => + { + b.HasOne("Cicm.Database.Models.License", "License") + .WithMany("OwnedMachinePhotos") + .HasForeignKey("LicenseId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Photos") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.ApplicationUser", "User") + .WithMany("OwnedMachinePhotos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByBook", b => + { + b.HasOne("Cicm.Database.Models.Book", "Book") + .WithMany("People") + .HasForeignKey("BookId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Books") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByCompany", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("People") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Person", "Person") + .WithMany("Companies") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByDocument", b => + { + b.HasOne("Cicm.Database.Models.Document", "Document") + .WithMany("People") + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Documents") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.PeopleByMagazine", b => + { + b.HasOne("Cicm.Database.Models.MagazineIssue", "Magazine") + .WithMany("People") + .HasForeignKey("MagazineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentPerson", "Person") + .WithMany("Magazines") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.DocumentRole", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Person", b => + { + b.HasOne("Cicm.Database.Models.Iso31661Numeric", "CountryOfBirth") + .WithMany("People") + .HasForeignKey("CountryOfBirthId"); + }); + + modelBuilder.Entity("Cicm.Database.Models.Processor", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("Processors") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_processors_company"); + + b.HasOne("Cicm.Database.Models.InstructionSet", "InstructionSet") + .WithMany("Processors") + .HasForeignKey("InstructionSetId") + .HasConstraintName("fk_processors_instruction_set"); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Processors") + .HasForeignKey("MachineId") + .HasConstraintName("fk_processors_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany("ProcessorsByMachine") + .HasForeignKey("ProcessorId") + .HasConstraintName("fk_processors_by_machine_processor") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ProcessorsByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Processors") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Processor", "Processor") + .WithMany() + .HasForeignKey("ProcessorId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByGpu", b => + { + b.HasOne("Cicm.Database.Models.Gpu", "Gpu") + .WithMany("ResolutionsByGpu") + .HasForeignKey("GpuId") + .HasConstraintName("fk_resolutions_by_gpu_gpu") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Resolution", "Resolution") + .WithMany("ResolutionsByGpu") + .HasForeignKey("ResolutionId") + .HasConstraintName("fk_resolutions_by_gpu_resolution") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ResolutionsByScreen", b => + { + b.HasOne("Cicm.Database.Models.Resolution", "Resolution") + .WithMany("ResolutionsByScreen") + .HasForeignKey("ResolutionId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Screen", "Screen") + .WithMany("Resolutions") + .HasForeignKey("ScreenId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.Screen", b => + { + b.HasOne("Cicm.Database.Models.Resolution", "NativeResolution") + .WithMany("Screens") + .HasForeignKey("NativeResolutionId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.ScreensByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Screens") + .HasForeignKey("MachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.Screen", "Screen") + .WithMany("ScreensByMachines") + .HasForeignKey("ScreenId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Sound") + .HasForeignKey("MachineId") + .HasConstraintName("fk_sound_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.SoundSynth", "SoundSynth") + .WithMany("SoundByMachine") + .HasForeignKey("SoundSynthId") + .HasConstraintName("fk_sound_by_machine_sound_synth") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Sound") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Cicm.Database.Models.SoundSynth", "SoundSynth") + .WithMany() + .HasForeignKey("SoundSynthId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.SoundSynth", b => + { + b.HasOne("Cicm.Database.Models.Company", "Company") + .WithMany("SoundSynths") + .HasForeignKey("CompanyId") + .HasConstraintName("fk_sound_synths_company"); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByMachine", b => + { + b.HasOne("Cicm.Database.Models.Machine", "Machine") + .WithMany("Storage") + .HasForeignKey("MachineId") + .HasConstraintName("fk_storage_by_machine_machine") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Cicm.Database.Models.StorageByOwnedMachine", b => + { + b.HasOne("Cicm.Database.Models.OwnedMachine", "OwnedMachine") + .WithMany("Storage") + .HasForeignKey("OwnedMachineId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.cs b/Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.cs new file mode 100644 index 00000000..6abdf785 --- /dev/null +++ b/Cicm.Database/Migrations/20190630212811_AddDisplayNameAndAliasToDocumentPerson.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Cicm.Database.Migrations +{ + public partial class AddDisplayNameAndAliasToDocumentPerson : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn("Alias", "DocumentPeople", nullable: true); + + migrationBuilder.AddColumn("DisplayName", "DocumentPeople", nullable: true); + + migrationBuilder.CreateIndex("IX_DocumentPeople_Alias", "DocumentPeople", "Alias"); + + migrationBuilder.CreateIndex("IX_DocumentPeople_DisplayName", "DocumentPeople", "DisplayName"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex("IX_DocumentPeople_Alias", "DocumentPeople"); + + migrationBuilder.DropIndex("IX_DocumentPeople_DisplayName", "DocumentPeople"); + + migrationBuilder.DropColumn("Alias", "DocumentPeople"); + + migrationBuilder.DropColumn("DisplayName", "DocumentPeople"); + } + } +} \ No newline at end of file diff --git a/Cicm.Database/Migrations/cicmContextModelSnapshot.cs b/Cicm.Database/Migrations/cicmContextModelSnapshot.cs index 6deb4a9f..f3ba9c0c 100644 --- a/Cicm.Database/Migrations/cicmContextModelSnapshot.cs +++ b/Cicm.Database/Migrations/cicmContextModelSnapshot.cs @@ -398,6 +398,10 @@ namespace Cicm.Database.Migrations { b.Property("Id").ValueGeneratedOnAdd(); + b.Property("Alias"); + + b.Property("DisplayName"); + b.Property("Name").IsRequired(); b.Property("PersonId"); @@ -406,6 +410,10 @@ namespace Cicm.Database.Migrations b.HasKey("Id"); + b.HasIndex("Alias"); + + b.HasIndex("DisplayName"); + b.HasIndex("Name"); b.HasIndex("PersonId").IsUnique(); diff --git a/Cicm.Database/Models/DocumentPerson.cs b/Cicm.Database/Models/DocumentPerson.cs index e79ed2d3..a0fe6a2b 100644 --- a/Cicm.Database/Models/DocumentPerson.cs +++ b/Cicm.Database/Models/DocumentPerson.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -9,15 +10,19 @@ namespace Cicm.Database.Models [Required] public string Name { get; set; } [Required] - public string Surname { get; set; } - public int? PersonId { get; set; } + public string Surname { get; set; } + public int? PersonId { get; set; } + public string Alias { get; set; } + [DisplayName("Name to be displayed")] + public string DisplayName { get; set; } + + [NotMapped] + [DisplayName("Name")] + public string FullName => DisplayName ?? Alias ?? $"{Name} {Surname}"; public virtual Person Person { get; set; } public virtual ICollection Documents { get; set; } public virtual ICollection Books { get; set; } public virtual ICollection Magazines { get; set; } - - [NotMapped] - public string FullName => $"{Name} {Surname}"; } } \ No newline at end of file diff --git a/Cicm.Database/Models/cicmContext.cs b/Cicm.Database/Models/cicmContext.cs index fe0738fc..84293f25 100644 --- a/Cicm.Database/Models/cicmContext.cs +++ b/Cicm.Database/Models/cicmContext.cs @@ -398,6 +398,10 @@ namespace Cicm.Database.Models entity.HasIndex(e => e.PersonId).IsUnique(); + entity.HasIndex(e => e.Alias); + + entity.HasIndex(e => e.DisplayName); + entity.HasOne(d => d.Person).WithOne(p => p.DocumentPerson) .HasForeignKey(d => d.DocumentPersonId).OnDelete(DeleteBehavior.SetNull); }); diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 8f4511cc..a017420b 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.875 + 3.0.99.881 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From 64067188800eb53d37a9c0bdcb10e688be71ea76 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 30 Jun 2019 22:51:08 +0100 Subject: [PATCH 17/23] Implement document people crud pages. --- Cicm.Database/Models/DocumentCompany.cs | 4 +- Cicm.Database/Models/DocumentPerson.cs | 3 +- .../Controllers/DocumentPeopleController.cs | 149 ++++++++++++++++++ .../Admin/Models/DocumentPersonViewModel.cs | 12 ++ .../Admin/Views/DocumentPeople/Create.cshtml | 85 ++++++++++ .../Admin/Views/DocumentPeople/Delete.cshtml | 60 +++++++ .../Admin/Views/DocumentPeople/Details.cshtml | 58 +++++++ .../Admin/Views/DocumentPeople/Edit.cshtml | 87 ++++++++++ .../Admin/Views/DocumentPeople/Index.cshtml | 61 +++++++ cicm_web/Areas/Admin/Views/Home/Index.cshtml | 1 + cicm_web/cicm_web.csproj | 2 +- 11 files changed, 519 insertions(+), 3 deletions(-) create mode 100644 cicm_web/Areas/Admin/Controllers/DocumentPeopleController.cs create mode 100644 cicm_web/Areas/Admin/Models/DocumentPersonViewModel.cs create mode 100644 cicm_web/Areas/Admin/Views/DocumentPeople/Create.cshtml create mode 100644 cicm_web/Areas/Admin/Views/DocumentPeople/Delete.cshtml create mode 100644 cicm_web/Areas/Admin/Views/DocumentPeople/Details.cshtml create mode 100644 cicm_web/Areas/Admin/Views/DocumentPeople/Edit.cshtml create mode 100644 cicm_web/Areas/Admin/Views/DocumentPeople/Index.cshtml diff --git a/Cicm.Database/Models/DocumentCompany.cs b/Cicm.Database/Models/DocumentCompany.cs index f32c907a..bb970ff4 100644 --- a/Cicm.Database/Models/DocumentCompany.cs +++ b/Cicm.Database/Models/DocumentCompany.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace Cicm.Database.Models @@ -9,7 +10,8 @@ namespace Cicm.Database.Models public string Name { get; set; } public int? CompanyId { get; set; } - public virtual Company Company { get; set; } + [DisplayName("Linked company")] + public virtual Company Company { get; set; } public virtual ICollection Documents { get; set; } public virtual ICollection Books { get; set; } public virtual ICollection Magazines { get; set; } diff --git a/Cicm.Database/Models/DocumentPerson.cs b/Cicm.Database/Models/DocumentPerson.cs index a0fe6a2b..bbd87591 100644 --- a/Cicm.Database/Models/DocumentPerson.cs +++ b/Cicm.Database/Models/DocumentPerson.cs @@ -20,7 +20,8 @@ namespace Cicm.Database.Models [DisplayName("Name")] public string FullName => DisplayName ?? Alias ?? $"{Name} {Surname}"; - public virtual Person Person { get; set; } + [DisplayName("Linked person")] + public virtual Person Person { get; set; } public virtual ICollection Documents { get; set; } public virtual ICollection Books { get; set; } public virtual ICollection Magazines { get; set; } diff --git a/cicm_web/Areas/Admin/Controllers/DocumentPeopleController.cs b/cicm_web/Areas/Admin/Controllers/DocumentPeopleController.cs new file mode 100644 index 00000000..d4e47b99 --- /dev/null +++ b/cicm_web/Areas/Admin/Controllers/DocumentPeopleController.cs @@ -0,0 +1,149 @@ +using System.Linq; +using System.Threading.Tasks; +using Cicm.Database.Models; +using cicm_web.Areas.Admin.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.EntityFrameworkCore; + +namespace cicm_web.Areas.Admin.Controllers +{ + [Area("Admin")] + [Authorize] + public class DocumentPeopleController : Controller + { + readonly cicmContext _context; + + public DocumentPeopleController(cicmContext context) + { + _context = context; + } + + // GET: DocumentPeople + public async Task Index() + { + return View(await _context.DocumentPeople.OrderBy(d => d.FullName) + .Select(d => new DocumentPersonViewModel + { + Id = d.Id, + Name = d.FullName, + Person = d.Person.FullName, + PersonId = d.PersonId + }).ToListAsync()); + } + + // GET: DocumentPeople/Details/5 + public async Task Details(int? id) + { + if(id == null) return NotFound(); + + DocumentPerson documentPerson = await _context.DocumentPeople.FirstOrDefaultAsync(m => m.Id == id); + if(documentPerson == null) return NotFound(); + + return View(documentPerson); + } + + // GET: DocumentPeople/Create + public IActionResult Create() + { + ViewData["PersonId"] = + new SelectList(_context.People.OrderBy(c => c.FullName).Select(c => new {c.Id, Name = c.FullName}), + "Id", "Name"); + return View(); + } + + // POST: DocumentPeople/Create + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Create([Bind("Name,Surname,Alias,DisplayName,PersonId,Id")] + DocumentPerson documentPerson) + { + if(!ModelState.IsValid) return View(documentPerson); + + _context.Add(documentPerson); + await _context.SaveChangesAsync(); + return RedirectToAction(nameof(Index)); + } + + // GET: DocumentPeople/Edit/5 + public async Task Edit(int? id) + { + if(id == null) return NotFound(); + + DocumentPerson documentPerson = await _context.DocumentPeople.FindAsync(id); + + if(documentPerson == null) return NotFound(); + + ViewData["PersonId"] = + new SelectList(_context.People.OrderBy(c => c.FullName).Select(c => new {c.Id, Name = c.FullName}), + "Id", "Name", documentPerson.PersonId); + + return View(documentPerson); + } + + // POST: DocumentPeople/Edit/5 + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Edit(int id, [Bind("Name,Surname,Alias,DisplayName,PersonId,Id")] + DocumentPerson documentPerson) + { + if(id != documentPerson.Id) return NotFound(); + + if(ModelState.IsValid) + { + try + { + _context.Update(documentPerson); + await _context.SaveChangesAsync(); + } + catch(DbUpdateConcurrencyException) + { + if(!DocumentPersonExists(documentPerson.Id)) return NotFound(); + + throw; + } + + return RedirectToAction(nameof(Index)); + } + + ViewData["PersonId"] = + new SelectList(_context.People.OrderBy(c => c.FullName).Select(c => new {c.Id, Name = c.FullName}), + "Id", "Name", documentPerson.PersonId); + + return View(documentPerson); + } + + // GET: DocumentPeople/Delete/5 + public async Task Delete(int? id) + { + if(id == null) return NotFound(); + + DocumentPerson documentPerson = await _context.DocumentPeople.FirstOrDefaultAsync(m => m.Id == id); + if(documentPerson == null) return NotFound(); + + return View(documentPerson); + } + + // POST: DocumentPeople/Delete/5 + [HttpPost] + [ActionName("Delete")] + [ValidateAntiForgeryToken] + public async Task DeleteConfirmed(int id) + { + DocumentPerson documentPerson = await _context.DocumentPeople.FindAsync(id); + _context.DocumentPeople.Remove(documentPerson); + await _context.SaveChangesAsync(); + return RedirectToAction(nameof(Index)); + } + + bool DocumentPersonExists(int id) + { + return _context.DocumentPeople.Any(e => e.Id == id); + } + } +} \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Models/DocumentPersonViewModel.cs b/cicm_web/Areas/Admin/Models/DocumentPersonViewModel.cs new file mode 100644 index 00000000..c9d70426 --- /dev/null +++ b/cicm_web/Areas/Admin/Models/DocumentPersonViewModel.cs @@ -0,0 +1,12 @@ +using System.ComponentModel; + +namespace cicm_web.Areas.Admin.Models +{ + public class DocumentPersonViewModel : BaseViewModel + { + public string Name { get; set; } + [DisplayName("Linked person")] + public string Person { get; set; } + public int? PersonId { get; set; } + } +} \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/DocumentPeople/Create.cshtml b/cicm_web/Areas/Admin/Views/DocumentPeople/Create.cshtml new file mode 100644 index 00000000..1e1820dd --- /dev/null +++ b/cicm_web/Areas/Admin/Views/DocumentPeople/Create.cshtml @@ -0,0 +1,85 @@ +@model Cicm.Database.Models.DocumentPerson + +@{ + ViewData["Title"] = "Create"; +} + +

Create

+ +

Document person

+
+
+
+
+
+
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + +
+ + +
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } +} \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/DocumentPeople/Delete.cshtml b/cicm_web/Areas/Admin/Views/DocumentPeople/Delete.cshtml new file mode 100644 index 00000000..ac01a8cd --- /dev/null +++ b/cicm_web/Areas/Admin/Views/DocumentPeople/Delete.cshtml @@ -0,0 +1,60 @@ +@model Cicm.Database.Models.DocumentPerson + +@{ + ViewData["Title"] = "Delete"; +} + +

Delete

+ +

Are you sure you want to delete this?

+
+

Document person

+
+
+
+ @Html.DisplayNameFor(model => model.Name) +
+
+ @Html.DisplayFor(model => model.Name) +
+
+ @Html.DisplayNameFor(model => model.Surname) +
+
+ @Html.DisplayFor(model => model.Surname) +
+
+ @Html.DisplayNameFor(model => model.Alias) +
+
+ @Html.DisplayFor(model => model.Alias) +
+
+ @Html.DisplayNameFor(model => model.DisplayName) +
+
+ @Html.DisplayFor(model => model.DisplayName) +
+
+ @Html.DisplayNameFor(model => model.Person) +
+
+ + @Html.DisplayFor(modelItem => Model.Person.FullName) +
+
+ +
+ + + + Back to List + + +
\ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/DocumentPeople/Details.cshtml b/cicm_web/Areas/Admin/Views/DocumentPeople/Details.cshtml new file mode 100644 index 00000000..f8a65089 --- /dev/null +++ b/cicm_web/Areas/Admin/Views/DocumentPeople/Details.cshtml @@ -0,0 +1,58 @@ +@model Cicm.Database.Models.DocumentPerson + +@{ + ViewData["Title"] = "Details"; +} + +

Details

+ +
+

Document person

+
+
+
+ @Html.DisplayNameFor(model => model.Name) +
+
+ @Html.DisplayFor(model => model.Name) +
+
+ @Html.DisplayNameFor(model => model.Surname) +
+
+ @Html.DisplayFor(model => model.Surname) +
+
+ @Html.DisplayNameFor(model => model.Alias) +
+
+ @Html.DisplayFor(model => model.Alias) +
+
+ @Html.DisplayNameFor(model => model.DisplayName) +
+
+ @Html.DisplayFor(model => model.DisplayName) +
+
+ @Html.DisplayNameFor(model => model.Person) +
+
+ + @Html.DisplayFor(modelItem => Model.Person.FullName) +
+
+
+ \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/DocumentPeople/Edit.cshtml b/cicm_web/Areas/Admin/Views/DocumentPeople/Edit.cshtml new file mode 100644 index 00000000..fb765fb2 --- /dev/null +++ b/cicm_web/Areas/Admin/Views/DocumentPeople/Edit.cshtml @@ -0,0 +1,87 @@ +@model Cicm.Database.Models.DocumentPerson + +@{ + ViewData["Title"] = "Edit"; +} + +

Edit

+ +

Document person

+
+
+
+
+
+
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + +
+ + + +
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } +} \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/DocumentPeople/Index.cshtml b/cicm_web/Areas/Admin/Views/DocumentPeople/Index.cshtml new file mode 100644 index 00000000..450c9347 --- /dev/null +++ b/cicm_web/Areas/Admin/Views/DocumentPeople/Index.cshtml @@ -0,0 +1,61 @@ +@using cicm_web.Areas.Admin.Models +@model IEnumerable + +@{ + ViewData["Title"] = "Index"; +} + +

Document people

+ +

+ + Create New + +

+
- @Html.DisplayNameFor(model => model.Name) - - @Html.DisplayNameFor(model => model.Surname) + @Html.DisplayNameFor(model => model.FullName) @Html.DisplayNameFor(model => model.CountryOfBirth) @@ -36,9 +33,6 @@ @Html.DisplayNameFor(model => model.Facebook) - @Html.DisplayNameFor(model => model.Photo) -
- @Html.DisplayFor(modelItem => item.Name) - - @Html.DisplayFor(modelItem => item.Surname) + @Html.DisplayFor(modelItem => item.FullName) @Html.DisplayFor(modelItem => item.CountryOfBirth.Name) @@ -64,18 +55,21 @@ @Html.DisplayFor(modelItem => item.Webpage) - @Html.DisplayFor(modelItem => item.Twitter) + @if(item.Twitter != null) + { + @Html.DisplayFor(modelItem => item.Twitter) + } - @Html.DisplayFor(modelItem => item.Facebook) + @if(item.Facebook != null) + { + @Html.DisplayFor(modelItem => item.Facebook) + } - @Html.DisplayFor(modelItem => item.Photo) - - Edit | - Details | - Delete + Details + Edit + Delete
+ + + + + + + + + @foreach(DocumentPersonViewModel item in Model) + { + + + + + + } + +
+ @Html.DisplayNameFor(model => model.Name) + + @Html.DisplayNameFor(model => model.Person) +
+ @Html.DisplayFor(modelItem => item.Name) + + + @Html.DisplayFor(modelItem => item.Person) + + + Details + + + Edit + + + Delete + +
\ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/Home/Index.cshtml b/cicm_web/Areas/Admin/Views/Home/Index.cshtml index 022f4291..1ed4a8ab 100644 --- a/cicm_web/Areas/Admin/Views/Home/Index.cshtml +++ b/cicm_web/Areas/Admin/Views/Home/Index.cshtml @@ -67,6 +67,7 @@

Administrative pages for documents

Document companies
+ Document people
diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index a017420b..4cf8c8e6 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.881 + 3.0.99.883 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website From c11100ebe782b762cec17e97016d67d416b6019b Mon Sep 17 00:00:00 2001 From: soxhi8 Date: Fri, 13 Sep 2019 18:45:54 +0200 Subject: [PATCH 18/23] Create CODEOWNERS Transfer total domination to claunia. --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..a8c4be76 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @claunia From 6ccca84270f30e6a5c1351af69f8f0452fb016e7 Mon Sep 17 00:00:00 2001 From: soxhi8 Date: Sat, 14 Sep 2019 12:45:24 +0200 Subject: [PATCH 19/23] Add webp to .gitignore Add cicm_web/wwwroot/assets/**/*.webp to .gitignore, to avoid pushing generated webp to the Git. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 224a1a96..b3ecfdf7 100644 --- a/.gitignore +++ b/.gitignore @@ -448,3 +448,4 @@ cicm_web/wwwroot/assets/**/*.png cicm_web/wwwroot/assets/**/*.tif cicm_web/wwwroot/assets/**/*.jpg cicm_web/wwwroot/assets/**/*.tiff +cicm_web/wwwroot/assets/**/*.webp \ No newline at end of file From 3023f901847d7516bbae83c90b70500968b0a2f1 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 17 Dec 2019 01:36:13 +0000 Subject: [PATCH 20/23] Add Contribution License Agreement --- CLA.pdf | Bin 0 -> 67418 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 CLA.pdf diff --git a/CLA.pdf b/CLA.pdf new file mode 100644 index 0000000000000000000000000000000000000000..afca6d13d19b66f3bbcaff5b089e44296dc21f74 GIT binary patch literal 67418 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≤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 Js;j>n7XZDht(X7+ literal 0 HcmV?d00001 From cbb5081e0073794fcafee0794902cd155677f01b Mon Sep 17 00:00:00 2001 From: soxhi8 Date: Sun, 5 Jan 2020 03:09:31 +0100 Subject: [PATCH 21/23] Add README.md Initial touch --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..7ab50712 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# cicm_web +Canary Islands Computer Museum Website From a37ba02b70988231d57399790bade81f03747a71 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 9 Jan 2020 21:38:37 +0000 Subject: [PATCH 22/23] Add some text to README. --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7ab50712..9fb33b19 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ -# cicm_web -Canary Islands Computer Museum Website +# Canary Islands Computer Museum Website + +Welcome to the Canary Islands Computer Museum Website repository. + +This repository contains the CICM Website software. + +For contributing please read [here.](CONTRIBUTING.md) From f34a619f1f21bb798c3e29959ae2dcbffae96d3d Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 9 Jan 2020 22:43:03 +0000 Subject: [PATCH 23/23] Add guide to configure commit signing on Windows. --- CONTRIBUTING.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..298ad158 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,36 @@ +# Contributing + +## Commit signature +For security reason we require all commits to be cryptographically signed. +This section explains how to setup the development environment for that purpose. + +### Visual Studio and Visual Studio Code for Windows +You need to install Git for Windows. It is available as a component of Visual Studio, or separately in https://gitforwindows.org. + +You also need to install Gpg4win from https://www.gpg4win.org. Ensure to select the Kleopatra component. + +Once you have them installed, open Kleopatra and generate a new key pair, of OpenPGP type, following the instructions [here](https://www.gpg4win.org/doc/en/gpg4win-compendium_12.html). +Save aside the fingerprint, you'll need it later. + +Now go to environment variables (in the properties of your computer) and add this to the path: +`C:\Program Files\Git\usr\bin` + +Finally, open Git Bash, and write the following commands if you want all git commits to be signed: +```bash +git config --global commit.gpgsign true +git config --global user.signingkey +git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe" +``` +or if you want the options to apply only for this project +```bash +cd /DRIVE/PATH_TO_PROJECT +git config commit.gpgsign true +git config user.signingkey FINGERPRINT +git config gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe" +``` + +replacing `FINGERPRINT` with the fingerprint you saved from the key generation, `DRIVE` with the drive letter and `PATH_TO_PROJECT` using `/` as path separator. + +Once this is done, every time you commit in VS / VSCode, a message box titled `pinentry-qt` will ask for the passphrase you set up earlier and sign the commit with your key. + +For GitHub to recognize your signature you need to follow the steps [here](https://help.github.com/en/github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account). \ No newline at end of file