Merge remote-tracking branch 'origin/v10/dev' into v10/feature/nullable-reference-types-in-Umbraco.Web.Backoffice

# Conflicts:
#	src/Umbraco.Core/DependencyInjection/UmbracoBuilder.Collections.cs
#	src/Umbraco.Core/Extensions/PublishedContentExtensions.cs
#	src/Umbraco.Core/Telemetry/Models/TelemetryReportData.cs
#	src/Umbraco.Infrastructure/PropertyEditors/ValueConverters/MultiUrlPickerValueConverter.cs
#	src/Umbraco.PublishedCache.NuCache/ContentStore.cs
#	src/Umbraco.Web.BackOffice/Trees/MemberTypeTreeController.cs
#	src/Umbraco.Web.Common/ModelsBuilder/InMemoryModelFactory.cs
#	src/Umbraco.Web.Common/Security/MemberManager.cs
#	src/Umbraco.Web.Website/Routing/ControllerActionSearcher.cs
#	src/Umbraco.Web.Website/Routing/IControllerActionSearcher.cs
#	src/Umbraco.Web.Website/Routing/UmbracoRouteValueTransformer.cs
This commit is contained in:
Nikolaj Geisle
2022-04-21 10:26:51 +02:00
172 changed files with 4578 additions and 1710 deletions

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Core.Telemetry.Models
{
@@ -30,5 +31,8 @@ namespace Umbraco.Cms.Core.Telemetry.Models
/// </remarks>
[DataMember(Name = "packages")]
public IEnumerable<PackageTelemetry>? Packages { get; set; }
[DataMember(Name = "detailed")]
public IEnumerable<UsageInformation>? Detailed { get; set; }
}
}

View File

@@ -5,6 +5,8 @@ using System;
using System.Collections.Generic;
using Umbraco.Cms.Core.Configuration;
using Umbraco.Cms.Core.Manifest;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Telemetry.Models;
using Umbraco.Extensions;
@@ -16,6 +18,8 @@ namespace Umbraco.Cms.Core.Telemetry
private readonly IManifestParser _manifestParser;
private readonly IUmbracoVersion _umbracoVersion;
private readonly ISiteIdentifierService _siteIdentifierService;
private readonly IUsageInformationService _usageInformationService;
private readonly IMetricsConsentService _metricsConsentService;
/// <summary>
/// Initializes a new instance of the <see cref="TelemetryService"/> class.
@@ -23,11 +27,15 @@ namespace Umbraco.Cms.Core.Telemetry
public TelemetryService(
IManifestParser manifestParser,
IUmbracoVersion umbracoVersion,
ISiteIdentifierService siteIdentifierService)
ISiteIdentifierService siteIdentifierService,
IUsageInformationService usageInformationService,
IMetricsConsentService metricsConsentService)
{
_manifestParser = manifestParser;
_umbracoVersion = umbracoVersion;
_siteIdentifierService = siteIdentifierService;
_usageInformationService = usageInformationService;
_metricsConsentService = metricsConsentService;
}
/// <inheritdoc/>
@@ -42,14 +50,30 @@ namespace Umbraco.Cms.Core.Telemetry
telemetryReportData = new TelemetryReportData
{
Id = telemetryId,
Version = _umbracoVersion.SemanticVersion.ToSemanticStringWithoutBuild(),
Version = GetVersion(),
Packages = GetPackageTelemetry(),
Detailed = _usageInformationService.GetDetailed(),
};
return true;
}
private string GetVersion()
{
if (_metricsConsentService.GetConsentLevel() == TelemetryLevel.Minimal)
{
return null;
}
return _umbracoVersion.SemanticVersion.ToSemanticStringWithoutBuild();
}
private IEnumerable<PackageTelemetry> GetPackageTelemetry()
{
if (_metricsConsentService.GetConsentLevel() == TelemetryLevel.Minimal)
{
return null;
}
List<PackageTelemetry> packages = new();
IEnumerable<PackageManifest> manifests = _manifestParser.GetManifests();