Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • coscine/backend/libraries/database
1 result
Select Git revision
Show changes
Commits on Source (7)
......@@ -45,3 +45,4 @@ Migrations should be identified by a unique id which corresponds, roughly, to th
YYYYMMDDhhmm
```
FluentMigrator uses this identifier to manage its migration versioning. For an example migration, check out the migrations in the test project for the database.
......@@ -5,7 +5,7 @@
<RootNamespace>Coscine.Database.Actions</RootNamespace>
<AssemblyName>Coscine.Database.Actions</AssemblyName>
<TargetFramework>net6.0</TargetFramework>
<Version>2.13.0</Version>
<Version>2.14.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Coscine.Database.Helpers" Version="2.*-*" />
......
......@@ -5,7 +5,7 @@
<AssemblyName>Coscine.Database.Tests</AssemblyName>
<TargetFrameworks>net6.0;net461</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Version>2.13.0</Version>
<Version>2.14.0</Version>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Database\Database.csproj" />
......
......@@ -4,7 +4,7 @@
<RootNamespace>Coscine.Database</RootNamespace>
<AssemblyName>Coscine.Database</AssemblyName>
<TargetFrameworks>net6.0;net461</TargetFrameworks>
<Version>2.13.0</Version>
<Version>2.14.0</Version>
</PropertyGroup>
<PropertyGroup>
<Authors>RWTH Aachen University</Authors>
......
......@@ -144,9 +144,11 @@ namespace Coscine.Database.Models
PrincipleInvestigators = projectObject.PrincipleInvestigators,
GrantId = projectObject.GrantId,
Slug = GenerateSlug(projectObject),
VisibilityId = projectObject.Visibility.Id,
// DateCreated is skipped here. Value set automatically by the database.
Creator = user.Id,
};
Insert(project);
try
{
......@@ -378,7 +380,8 @@ namespace Coscine.Database.Models
SetDisciplines(project, projectObject.Disciplines);
SetOrganizations(project, projectObject.Organizations);
project.VisibilityId = projectObject.Visibility.Id;
// Project creator can not be altered after creation
// Project DateCreated can not be altered after creation
return Update(project);
}
......@@ -405,13 +408,21 @@ namespace Coscine.Database.Models
project.Visibility = visibilityModel.GetById(project.VisibilityId.Value);
}
return new ProjectObject(project.Id, project.Description, project.DisplayName, project.StartDate, project.EndDate, project.Keywords,
return new ProjectObject(project.Id,
project.Description,
project.DisplayName,
project.StartDate,
project.EndDate,
project.Keywords,
project.ProjectName, project.PrincipleInvestigators, project.GrantId,
disciplines,
organizations,
project.Visibility == null ? null : new VisibilityObject(project.Visibility.Id, project.Visibility.DisplayName),
project.Slug,
parentId);
project.DateCreated,
parentId,
project.Creator
);
}
public List<Project> ListToRootProject(Project project, User user)
......
......@@ -86,7 +86,7 @@ namespace Coscine.Database.Models
}
}
public Resource StoreFromObject(ResourceObject resourceObject)
public Resource StoreFromObject(ResourceObject resourceObject, User user)
{
if (!resourceObject.Disciplines.Any() || resourceObject.ResourceTypeOption == null)
{
......@@ -104,7 +104,8 @@ namespace Coscine.Database.Models
VisibilityId = resourceObject.Visibility.Id,
ApplicationProfile = resourceObject.ApplicationProfile,
FixedValues = resourceObject.FixedValues != null ? resourceObject.FixedValues.ToString() : "{}",
Creator = resourceObject.Creator
// DateCreated is skipped here. Value set automatically by the database.
Creator = user.Id
};
if (resourceObject.License != null)
{
......@@ -288,14 +289,10 @@ namespace Coscine.Database.Models
{
resource.LicenseId = null;
}
// the application profile can not be altered after creation
// resource.ApplicationProfile = resourceObject.ApplicationProfile;
resource.FixedValues = resourceObject.FixedValues != null ? resourceObject.FixedValues.ToString() : "{}";
// the resource creator can not be altered after creation
// resource.Creator = resourceObject.Creator;
// Application Profile can not be altered after creation
// Resource DateCreated can not be altered after creation
// Creator can not be altered after creation
SetDisciplines(resource, resourceObject.Disciplines);
......@@ -441,6 +438,7 @@ namespace Coscine.Database.Models
resourceTypeOptionObject == null ? new JObject() : JObject.FromObject(resourceTypeOptionObject),
resource.ApplicationProfile,
JToken.Parse(resource.FixedValues ?? "{}"),
resource.DateCreated,
resource.Creator,
resource.Archived == "1"
);
......
......@@ -19,14 +19,16 @@ namespace Coscine.Database.ReturnObjects
public string PrincipleInvestigators { get; set; }
public string GrantId { get; set; }
public string Slug { get; set; }
public DateTime? DateCreated { get; set; }
public IEnumerable<DisciplineObject> Disciplines { get; set; }
public IEnumerable<OrganizationObject> Organizations { get; set; }
public VisibilityObject Visibility { get; set; }
public Guid ParentId { get; set; }
public Guid? Creator { get; set; }
public ProjectObject(Guid id, string description, string displayName, DateTime startDate, DateTime endDate, string keywords, string projectName, string principleInvestigators, string grantId, IEnumerable<DisciplineObject> discipline, IEnumerable<OrganizationObject> organization, VisibilityObject visibility, string slug, Guid parentId = new Guid())
public ProjectObject(Guid id, string description, string displayName, DateTime startDate, DateTime endDate, string keywords, string projectName, string principleInvestigators, string grantId, IEnumerable<DisciplineObject> discipline, IEnumerable<OrganizationObject> organization, VisibilityObject visibility, string slug, DateTime? dateCreated, Guid parentId = new Guid(), Guid? creator = null)
{
Id = id;
Description = description;
......@@ -35,15 +37,17 @@ namespace Coscine.Database.ReturnObjects
EndDate = endDate;
Keywords = keywords;
ParentId = parentId;
Creator = creator;
ProjectName = projectName;
PrincipleInvestigators = principleInvestigators;
GrantId = grantId;
Slug = slug;
Disciplines = discipline;
Organizations = organization;
Visibility = visibility;
DateCreated = dateCreated;
}
}
}
......@@ -23,10 +23,11 @@ namespace Coscine.Database.ReturnObjects
public JObject ResourceTypeOption { get; set; }
public string ApplicationProfile { get; set; }
public JToken FixedValues { get; set; }
public DateTime? DateCreated { get; set; }
public Guid? Creator { get; set; }
public bool Archived { get; set; }
public ResourceObject(Guid id, string displayName, string resourceName, string description, string keywords, string usageRights, ResourceTypeObject type, IEnumerable<DisciplineObject> disciplines, VisibilityObject visibility, LicenseObject license, JObject resourceTypeOption, string applicationProfile, JToken fixedValues, Guid? creator = null, bool archived = false)
public ResourceObject(Guid id, string displayName, string resourceName, string description, string keywords, string usageRights, ResourceTypeObject type, IEnumerable<DisciplineObject> disciplines, VisibilityObject visibility, LicenseObject license, JObject resourceTypeOption, string applicationProfile, JToken fixedValues, DateTime? dateCreated, Guid? creator = null, bool archived = false)
{
Id = id;
......@@ -45,7 +46,7 @@ namespace Coscine.Database.ReturnObjects
ApplicationProfile = applicationProfile;
FixedValues = fixedValues;
DateCreated = dateCreated;
Creator = creator;
Archived = archived;
}
......
......@@ -371,6 +371,10 @@ namespace Coscine.Database.DataModel
{
entity.Property(e => e.Id).HasDefaultValueSql("(newid())");
entity.Property(e => e.DateCreated)
.HasColumnType("datetime")
.HasDefaultValueSql("(getutcdate())");
entity.Property(e => e.Description).IsRequired();
entity.Property(e => e.DisplayName).HasMaxLength(25);
......@@ -620,6 +624,10 @@ namespace Coscine.Database.DataModel
.HasMaxLength(255)
.HasDefaultValueSql("(N'0')");
entity.Property(e => e.DateCreated)
.HasColumnType("datetime")
.HasDefaultValueSql("(getutcdate())");
entity.Property(e => e.DisplayName).HasMaxLength(25);
entity.Property(e => e.Keywords).HasMaxLength(1000);
......
......@@ -34,6 +34,8 @@ namespace Coscine.Database.DataModel
public Guid? VisibilityId { get; set; }
public bool Deleted { get; set; }
public string Slug { get; set; }
public Guid? Creator { get; set; }
public DateTime? DateCreated { get; set; }
public virtual Visibility Visibility { get; set; }
public virtual ICollection<ActivatedFeature> ActivatedFeatures { get; set; }
......
......@@ -30,6 +30,7 @@ namespace Coscine.Database.DataModel
public Guid? Creator { get; set; }
public string Archived { get; set; }
public bool Deleted { get; set; }
public DateTime? DateCreated { get; set; }
public virtual License License { get; set; }
public virtual ResourceType Type { get; set; }
......
......@@ -3,7 +3,7 @@
<RootNamespace>Coscine.Database</RootNamespace>
<AssemblyName>Coscine.Database.Scaffolding</AssemblyName>
<TargetFrameworks>net6.0;net461</TargetFrameworks>
<Version>2.13.0</Version>
<Version>2.14.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Inflector.NetStandard" Version="1.2.2" />
......