Files
duplicati/proprietary/LoaderHelper/RestoreDestinationProviderModules.cs
T
Kenneth Skovhede a4b33e5d16 Implemented Restore feature and refactored a bit.
Added a free tier for the Office 365 module.
2026-01-20 10:36:37 +01:00

45 lines
1.3 KiB
C#

// Copyright (c) 2026 Duplicati Inc. All rights reserved.
using Duplicati.Library.Interface;
using Duplicati.Library.Utility;
using Duplicati.Proprietary.LicenseChecker;
namespace Duplicati.Proprietary.LoaderHelper;
/// <summary>
/// Shared list of statically linked restore-destination-provider modules
/// </summary>
public static class RestoreDestinationProviderModules
{
/// <summary>
/// The list of all built-in restore-destination-provider modules
/// </summary>
public static IReadOnlyList<IRestoreDestinationProviderModule> LicensedRestoreDestinationProviderModules
{
get
{
// Safegard against errors during loading, e.g. missing libraries
try
{
return LicensedRestoreDestinationProvidersLazy.Value;
}
catch
{
return Array.Empty<IRestoreDestinationProviderModule>();
}
}
}
/// <summary>
/// Calculate list once and cache it
/// </summary>
private static readonly Lazy<IReadOnlyList<IRestoreDestinationProviderModule>> LicensedRestoreDestinationProvidersLazy = new(() =>
new IRestoreDestinationProviderModule?[] {
LicenseHelper.AvailableOffice365FeatureSeats > 0 ? new Office365.RestoreProvider() : null
}
.WhereNotNull()
.ToList()
);
}