Skip to content
Snippets Groups Projects
Commit 8c737c09 authored by Marcel Nellesen's avatar Marcel Nellesen
Browse files

Merge branch 'Sprint/2020-22' into 'master'

Sprint/2020 22

See merge request coscine/cs/database!105
parents cf8ec31d 15a9337e
No related branches found
No related tags found
1 merge request!105Sprint/2020 22
Showing
with 264 additions and 81 deletions
......@@ -4,7 +4,7 @@
<#@ include file="$(ProjectDir)\LinqToDB.Templates\PluralizationService.ttinclude" #>
<#@ assembly name="$(ProjectDir)..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll"#>
<#@ assembly name="$(ProjectDir)..\packages\Coscine.Migrations.1.8.0\lib\net461\Coscine.Migrations.dll" #>
<#@ assembly name="$(ProjectDir)..\packages\Coscine.Migrations.1.9.0\lib\net461\Coscine.Migrations.dll" #>
<#@ assembly name="$(ProjectDir)..\packages\Coscine.Database.Helpers.1.1.0\lib\net461\Coscine.Database.Helpers.dll" #>
<#@ assembly name="$(ProjectDir)..\packages\Microsoft.Extensions.DependencyInjection.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.dll"#>
......
......@@ -49,8 +49,8 @@
<Reference Include="Coscine.Database.Helpers, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Database.Helpers.1.1.0\lib\net461\Coscine.Database.Helpers.dll</HintPath>
</Reference>
<Reference Include="Coscine.Migrations, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Migrations.1.8.0\lib\net461\Coscine.Migrations.dll</HintPath>
<Reference Include="Coscine.Migrations, Version=1.9.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Migrations.1.9.0\lib\net461\Coscine.Migrations.dll</HintPath>
</Reference>
<Reference Include="FluentMigrator, Version=3.2.8.0, Culture=neutral, PublicKeyToken=aacfc7de5acabf05, processorArchitecture=MSIL">
<HintPath>..\packages\FluentMigrator.3.2.8\lib\net461\FluentMigrator.dll</HintPath>
......@@ -112,8 +112,8 @@
<Reference Include="FluentMigrator.Runner.SqlServerCe, Version=3.2.8.0, Culture=neutral, PublicKeyToken=aacfc7de5acabf05, processorArchitecture=MSIL">
<HintPath>..\packages\FluentMigrator.Runner.SqlServerCe.3.2.8\lib\net461\FluentMigrator.Runner.SqlServerCe.dll</HintPath>
</Reference>
<Reference Include="linq2db, Version=3.1.1.0, Culture=neutral, PublicKeyToken=e41013125f9e410a, processorArchitecture=MSIL">
<HintPath>..\packages\linq2db.3.1.1\lib\net46\linq2db.dll</HintPath>
<Reference Include="linq2db, Version=3.1.0.0, Culture=neutral, PublicKeyToken=e41013125f9e410a, processorArchitecture=MSIL">
<HintPath>..\packages\linq2db.3.1.0\lib\net46\linq2db.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Data.Sqlite, Version=3.1.5.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Data.Sqlite.Core.3.1.5\lib\netstandard2.0\Microsoft.Data.Sqlite.dll</HintPath>
......@@ -186,7 +186,6 @@
</ItemGroup>
<Import Project="CustomT4.targets" />
<ItemGroup>
<None Include="amd64\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest" />
<None Include="CustomT4.targets" />
<Compile Include="DataModel\CsDatabase.generated.cs">
<AutoGen>True</AutoGen>
......@@ -194,7 +193,6 @@
<DependentUpon>CsDatabase.tt</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<None Include="x86\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
......@@ -226,26 +224,7 @@
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<ItemGroup>
<Content Include="amd64\Microsoft.VC90.CRT\msvcr90.dll" />
<Content Include="amd64\Microsoft.VC90.CRT\README_ENU.txt" />
<Content Include="amd64\sqlceca40.dll" />
<Content Include="amd64\sqlcecompact40.dll" />
<Content Include="amd64\sqlceer40EN.dll" />
<Content Include="amd64\sqlceme40.dll" />
<Content Include="amd64\sqlceqp40.dll" />
<Content Include="amd64\sqlcese40.dll" />
<Content Include="LinqToDB.Templates\CopyMe.SqlServer.tt.txt" />
<Content Include="runtimes\win-arm\native\e_sqlite3.dll" />
<Content Include="runtimes\win-x64\native\e_sqlite3.dll" />
<Content Include="runtimes\win-x86\native\e_sqlite3.dll" />
<Content Include="x86\Microsoft.VC90.CRT\msvcr90.dll" />
<Content Include="x86\Microsoft.VC90.CRT\README_ENU.txt" />
<Content Include="x86\sqlceca40.dll" />
<Content Include="x86\sqlcecompact40.dll" />
<Content Include="x86\sqlceer40EN.dll" />
<Content Include="x86\sqlceme40.dll" />
<Content Include="x86\sqlceqp40.dll" />
<Content Include="x86\sqlcese40.dll" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
......
......@@ -9,8 +9,8 @@ using System.Reflection;
[assembly: AssemblyDescription("Database.T4 is a part of the CoScInE group.")]
[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyProduct("Database.T4")]
[assembly: AssemblyVersion("1.25.0")]
[assembly: AssemblyFileVersion("1.25.0")]
[assembly: AssemblyInformationalVersion("1.25.0-topic-1051-basic0005")]
[assembly: AssemblyVersion("1.27.0")]
[assembly: AssemblyFileVersion("1.27.0")]
[assembly: AssemblyInformationalVersion("1.27.0-product-1154-res0002")]
[assembly: AssemblyCopyright("2020 IT Center, RWTH Aachen University")]
......@@ -3,7 +3,7 @@
<package id="Consul" version="0.7.2.6" targetFramework="net461" />
<package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" />
<package id="Coscine.Database.Helpers" version="1.1.0" targetFramework="net461" />
<package id="Coscine.Migrations" version="1.8.0" targetFramework="net461" />
<package id="Coscine.Migrations" version="1.9.0" targetFramework="net461" />
<package id="FluentMigrator" version="3.2.8" targetFramework="net461" />
<package id="FluentMigrator.Abstractions" version="3.2.8" targetFramework="net461" />
<package id="FluentMigrator.Extensions.Oracle" version="3.2.8" targetFramework="net461" />
......@@ -24,7 +24,7 @@
<package id="FluentMigrator.Runner.SQLite" version="3.2.8" targetFramework="net461" />
<package id="FluentMigrator.Runner.SqlServer" version="3.2.8" targetFramework="net461" />
<package id="FluentMigrator.Runner.SqlServerCe" version="3.2.8" targetFramework="net461" />
<package id="linq2db" version="3.1.1" targetFramework="net461" />
<package id="linq2db" version="3.1.0" targetFramework="net461" />
<package id="linq2db.SqlServer" version="3.1.0" targetFramework="net461" />
<package id="Microsoft.Data.Sqlite" version="3.1.5" targetFramework="net461" />
<package id="Microsoft.Data.Sqlite.Core" version="3.1.5" targetFramework="net461" />
......
......@@ -43,8 +43,8 @@
<Reference Include="Coscine.Database.Helpers, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Database.Helpers.1.1.0\lib\net461\Coscine.Database.Helpers.dll</HintPath>
</Reference>
<Reference Include="Coscine.Migrations, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Migrations.1.8.0\lib\net461\Coscine.Migrations.dll</HintPath>
<Reference Include="Coscine.Migrations, Version=1.9.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Migrations.1.9.0\lib\net461\Coscine.Migrations.dll</HintPath>
</Reference>
<Reference Include="FluentMigrator, Version=3.2.8.0, Culture=neutral, PublicKeyToken=aacfc7de5acabf05, processorArchitecture=MSIL">
<HintPath>..\packages\FluentMigrator.3.2.8\lib\net461\FluentMigrator.dll</HintPath>
......@@ -189,10 +189,8 @@
<Compile Include="TestCoscineDB.cs" />
</ItemGroup>
<ItemGroup>
<None Include="amd64\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest" />
<None Include="app.config" />
<None Include="packages.config" />
<None Include="x86\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
......@@ -203,27 +201,6 @@
<Name>Database</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="amd64\Microsoft.VC90.CRT\msvcr90.dll" />
<Content Include="amd64\Microsoft.VC90.CRT\README_ENU.txt" />
<Content Include="amd64\sqlceca40.dll" />
<Content Include="amd64\sqlcecompact40.dll" />
<Content Include="amd64\sqlceer40EN.dll" />
<Content Include="amd64\sqlceme40.dll" />
<Content Include="amd64\sqlceqp40.dll" />
<Content Include="amd64\sqlcese40.dll" />
<Content Include="runtimes\win-arm\native\e_sqlite3.dll" />
<Content Include="runtimes\win-x64\native\e_sqlite3.dll" />
<Content Include="runtimes\win-x86\native\e_sqlite3.dll" />
<Content Include="x86\Microsoft.VC90.CRT\msvcr90.dll" />
<Content Include="x86\Microsoft.VC90.CRT\README_ENU.txt" />
<Content Include="x86\sqlceca40.dll" />
<Content Include="x86\sqlcecompact40.dll" />
<Content Include="x86\sqlceer40EN.dll" />
<Content Include="x86\sqlceme40.dll" />
<Content Include="x86\sqlceqp40.dll" />
<Content Include="x86\sqlcese40.dll" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
......
......@@ -9,8 +9,8 @@ using System.Reflection;
[assembly: AssemblyDescription("Database.Tests is a part of the CoScInE group.")]
[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyProduct("Database.Tests")]
[assembly: AssemblyVersion("1.25.0")]
[assembly: AssemblyFileVersion("1.25.0")]
[assembly: AssemblyInformationalVersion("1.25.0-topic-1051-basic0005")]
[assembly: AssemblyVersion("1.27.0")]
[assembly: AssemblyFileVersion("1.27.0")]
[assembly: AssemblyInformationalVersion("1.27.0-product-1154-res0002")]
[assembly: AssemblyCopyright("2020 IT Center, RWTH Aachen University")]
......@@ -3,7 +3,7 @@
<package id="Consul" version="0.7.2.6" targetFramework="net461" />
<package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" />
<package id="Coscine.Database.Helpers" version="1.1.0" targetFramework="net461" />
<package id="Coscine.Migrations" version="1.8.0" targetFramework="net461" />
<package id="Coscine.Migrations" version="1.9.0" targetFramework="net461" />
<package id="FluentMigrator" version="3.2.8" targetFramework="net461" />
<package id="FluentMigrator.Abstractions" version="3.2.8" targetFramework="net461" />
<package id="FluentMigrator.Extensions.Oracle" version="3.2.8" targetFramework="net461" />
......
......@@ -82,6 +82,8 @@
<Compile Include="Models\FeaturesModel.cs" />
<Compile Include="Models\KpiModel.cs" />
<Compile Include="Models\ProjectQuotasModel.cs" />
<Compile Include="Models\LinkedResourceTypeModel.cs" />
<Compile Include="Models\ApiTokenModel.cs" />
<Compile Include="Models\TOSModel.cs" />
<Compile Include="ReturnObjects\ActivatedFeatureObject.cs" />
<Compile Include="Models\LogModel.cs" />
......@@ -99,10 +101,12 @@
<Compile Include="ReturnObjects\ProjectObject.cs" />
<Compile Include="ReturnObjects\ProjectQuotaObject.cs" />
<Compile Include="ReturnObjects\ProjectRoleObject.cs" />
<Compile Include="ReturnObjects\LinkedResourceTypeObject.cs" />
<Compile Include="ReturnObjects\RDSResourceTypeObject.cs" />
<Compile Include="ReturnObjects\ResourceObject.cs" />
<Compile Include="ReturnObjects\ResourceTypeObject.cs" />
<Compile Include="ReturnObjects\ResourceTypeOptionObject.cs" />
<Compile Include="ReturnObjects\ApiTokenObject.cs" />
<Compile Include="ReturnObjects\RoleObject.cs" />
<Compile Include="ReturnObjects\S3ResourceTypeObject.cs" />
<Compile Include="ReturnObjects\TitleObject.cs" />
......
using Coscine.Database.DataModel;
using Coscine.Database.ReturnObjects;
using LinqToDB;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Linq;
namespace Coscine.Database.Models
{
public class ApiTokenModel : DatabaseModel<ApiToken>
{
public override Expression<Func<ApiToken, Guid>> GetIdFromObject()
{
return databaseObject => databaseObject.Id;
}
public override ITable<ApiToken> GetITableFromDatabase(CoscineDB db)
{
return db.ApiTokens;
}
public override void SetObjectId(ApiToken databaseObject, Guid id)
{
databaseObject.Id = id;
}
public IEnumerable<ApiTokenObject> GetTokens(string userId)
{
return GetTokens(new Guid(userId));
}
public IEnumerable<ApiTokenObject> GetTokens(User user)
{
return GetTokens(user.Id);
}
public IEnumerable<ApiTokenObject> GetTokens(Guid userId)
{
return GetAllWhere((tableEntry) => tableEntry.UserId == userId)
.Select(x => new ApiTokenObject { TokenId = x.Id, Created = x.IssuedAt, Expires = x.Expiration, Name = x.Name })
.OrderBy(x => x.Created);
}
public ApiTokenObject GetToken(Guid userId, Guid tokenId)
{
var t = GetWhere(x => x.UserId == userId && x.Id == tokenId);
if (t == null)
{
return null;
}
return new ApiTokenObject { TokenId = t.Id, Created = t.IssuedAt, Expires = t.Expiration, Name = t.Name };
}
public User GetUser(Guid tokenId)
{
return GetUser(GetById(tokenId));
}
public User GetUser(ApiToken token)
{
var userModel = new UserModel();
return userModel.GetWhere(x => x.Id == token.UserId);
}
public void InsertToken(Guid tokenId, DateTime issuedAt, DateTime expires, Guid userId, string name)
{
Insert(new ApiToken
{
Id = tokenId,
IssuedAt = issuedAt,
Expiration = expires,
UserId = userId,
Name = name
});
}
public int Revoke(Guid userId, Guid tokenId)
{
var apiToken = GetById(tokenId);
if (apiToken.UserId == userId)
{
return Delete(apiToken);
}
else
{
return 0;
}
}
}
}
using Coscine.Database.DataModel;
using LinqToDB;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Coscine.Database.Models
......@@ -21,5 +22,15 @@ namespace Coscine.Database.Models
{
databaseObject.Id = id;
}
public Dictionary<string, string> GetResourceTypeOptions(Guid id)
{
var dictionary = new Dictionary<string, string>();
var resourceType = GetById(id);
dictionary.Add("token", resourceType.Token);
dictionary.Add("repositoryUrl", resourceType.RepositoryUrl);
dictionary.Add("repositoryNumber", resourceType.RepositoryNumber.ToString());
return dictionary;
}
}
}
using Coscine.Database.DataModel;
using LinqToDB;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Coscine.Database.Models
{
public class LinkedResourceTypeModel : DatabaseModel<LinkedResourceType>
{
public override Expression<Func<LinkedResourceType, Guid>> GetIdFromObject()
{
return (linkedResourceType) => linkedResourceType.Id;
}
public override ITable<LinkedResourceType> GetITableFromDatabase(CoscineDB db)
{
return db.LinkedResourceTypes;
}
public override void SetObjectId(LinkedResourceType databaseObject, Guid id)
{
databaseObject.Id = id;
}
public Dictionary<string, string> GetResourceTypeOptions(Guid id)
{
return new Dictionary<string, string>();
}
}
}
......@@ -21,8 +21,7 @@ namespace Coscine.Database.Models
projectQuota.ProjectId,
new ResourceTypeObject(
projectQuota.ResourceType.Id,
projectQuota.ResourceType.DisplayName,
projectQuota.ResourceType.Enabled
projectQuota.ResourceType.DisplayName
),
projectQuota.Quota
);
......
using Coscine.Database.DataModel;
using LinqToDB;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Coscine.Database.Models
......@@ -21,5 +22,13 @@ namespace Coscine.Database.Models
{
databaseObject.Id = id;
}
public Dictionary<string, string> GetResourceTypeOptions(Guid id)
{
var dictionary = new Dictionary<string, string>();
var resourceType = GetById(id);
dictionary.Add("bucketname", resourceType.BucketName);
return dictionary;
}
}
}
......@@ -181,12 +181,50 @@ namespace Coscine.Database.Models
Update(resource);
}
}
else if (resource.Type.DisplayName == "linked")
{
LinkedResourceTypeModel linkedResourceTypeModel = new LinkedResourceTypeModel();
if (resource.ResourceTypeOptionId == null)
{
LinkedResourceType linkedResourceType = new LinkedResourceType();
linkedResourceTypeModel.Insert(linkedResourceType);
resource.ResourceTypeOptionId = linkedResourceType.Id;
Update(resource);
}
}
else
{
throw new ArgumentException("Not supported resource type!");
}
}
public Dictionary<string, string> GetResourceTypeOptions(Guid id)
{
var resource = GetById(id);
var resourceType = new ResourceTypeModel().GetById((Guid)resource.TypeId);
var resourceTypeOptionId = (Guid)resource.ResourceTypeOptionId;
if (resourceType.DisplayName == "gitlab")
{
return new GitlabResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
}
else if (resourceType.DisplayName == "rds")
{
return new RDSResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
}
else if (resourceType.DisplayName == "s3")
{
return new S3ResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
}
else if (resourceType.DisplayName == "linked")
{
return new LinkedResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
}
else
{
return new Dictionary<string, string>();
}
}
private void SetDisciplines(Resource resource, IEnumerable<DisciplineObject> disciplines)
{
ResourceDisciplineModel resourceDisciplineModel = new ResourceDisciplineModel();
......@@ -327,6 +365,12 @@ namespace Coscine.Database.Models
var gitlabResourceType = gitlabResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
resourceTypeOptionObject = new GitlabResourceTypeObject(gitlabResourceType.Id, gitlabResourceType.RepositoryNumber, gitlabResourceType.RepositoryUrl, null);
}
else if (resource.Type.DisplayName == "linked" && resource.ResourceTypeOptionId != null)
{
LinkedResourceTypeModel linkedResourceTypeModel = new LinkedResourceTypeModel();
var linkedResourceType = linkedResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
resourceTypeOptionObject = new LinkedResourceTypeObject(linkedResourceType.Id);
}
return new ResourceObject(
resource.Id,
......@@ -335,7 +379,7 @@ namespace Coscine.Database.Models
resource.Description,
resource.Keywords,
resource.UsageRights,
new ResourceTypeObject(resource.Type.Id, resource.Type.DisplayName, resource.Type.Enabled),
new ResourceTypeObject(resource.Type.Id, resource.Type.DisplayName),
disciplines,
(resource.Visibility != null) ? new VisibilityObject(resource.Visibility.Id, resource.Visibility.DisplayName) : null,
(resource.License != null) ? new LicenseObject(resource.License.Id, resource.License.DisplayName) : null,
......
using Coscine.Database.DataModel;
using LinqToDB;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Coscine.Database.Models
......@@ -21,5 +22,16 @@ namespace Coscine.Database.Models
{
databaseObject.Id = id;
}
public Dictionary<string, string> GetResourceTypeOptions(Guid id)
{
var dictionary = new Dictionary<string, string>();
var resourceType = GetById(id);
dictionary.Add("accessKey", resourceType.AccessKey);
dictionary.Add("secretKey", resourceType.SecretKey);
dictionary.Add("bucketname", resourceType.BucketName);
dictionary.Add("resourceUrl", resourceType.ResourceUrl);
return dictionary;
}
}
}
......@@ -9,8 +9,8 @@ using System.Reflection;
[assembly: AssemblyDescription("Database is a part of the CoScInE group.")]
[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyProduct("Database")]
[assembly: AssemblyVersion("1.25.0")]
[assembly: AssemblyFileVersion("1.25.0")]
[assembly: AssemblyInformationalVersion("1.25.0-topic-1051-basic0005")]
[assembly: AssemblyVersion("1.27.0")]
[assembly: AssemblyFileVersion("1.27.0")]
[assembly: AssemblyInformationalVersion("1.27.0-product-1154-res0002")]
[assembly: AssemblyCopyright("2020 IT Center, RWTH Aachen University")]
using System;
namespace Coscine.Database.ReturnObjects
{
[Serializable]
public class ApiTokenObject : IReturnObject
{
public Guid TokenId { get; set; }
public string Name { get; set; }
public DateTime Created { get; set; }
public DateTime Expires { get; set; }
}
}
\ No newline at end of file
using System;
namespace Coscine.Database.ReturnObjects
{
[Serializable]
public class LinkedResourceTypeObject : ResourceTypeOptionObject
{
public Guid Id { get; set; }
public LinkedResourceTypeObject(Guid id)
{
Id = id;
}
}
}
......@@ -9,13 +9,10 @@ namespace Coscine.Database.ReturnObjects
public string DisplayName { get; set; }
public bool Enabled { get; set; }
public ResourceTypeObject(Guid id, string displayName, bool enabled)
public ResourceTypeObject(Guid id, string displayName)
{
Id = id;
DisplayName = displayName;
Enabled = enabled;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment