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

Merge branch 'Issue/2072-wormResourceType' into 'master'

Fix: Missing quota implementation

See merge request !37
parents d4d2fec1 db5fcbc2
No related branches found
No related tags found
1 merge request!37Fix: Missing quota implementation

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30320.27
# Visual Studio Version 17
VisualStudioVersion = 17.0.32112.339
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Admin", "Admin\Admin.csproj", "{04914153-8D29-4252-A3C2-24C887840C69}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Admin", "Admin\Admin.csproj", "{04914153-8D29-4252-A3C2-24C887840C69}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......
......@@ -3,7 +3,6 @@ using Coscine.Action.EventArgs;
using Coscine.Api.Admin.ParameterObjects;
using Coscine.Api.Admin.ReturnObjects;
using Coscine.ApiCommons;
using Coscine.Configuration;
using Coscine.Database.DataModel;
using Coscine.Database.Models;
using Coscine.Logging;
......@@ -98,11 +97,19 @@ namespace Coscine.Api.Admin.Controllers
select projectResource).Any() &&
resource.TypeId == resourceType.Id);
var allocated = resources.Sum(resource => ResourceTypeFactory
.Instance
.GetResourceType(resource)
.GetResourceQuotaAvailable(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id))
.Result);
var allocated = resources.Sum(resource =>
{
// Linked has no quota.
var rt = ResourceTypeFactory.Instance.GetResourceType(resource);
if (rt.GetResourceTypeInformation().Result.IsQuotaAvailable)
{
return rt.GetResourceQuotaAvailable(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id)).Result;
}
else
{
return 0;
}
});
return (int)allocated;
}
......@@ -121,11 +128,23 @@ namespace Coscine.Api.Admin.Controllers
select projectResource).Any() &&
resource.TypeId == resourceType.Id);
var used = Math.Ceiling(resources.Sum(resource => ResourceTypeFactory
.Instance
.GetResourceType(resource)
.GetResourceQuotaUsed(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id))
.Result / _oneGb));
var used = Math.Ceiling(
resources.Sum(
resource =>
{
// Linked has no quota.
var rt = ResourceTypeFactory.Instance.GetResourceType(resource);
if (rt.GetResourceTypeInformation().Result.IsQuotaAvailable)
{
return rt.GetResourceQuotaUsed(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id)).Result / _oneGb;
}
else
{
return 0;
}
}
)
);
return (int)used;
}
......@@ -170,7 +189,7 @@ namespace Coscine.Api.Admin.Controllers
Quotas = quotas.Select(x => new ProjectQuotaObject
{
QuotaId = x.RelationId,
ResourceType = _resourceTypeModel.GetById(x.ResourceTypeId).DisplayName,
ResourceType = _resourceTypeModel.GetById(x.ResourceTypeId).SpecificType,
Quota = x.Quota,
MaxQuota = x.MaxQuota,
Used = CalculateUsedForAll(_resourceTypeModel.GetById(x.ResourceTypeId), project.Id),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment