diff --git a/src/KPI Generator/Reportings/Resource/ResourceReporting.cs b/src/KPI Generator/Reportings/Resource/ResourceReporting.cs index da2ba40545e13996bf7bc1c0107c6b14fc43dd16..68908fe199eb4df1a53f7f41885677fd1fae860f 100644 --- a/src/KPI Generator/Reportings/Resource/ResourceReporting.cs +++ b/src/KPI Generator/Reportings/Resource/ResourceReporting.cs @@ -1,5 +1,4 @@ using Coscine.Database.Models; -using Coscine.Database.ReturnObjects; using Coscine.KpiGenerator.Utils; using Coscine.ResourceTypes; using Coscine.ResourceTypes.Base; @@ -111,7 +110,7 @@ public class ResourceReporting : Reporting<ResourceReportingOptions> } } - private ResourceQuotaReturnObject? GetResourceQuota(Database.DataModel.Resource resource) + private QuotaReturnObject? GetResourceQuota(Database.DataModel.Resource resource) { BaseResourceType? resourceTypeDefinition; try @@ -128,7 +127,8 @@ public class ResourceReporting : Reporting<ResourceReportingOptions> { try { - return ResourceTypes.Helpers.CreateResourceQuotaReturnObject(resource, resourceTypeDefinition); + var quota = ResourceTypes.Helpers.CreateResourceQuotaReturnObject(resource, resourceTypeDefinition); + return new QuotaReturnObject(quota); } catch (Exception ex) { diff --git a/src/KPI Generator/Reportings/Resource/ReturnObject.cs b/src/KPI Generator/Reportings/Resource/ReturnObject.cs index e449cc859dbbb699ca1497b8020f7212b375cf27..d2e56ec10c737f534600a5ab6b4aa72db2fb9c40 100644 --- a/src/KPI Generator/Reportings/Resource/ReturnObject.cs +++ b/src/KPI Generator/Reportings/Resource/ReturnObject.cs @@ -19,6 +19,21 @@ public class ReturnObject public List<DisciplineObject> Disciplines { get; set; } = new(); public string? License { get; set; } = null; public string ApplicationProfile { get; set; } = null!; - public ResourceQuotaReturnObject? ResourceQuota { get; set; } = null!; + public QuotaReturnObject? ResourceQuota { get; set; } = null!; +} + +public class QuotaReturnObject +{ + public Guid Id { get; set; } + public QuotaDimObject Used { get; set; } = null!; + public float UsedPercentage { get; set; } + public QuotaDimObject Reserved { get; set; } = null!; + public QuotaReturnObject(ResourceQuotaReturnObject resourceQuotaReturnObject) + { + Id = resourceQuotaReturnObject.Id; + Used = resourceQuotaReturnObject.Used; + UsedPercentage = resourceQuotaReturnObject.UsedPercentage; + Reserved = resourceQuotaReturnObject.Reserved; + } } diff --git a/src/KPI Generator/Reportings/User/UserReporting.cs b/src/KPI Generator/Reportings/User/UserReporting.cs index 0fb1067c43b0ca257efecf4b08ff33048c1f188d..098ee88958ec3a0f579b524a0cb8df06cd24a3a5 100644 --- a/src/KPI Generator/Reportings/User/UserReporting.cs +++ b/src/KPI Generator/Reportings/User/UserReporting.cs @@ -5,7 +5,6 @@ using Coscine.Metadata; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using NLog.Extensions.Logging; -using System.Collections.Generic; using VDS.RDF.Query; using static KPIGenerator.Utils.CommandLineOptions; @@ -87,7 +86,7 @@ public class UserReporting : Reporting<UserReportingOptions> foreach (var entry in organizationsFromUsers) { List<ReturnObject> returnObjectsForOrganization; - + // Handling of "Other" organization if (entry.RorUrl.Equals("https://ror.org/") || entry.RorUrl.Equals("http://ror.org/")) { @@ -97,7 +96,7 @@ public class UserReporting : Reporting<UserReportingOptions> else { returnObjectsForOrganization = returnObjects.Where(ro => ro.Organizations.Select(o => o.RorUrl).Any(e => e.Contains(entry.RorUrl))).ToList(); - } + } var reportingFile = new ReportingFileObject { @@ -224,9 +223,9 @@ public class UserReporting : Reporting<UserReportingOptions> { var today = DateTime.Today; var latestLog = _logModel - .GetAllWhere(l => - l.LogLevel.Equals("Analytics") - && l.UserId.Equals(id) + .GetAllWhere(l => + l.LogLevel.Equals("Analytics") + && l.UserId.Equals(id) && l.ServerTimestamp < today) .OrderByDescending(a => a.ServerTimestamp) .FirstOrDefault();