Skip to content
Snippets Groups Projects
Commit 97c36b61 authored by Benedikt Heinrichs's avatar Benedikt Heinrichs Committed by L. Ellenbeck
Browse files

Update: Metadata Extraction Table

parent 0936e977
No related branches found
No related tags found
2 merge requests!181Release: Sprint/2022 20 :robot:,!177Update: Metadata Extraction Table
using Coscine.Database.DataModel;
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq.Expressions;
namespace Coscine.Database.Models
{
public class MetadataExtractionModel : DatabaseModel<MetadataExtraction>
{
public override Expression<Func<MetadataExtraction, Guid>> GetIdFromObject()
{
return (metadataExtractionEntry) => metadataExtractionEntry.Id;
}
public override DbSet<MetadataExtraction> GetITableFromDatabase(CoscineDB db)
{
return db.MetadataExtractions;
}
public override void SetObjectId(MetadataExtraction databaseObject, Guid id)
{
databaseObject.Id = id;
}
}
}
......@@ -6,6 +6,7 @@ using System.Web;
namespace Coscine.Database.Models
{
[Obsolete("This should not be used")]
public class MetadataModel : DatabaseModel<Resource>
{
......@@ -24,6 +25,7 @@ namespace Coscine.Database.Models
throw new NotImplementedException();
}
[Obsolete("This should not be used")]
public Resource StoreFromObject(ResourceObject resourceObject)
{
Resource resource = new Resource()
......@@ -42,6 +44,7 @@ namespace Coscine.Database.Models
return resource;
}
[Obsolete("This should not be used")]
public string GenerateId(string resourceId, string filename)
{
// Double UrlEncode since converting it to Uri executes one UrlDecode and Virtuoso
......@@ -50,6 +53,7 @@ namespace Coscine.Database.Models
return $"https://purl.org/coscine/md/{resourceId}/{encodedFileName}/";
}
[Obsolete("This should not be used")]
public Uri CreateUri(string graphName)
{
return new Uri(graphName);
......
using System;
using System.Collections.Generic;
// Code scaffolded by EF Core assumes nullable reference types (NRTs) are not used or disabled.
// If you have enabled NRTs for your project, then un-comment the following line:
// #nullable disable
namespace Coscine.Database.DataModel
{
public partial class MetadataExtraction
{
public Guid Id { get; set; }
public Guid ResourceId { get; set; }
public bool Activated { get; set; }
public virtual Resource Resource { get; set; }
}
}
......@@ -35,6 +35,7 @@ namespace Coscine.Database.DataModel
public virtual DbSet<License> Licenses { get; set; }
public virtual DbSet<LinkedResourceType> LinkedResourceTypes { get; set; }
public virtual DbSet<Log> Logs { get; set; }
public virtual DbSet<MetadataExtraction> MetadataExtractions { get; set; }
public virtual DbSet<Project> Projects { get; set; }
public virtual DbSet<ProjectDiscipline> ProjectDisciplines { get; set; }
public virtual DbSet<ProjectInstitute> ProjectInstitutes { get; set; }
......@@ -367,6 +368,18 @@ namespace Coscine.Database.DataModel
.HasMaxLength(500);
});
modelBuilder.Entity<MetadataExtraction>(entity =>
{
entity.ToTable("MetadataExtraction");
entity.Property(e => e.Id).HasDefaultValueSql("(newid())");
entity.HasOne(d => d.Resource)
.WithMany(p => p.MetadataExtractions)
.HasForeignKey(d => d.ResourceId)
.HasConstraintName("FK_MetadataExtraction_ResourceId_Resources_Id");
});
modelBuilder.Entity<Project>(entity =>
{
entity.Property(e => e.Id).HasDefaultValueSql("(newid())");
......
......@@ -11,6 +11,7 @@ namespace Coscine.Database.DataModel
{
public Resource()
{
MetadataExtractions = new HashSet<MetadataExtraction>();
ProjectResources = new HashSet<ProjectResource>();
ResourceDisciplines = new HashSet<ResourceDiscipline>();
}
......@@ -35,6 +36,7 @@ namespace Coscine.Database.DataModel
public virtual License License { get; set; }
public virtual ResourceType Type { get; set; }
public virtual Visibility Visibility { get; set; }
public virtual ICollection<MetadataExtraction> MetadataExtractions { get; set; }
public virtual ICollection<ProjectResource> ProjectResources { get; set; }
public virtual ICollection<ResourceDiscipline> ResourceDisciplines { get; set; }
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment