From 1ea1a12f5efbe01322eaea34bbeb4105e538958a Mon Sep 17 00:00:00 2001 From: sirieamhunke <hunke@itc.rwth-aachen.de> Date: Wed, 5 Oct 2022 15:59:29 +0200 Subject: [PATCH] WIP --- src/KPI Generator/Reporting.cs | 8 +++----- .../Reportings/Project/ProjectReporting.cs | 13 ++++++++----- .../Reportings/Project/ReturnObject.cs | 6 ++---- src/KPI Generator/Reportings/User/UserReporting.cs | 4 ++-- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/KPI Generator/Reporting.cs b/src/KPI Generator/Reporting.cs index 403295d..1e0d412 100644 --- a/src/KPI Generator/Reporting.cs +++ b/src/KPI Generator/Reporting.cs @@ -24,7 +24,6 @@ public abstract class Reporting<O> where O : class private static string InstanceName { get; set; } = null!; public virtual string ReportingFileName { get; init; } = null!; - public readonly Organization _otherOrganization = new() { Name = "Other", @@ -37,7 +36,6 @@ public abstract class Reporting<O> where O : class /// <remarks>https://git.rwth-aachen.de/coscine/reporting/reporting-database</remarks> private static readonly int ReportingDatabaseProjectId = 75304; - public Reporting(O options) { InstanceName = this.GetType().Name; @@ -71,14 +69,13 @@ public abstract class Reporting<O> where O : class return success; } - private async Task<bool> PublishAsync(IEnumerable<ReportingFileObject> files) { try { // Retrieve Reporting Database project var reportingDatabaseProject = await GitLabClient.Projects.GetAsync(ReportingDatabaseProjectId); - var commitBranch = reportingDatabaseProject.DefaultBranch; + var commitBranch = "projectReport"; var commitMessage = $"{InstanceName} Generated - {DateTime.Now:dd.MM.yyyy HH:mm}"; // CompleteReporting Generated - 31.08.2022 10:25 var projectTree = await GitLabClient.Trees.GetAsync(reportingDatabaseProject, o => @@ -180,6 +177,7 @@ public abstract class Reporting<O> where O : class { return string.Format("General/{0}", fileName); } + public static string GetReportingPathOrganization(string organizationRor, string fileName) { return string.Format("Organizations/{0}/{1}", organizationRor, fileName); @@ -190,4 +188,4 @@ public abstract class Reporting<O> where O : class byte[] byteArray = Encoding.UTF8.GetBytes(contents); return new MemoryStream(byteArray); } -} +} \ No newline at end of file diff --git a/src/KPI Generator/Reportings/Project/ProjectReporting.cs b/src/KPI Generator/Reportings/Project/ProjectReporting.cs index 5cce848..d1d32fb 100644 --- a/src/KPI Generator/Reportings/Project/ProjectReporting.cs +++ b/src/KPI Generator/Reportings/Project/ProjectReporting.cs @@ -5,6 +5,7 @@ using Newtonsoft.Json; using KPIGenerator.Utils; using static KPIGenerator.Utils.CommandLineOptions; using Coscine.Database.DataModel; +using Coscine.ResourceTypes; namespace KPIGenerator.Reportings.Project; @@ -13,7 +14,7 @@ public class ProjectReporting : Reporting<ProjectReportingOptions> private readonly ProjectModel _projectModel; private readonly ResourceModel _resourceModel; private readonly ProjectRoleModel _projectRoleModel; - private readonly ProjectInstituteModel _projectInstituteModel; + private readonly ResourceTypeModel _resourceTypeModel; public ProjectReporting(ProjectReportingOptions options) : base(options) { @@ -21,7 +22,7 @@ public class ProjectReporting : Reporting<ProjectReportingOptions> _projectModel = new ProjectModel(); _projectRoleModel = new ProjectRoleModel(); _resourceModel = new ResourceModel(); - _projectInstituteModel = new ProjectInstituteModel(); + _resourceTypeModel = new ResourceTypeModel(); } public override IEnumerable<ReportingFileObject> GenerateReporting() @@ -60,7 +61,7 @@ public class ProjectReporting : Reporting<ProjectReportingOptions> ProjectVisibilityId = projectReturnObject.Visibility.Id, GrantId = projectReturnObject.GrantId, Members = _projectRoleModel.GetAllWhere(x => x.ProjectId == projectReturnObject.Id).Count(), - ResourceQuota = GetResourceQuota(project) + ResourceTypeQuota = GetResourceTypeQuota(projectReturnObject.Id) }; } return returnObjects; @@ -89,9 +90,11 @@ public class ProjectReporting : Reporting<ProjectReportingOptions> return reportingFilesPerOrganization; } - private ResourceQuotaReturnObject GetResourceQuota(object resource) + private IEnumerable<ProjectQuotaReturnObject> GetResourceTypeQuota(Guid projectId) { - throw new NotImplementedException(); + var resourceTypes = _resourceTypeModel.GetAllWhere(x => x.Enabled == true); + + return resourceTypes.Select(x => Helpers.CreateProjectQuotaReturnObject(x, projectId)); } private List<Organization> GetOrganizations(Guid projectID) diff --git a/src/KPI Generator/Reportings/Project/ReturnObject.cs b/src/KPI Generator/Reportings/Project/ReturnObject.cs index 45148e6..ada8c9b 100644 --- a/src/KPI Generator/Reportings/Project/ReturnObject.cs +++ b/src/KPI Generator/Reportings/Project/ReturnObject.cs @@ -16,7 +16,5 @@ public class ReturnObject public Guid ProjectVisibilityId { get; set; } public string? GrantId { get; set; } public int? Members { get; set; } = null; - public ResourceQuotaReturnObject? ResourceQuota { get; set; } = null!; - - -} + public IEnumerable<ProjectQuotaReturnObject> ResourceTypeQuota { get; set; } = null!; +} \ No newline at end of file diff --git a/src/KPI Generator/Reportings/User/UserReporting.cs b/src/KPI Generator/Reportings/User/UserReporting.cs index f27808d..b666f41 100644 --- a/src/KPI Generator/Reportings/User/UserReporting.cs +++ b/src/KPI Generator/Reportings/User/UserReporting.cs @@ -85,7 +85,7 @@ public class UserReporting : Reporting<UserReportingOptions> reportingFilesPerOrganization.Add(new ReportingFileObject { - Path = GetReportingPathOrganization(organization.Ror.Replace("https://ror.org/", "").ToLower(), ReportingFileName), + Path = GetReportingPathOrganization(organization.RorUrl.Replace("https://ror.org/", "").ToLower(), ReportingFileName), Content = ConvertStringContentsToStream(JsonConvert.SerializeObject(returnObjectsForOrganization, Formatting.Indented)) }); } @@ -177,4 +177,4 @@ public class UserReporting : Reporting<UserReportingOptions> } else return null; } -} +} \ No newline at end of file -- GitLab