Skip to content
Snippets Groups Projects
Commit 771364c0 authored by Petar Hristov's avatar Petar Hristov :speech_balloon:
Browse files

Merge branch 'Product/1629-onboardingOtherUniversities' into 'Sprint/2021-19'

Product/1629 onboarding other universities

See merge request !169
parents 4981f221 e85c05db
No related branches found
No related tags found
2 merge requests!169Product/1629 onboarding other universities,!168Sprint/2021 19
...@@ -211,13 +211,14 @@ namespace Coscine.Api.Project.Controllers ...@@ -211,13 +211,14 @@ namespace Coscine.Api.Project.Controllers
Name = x.DisplayName, Name = x.DisplayName,
Used = CalculateUsed(x, projectGuid), Used = CalculateUsed(x, projectGuid),
Allocated = projectQuota == null ? 0 : projectQuota.Quota, Allocated = projectQuota == null ? 0 : projectQuota.Quota,
Maximum = projectQuota.MaxQuota Maximum = projectQuota == null ? 0 : projectQuota.MaxQuota
}; };
} }
private int GetMaxQuota(Guid projectId, Guid resourceTypeId) private int GetMaxQuota(Guid projectId, Guid resourceTypeId)
{ {
return _projectQuotaModel.GetWhere(x => x.ProjectId == projectId && x.ResourceTypeId == resourceTypeId).MaxQuota; var projectQuota = _projectQuotaModel.GetWhere(x => x.ProjectId == projectId && x.ResourceTypeId == resourceTypeId);
return projectQuota == null ? 0 : projectQuota.MaxQuota;
} }
private int CalculateUsed(ResourceType resourceType, Guid projectId) private int CalculateUsed(ResourceType resourceType, Guid projectId)
...@@ -284,8 +285,8 @@ namespace Coscine.Api.Project.Controllers ...@@ -284,8 +285,8 @@ namespace Coscine.Api.Project.Controllers
Id = resourceTypeGuid, Id = resourceTypeGuid,
Name = resourceType.DisplayName, Name = resourceType.DisplayName,
Used = CalculateUsed(resourceType, projectGuid), Used = CalculateUsed(resourceType, projectGuid),
Allocated = projectQuota.Quota, Allocated = projectQuota == null ? 0 : projectQuota.Quota,
Maximum = projectQuota.MaxQuota Maximum = projectQuota == null ? 0 : projectQuota.MaxQuota
}; };
return Json(projectQuotaReturnObject); return Json(projectQuotaReturnObject);
...@@ -407,9 +408,24 @@ namespace Coscine.Api.Project.Controllers ...@@ -407,9 +408,24 @@ namespace Coscine.Api.Project.Controllers
return BadRequest($"Cannot set quota to {updateProjectQuotaObject.Allocated}. It would exceed the limit of {maxAvailabe}"); return BadRequest($"Cannot set quota to {updateProjectQuotaObject.Allocated}. It would exceed the limit of {maxAvailabe}");
} }
var defaultQuotas = _rdfStoreConnector.GetQuotaDefault(user.Id.ToString());
var defaultQuota = defaultQuotas.FirstOrDefault(q => q.ResourceType == resourceType.DisplayName);
if (projectQuotaForCurrent == null)
{
var projectQuota = new ProjectQuota
{
MaxQuota = defaultQuota == null ? 0 : defaultQuota.DefaultMaxQuota,
Quota = defaultQuota == null ? 0 : defaultQuota.DefaultQuota,
ProjectId = project.Id,
ResourceTypeId = resourceType.Id
};
_projectQuotaModel.Insert(projectQuota);
}
else
{
projectQuotaForCurrent.Quota = updateProjectQuotaObject.Allocated; projectQuotaForCurrent.Quota = updateProjectQuotaObject.Allocated;
_projectQuotaModel.Update(projectQuotaForCurrent); _projectQuotaModel.Update(projectQuotaForCurrent);
}
return NoContent(); return NoContent();
} }
...@@ -570,7 +586,20 @@ namespace Coscine.Api.Project.Controllers ...@@ -570,7 +586,20 @@ namespace Coscine.Api.Project.Controllers
return Unauthorized("User is not allowed to create SubProjects."); return Unauthorized("User is not allowed to create SubProjects.");
} }
var project = _projectModel.StoreFromObject(projectObject, user, _rdfStoreConnector.GetQuotaDefault(user.Id.ToString())); var defaultQuotas = _rdfStoreConnector.GetQuotaDefault(user.Id.ToString());
var projectQuotas = defaultQuotas.Select(defaulQuota =>
{
var resourceType = _resourceTypeModel.GetWhere(resourceType => resourceType.DisplayName == defaulQuota.ResourceType);
return new ProjectQuota
{
MaxQuota = defaulQuota.DefaultMaxQuota,
Quota = defaulQuota.DefaultQuota,
ResourceTypeId = resourceType.Id
};
});
var project = _projectModel.StoreFromObject(projectObject, user, projectQuotas);
if (projectObject.ParentId != new Guid() if (projectObject.ParentId != new Guid()
// Both an owner and a member can add subprojects to projects // Both an owner and a member can add subprojects to projects
......
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Coscine.Action" Version="2.*-*" /> <PackageReference Include="Coscine.Action" Version="2.*-*" />
<PackageReference Include="Coscine.ApiCommons" Version="2.*-*" /> <PackageReference Include="Coscine.ApiCommons" Version="2.*-*" />
<PackageReference Include="Coscine.Database" Version="2.*-*" /> <PackageReference Include="Coscine.Database" Version="2.6.0-issues-0028-maxq0002" />
<PackageReference Include="Coscine.Logging" Version="2.*-*" /> <PackageReference Include="Coscine.Logging" Version="2.*-*" />
<PackageReference Include="Coscine.Metadata" Version="2.*-*" /> <PackageReference Include="Coscine.Metadata" Version="2.3.0-issues-0028-maxq0002" />
<PackageReference Include="Coscine.ResourceLoader" Version="2.*-*" /> <PackageReference Include="Coscine.ResourceLoader" Version="2.*-*" />
<PackageReference Include="Coscine.ResourceTypeBase" Version="2.*-*" /> <PackageReference Include="Coscine.ResourceTypeBase" Version="2.*-*" />
</ItemGroup> </ItemGroup>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment