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

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

Sprint/2020 11

See merge request coscine/cs/database!83
parents 1ce1a95c 4a837ae0
No related branches found
No related tags found
1 merge request!83Sprint/2020 11
......@@ -80,10 +80,12 @@
<Compile Include="Models\ExternalAuthenticatorModel.cs" />
<Compile Include="Models\ExternalIdModel.cs" />
<Compile Include="Models\FeaturesModel.cs" />
<Compile Include="Models\ProjectQuotasModel.cs" />
<Compile Include="Models\TOSModel.cs" />
<Compile Include="ReturnObjects\ActivatedFeatureObject.cs" />
<Compile Include="Models\LogModel.cs" />
<Compile Include="ReturnObjects\DisciplineObject.cs" />
<Compile Include="ReturnObjects\ExternalAuthenticatorsObject.cs" />
<Compile Include="ReturnObjects\FeatureObject.cs" />
<Compile Include="ReturnObjects\GitlabResourceTypeObject.cs" />
<Compile Include="ReturnObjects\IReturnObject.cs" />
......@@ -91,6 +93,7 @@
<Compile Include="ReturnObjects\LicenseObject.cs" />
<Compile Include="ReturnObjects\OrganizationObject.cs" />
<Compile Include="ReturnObjects\ProjectObject.cs" />
<Compile Include="ReturnObjects\ProjectQuotaObject.cs" />
<Compile Include="ReturnObjects\ProjectRoleObject.cs" />
<Compile Include="ReturnObjects\RDSResourceTypeObject.cs" />
<Compile Include="ReturnObjects\ResourceObject.cs" />
......
......@@ -159,6 +159,7 @@ namespace Coscine.Database.Models
{
SetDisciplines(project, projectObject.Disciplines);
SetOrganizations(project, projectObject.Organizations);
SetQuotas(project);
}
catch (Exception e)
{
......@@ -238,6 +239,20 @@ namespace Coscine.Database.Models
}
}
private void SetQuotas(Project project)
{
ProjectQuotaModel projectQuotaModel = new ProjectQuotaModel();
ResourceTypeModel resourceTypeModel = new ResourceTypeModel();
foreach (var resourceType in resourceTypeModel.GetAll())
{
projectQuotaModel.Insert(new ProjectQuota
{
ProjectId = project.Id,
ResourceTypeId = resourceType.Id
});
}
}
public ProjectRole SetOwner(Project project, User user)
{
ProjectRoleModel projectRoleModel = new ProjectRoleModel();
......@@ -425,7 +440,6 @@ namespace Coscine.Database.Models
return projectList;
}
public override Expression<Func<Project, Guid>> GetIdFromObject()
{
return databaseObject => databaseObject.Id;
......
using Coscine.Database.DataModel;
using Coscine.Database.ReturnObjects;
using LinqToDB;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Coscine.Database.Models
{
public class ProjectQuotaModel : DatabaseModel<ProjectQuota>
{
public ProjectQuotaObject CreateReturnObjectFromDatabaseObject(ProjectQuota projectQuota)
{
if (projectQuota.ResourceType == null)
{
ResourceTypeModel resourceTypeModel = new ResourceTypeModel();
projectQuota.ResourceType = resourceTypeModel.GetById(projectQuota.ResourceTypeId);
}
return new ProjectQuotaObject(
projectQuota.RelationId,
projectQuota.ProjectId,
new ResourceTypeObject(
projectQuota.ResourceType.Id,
projectQuota.ResourceType.DisplayName,
projectQuota.ResourceType.Enabled
),
projectQuota.Quota
);
}
public override Expression<Func<ProjectQuota, Guid>> GetIdFromObject()
{
return (projectQuota) => projectQuota.RelationId;
}
public override ITable<ProjectQuota> GetITableFromDatabase(CoscineDB db)
{
return db.ProjectQuotas;
}
public override void SetObjectId(ProjectQuota databaseObject, Guid id)
{
databaseObject.RelationId = id;
}
}
}
......@@ -41,6 +41,15 @@ namespace Coscine.Database.Models
disciplines = user.UserDisciplinesUserIdIds.Select((discipline) => new DisciplineObject(discipline.Discipline.Id, discipline.Discipline.Url, discipline.Discipline.DisplayNameDe, discipline.Discipline.DisplayNameEn));
}
var externalAuthenticatorModel = new ExternalAuthenticatorModel();
var externalAuthenticators = externalAuthenticatorModel.GetAllWhere(
(externalAuthenticator) =>
(from relation in externalAuthenticator.ExternalIdsResourceTypeIdIds
where relation.UserId == user.Id select relation).Any())
.Select((externalAuthenticator) =>
new ExternalAuthenticatorsObject(
externalAuthenticator.Id, externalAuthenticator.DisplayName));
if (user.Title == null && user.TitleId.HasValue)
{
TitleModel titleModel = new TitleModel();
......@@ -65,7 +74,8 @@ namespace Coscine.Database.Models
user.Organization,
user.Institute,
disciplines,
false);
false,
externalAuthenticators);
}
public int UpdateByObject(User user, UserObject userObject)
......
using System;
namespace Coscine.Database.ReturnObjects
{
[Serializable]
public class ExternalAuthenticatorsObject : IReturnObject
{
public Guid Id { get; set; }
public string DisplayName { get; set; }
public ExternalAuthenticatorsObject(Guid id, string displayName)
{
Id = id;
DisplayName = displayName;
}
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Coscine.Database.ReturnObjects
{
[Serializable]
public class ProjectQuotaObject : IReturnObject
{
public Guid RelationId { get; set; }
public Guid ProjectId { get; set; }
public ResourceTypeObject ResourceType { get; set; }
public int Quotas { get; set; }
public ProjectQuotaObject(Guid relationId, Guid projectId, ResourceTypeObject resourceType, int quotas)
{
RelationId = relationId;
ProjectId = projectId;
ResourceType = resourceType;
Quotas = quotas;
}
}
}
......@@ -30,7 +30,9 @@ namespace Coscine.Database.ReturnObjects
public bool IsRegistered { get; set; }
public UserObject(Guid id, string displayName, string givenname, string surname, string emailAddress, bool hasProjectRole = false, TitleObject title = null, LanguageObject language = null, string organization = "", string institute = "", IEnumerable<DisciplineObject> disciplines = null, bool isRegistered = false)
public IEnumerable<ExternalAuthenticatorsObject> ExternalAuthenticators { get; set; }
public UserObject(Guid id, string displayName, string givenname, string surname, string emailAddress, bool hasProjectRole = false, TitleObject title = null, LanguageObject language = null, string organization = "", string institute = "", IEnumerable<DisciplineObject> disciplines = null, bool isRegistered = false, IEnumerable<ExternalAuthenticatorsObject> externalAuthenticators = null)
{
Id = id;
DisplayName = displayName;
......@@ -46,6 +48,8 @@ namespace Coscine.Database.ReturnObjects
HasProjectRole = hasProjectRole;
IsRegistered = isRegistered;
ExternalAuthenticators = externalAuthenticators;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment