DocSpace-buildtools/web/ASC.Web.Api/Api/Settings/VersionController.cs

58 lines
1.7 KiB
C#
Raw Normal View History

2022-03-01 11:44:13 +00:00
namespace ASC.Web.Api.Controllers.Settings;
2022-03-01 10:58:02 +00:00
public class VersionController : BaseSettingsController
{
private Tenant Tenant { get { return _apiContext.Tenant; } }
private readonly TenantManager _tenantManager;
private readonly PermissionContext _permissionContext;
private readonly BuildVersion _buildVersion;
public VersionController(
ApiContext apiContext,
TenantManager tenantManager,
WebItemManager webItemManager,
BuildVersion buildVersion,
IMemoryCache memoryCache) : base(apiContext, memoryCache, webItemManager)
{
_tenantManager = tenantManager;
_buildVersion = buildVersion;
}
[AllowAnonymous]
[Read("version/build", false)]
public Task<BuildVersion> GetBuildVersionsAsync()
{
return _buildVersion.GetCurrentBuildVersionAsync();
}
[Read("version")]
public TenantVersionResponseDto GetVersions()
{
return new TenantVersionResponseDto(Tenant.Version, _tenantManager.GetTenantVersions());
}
[Update("version")]
public TenantVersionResponseDto SetVersionFromBody([FromBody] SettingsDto model)
{
return SetVersion(model);
}
[Update("version")]
[Consumes("application/x-www-form-urlencoded")]
public TenantVersionResponseDto SetVersionFromForm([FromForm] SettingsDto model)
{
return SetVersion(model);
}
private TenantVersionResponseDto SetVersion(SettingsDto model)
{
_permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
_tenantManager.GetTenantVersions().FirstOrDefault(r => r.Id == model.VersionId).NotFoundIfNull();
_tenantManager.SetTenantVersion(Tenant, model.VersionId);
return GetVersions();
}
}