mirror of
https://github.com/immense/Remotely.git
synced 2025-10-26 11:27:15 +00:00
90 lines
3.1 KiB
C#
90 lines
3.1 KiB
C#
using Immense.RemoteControl.Server.Abstractions;
|
|
using Immense.RemoteControl.Server.Areas.RemoteControl.Pages;
|
|
using Immense.RemoteControl.Server.Models;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using Org.BouncyCastle.Ocsp;
|
|
using Remotely.Shared.Enums;
|
|
using Remotely.Shared.Models;
|
|
using System;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Remotely.Server.Services.RcImplementations
|
|
{
|
|
public class ViewerPageDataProvider : IViewerPageDataProvider
|
|
{
|
|
private readonly IApplicationConfig _appConfig;
|
|
private readonly IDataService _dataService;
|
|
public ViewerPageDataProvider(IDataService dataService, IApplicationConfig appConfig)
|
|
{
|
|
_dataService = dataService;
|
|
_appConfig = appConfig;
|
|
}
|
|
|
|
public Task<string> GetFaviconUrl(PageModel viewerModel)
|
|
{
|
|
return Task.FromResult("/_content/Immense.RemoteControl.Server/favicon.ico");
|
|
}
|
|
|
|
public async Task<string> GetLogoUrl(PageModel viewerModel)
|
|
{
|
|
return await GetTheme(viewerModel) == ViewerPageTheme.Dark ?
|
|
"/images/viewer/remotely-logo-dark.svg" :
|
|
"/images/viewer/remotely-logo-light.svg";
|
|
}
|
|
|
|
public Task<string> GetPageDescription(PageModel viewerModel)
|
|
{
|
|
return Task.FromResult("Open-source remote support tools.");
|
|
}
|
|
|
|
public Task<string> GetPageTitle(PageModel pageModel)
|
|
{
|
|
return Task.FromResult("Remotely Remote Control");
|
|
}
|
|
|
|
public Task<ViewerPageTheme> GetTheme(PageModel pageModel)
|
|
{
|
|
// TODO: Implement light theme in new viewer design.
|
|
return Task.FromResult(ViewerPageTheme.Dark);
|
|
//if (pageModel.User.Identity.IsAuthenticated)
|
|
//{
|
|
// var user = _dataService.GetUserByNameWithOrg(pageModel.User.Identity.Name);
|
|
|
|
// var userTheme = user.UserOptions.Theme switch
|
|
// {
|
|
// Theme.Light => ViewerPageTheme.Light,
|
|
// Theme.Dark => ViewerPageTheme.Dark,
|
|
// _ => ViewerPageTheme.Dark
|
|
// };
|
|
// return Task.FromResult(userTheme);
|
|
//}
|
|
|
|
//var appTheme = _appConfig.Theme switch
|
|
//{
|
|
// Theme.Light => ViewerPageTheme.Light,
|
|
// Theme.Dark => ViewerPageTheme.Dark,
|
|
// _ => ViewerPageTheme.Dark
|
|
//};
|
|
//return Task.FromResult(appTheme);
|
|
}
|
|
|
|
public Task<string> GetUserDisplayName(PageModel pageModel)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(pageModel?.User?.Identity?.Name))
|
|
{
|
|
return Task.FromResult(string.Empty);
|
|
}
|
|
|
|
var user = _dataService.GetUserByNameWithOrg(pageModel.User.Identity.Name);
|
|
|
|
if (user is null)
|
|
{
|
|
return Task.FromResult(string.Empty);
|
|
}
|
|
|
|
var displayName = user.UserOptions?.DisplayName ?? user.UserName ?? string.Empty;
|
|
return Task.FromResult(displayName);
|
|
}
|
|
}
|
|
}
|