Skip to content
Snippets Groups Projects
Select Git revision
  • b69103d42dcbaba53ce99894792d35aaa5df3663
  • main default protected
  • dev protected
  • Issue/3142-kpiGenerator
  • Hotfix/3115-userReportingEmpty2
  • Hotfix/3115-userReportingEmpty
  • Issue/3073-kpi
  • Issue/2492-respOrg
  • Issue/3005-kpiReportingBroken
  • Issue/2982-kpiDataPub
  • gitkeep
  • Issue/2847-reporting
  • Issue/2850-removeGrantId
  • Issue/2432-publicationKpi
  • Hotfix/xxxx-rors
  • Issue/2666-adminCronjobs-theSequal
  • Issue/2666-adminCronjobs
  • Issue/2568-betterLogging
  • Issue/2518-docs
  • Hotfix/2388-sensitive
  • Issue/2330-fixNaNQuotainAdmin
  • v1.2.10
  • v1.2.9
  • v1.2.8
  • v1.2.7
  • v1.2.6
  • v1.2.5
  • v1.2.4
  • v1.2.3
  • v1.2.2
  • v1.2.1
  • v1.2.0
  • v1.1.1
  • v1.1.0
  • v1.0.9
  • v1.0.8
  • v1.0.7
  • v1.0.6
  • v1.0.5
  • v1.0.4
  • v1.0.3
41 results

Helpers.cs

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Helpers.cs 1.33 KiB
    using Coscine.KpiGenerator.Models;
    using System.Text;
    using System.Web;
    
    namespace Coscine.KpiGenerator.Utils;
    
    public static class Helpers
    {
        public static IEnumerable<Organization> GetTopLevelOrganizationsFromEntries(IEnumerable<Organization> organizations)
        {
            var result = new List<Organization>();
            foreach (var org in organizations.Where(o => o.RorUrl is not null))
            {
                var ror = org.RorUrl;
                result.Add(new Organization
                {
                    RorUrl = ror.Contains('#') ? ror[..ror.IndexOf('#')] : ror, // e.g. <https://ror.org/04xfq0f34#ORG-42NHW> turns into <https://ror.org/04xfq0f34>
                    Name = org.Name
                });
            }
            return result.DistinctBy(r => r.RorUrl);
        }
    
        public static string GetReportingPathGeneral(string fileName) => string.Format("General/{0}", fileName);
    
        public static string GetReportingPathOrganization(string organizationRor, string fileName) => string.Format("Organizations/{0}/{1}", SanitizeOrganizationRor(organizationRor), fileName);
    
        public static string SanitizeOrganizationRor(string organizationRor) => HttpUtility.UrlEncode(organizationRor.Replace("https://ror.org/", "").ToLower());
    
        public static Stream ConvertStringContentsToStream(string contents) => new MemoryStream(Encoding.UTF8.GetBytes(contents));
    }