Removed legacy website
This commit is contained in:
parent
17da56a2aa
commit
355884e999
|
@ -39,8 +39,6 @@ public class DataContext : DbContext
|
|||
public DbSet<NotificationAction> NotificationActions { get; set; }
|
||||
public DbSet<DdosAttack> DdosAttacks { get; set; }
|
||||
public DbSet<Subscription> Subscriptions { get; set; }
|
||||
public DbSet<PleskServer> PleskServers { get; set; }
|
||||
public DbSet<Website> Websites { get; set; }
|
||||
public DbSet<StatisticsData> Statistics { get; set; }
|
||||
public DbSet<NewsEntry> NewsEntries { get; set; }
|
||||
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
namespace Moonlight.App.Database.Entities;
|
||||
|
||||
public class PleskServer
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; } = "";
|
||||
public string ApiUrl { get; set; } = "";
|
||||
public string ApiKey { get; set; } = "";
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
namespace Moonlight.App.Database.Entities;
|
||||
|
||||
public class Website
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string BaseDomain { get; set; } = "";
|
||||
public int PleskId { get; set; }
|
||||
public PleskServer PleskServer { get; set; }
|
||||
public User Owner { get; set; }
|
||||
public string FtpLogin { get; set; } = "";
|
||||
public string FtpPassword { get; set; } = "";
|
||||
}
|
|
@ -1,220 +0,0 @@
|
|||
using System.Text;
|
||||
using Moonlight.App.Database.Entities;
|
||||
using Moonlight.App.Exceptions;
|
||||
using Newtonsoft.Json;
|
||||
using RestSharp;
|
||||
|
||||
namespace Moonlight.App.Helpers;
|
||||
|
||||
public class PleskApiHelper
|
||||
{
|
||||
private readonly RestClient Client;
|
||||
|
||||
public PleskApiHelper()
|
||||
{
|
||||
Client = new();
|
||||
}
|
||||
|
||||
public async Task<T> Get<T>(PleskServer server, string resource)
|
||||
{
|
||||
var request = CreateRequest(server, resource);
|
||||
|
||||
request.Method = Method.Get;
|
||||
|
||||
var response = await Client.ExecuteAsync(request);
|
||||
|
||||
if (!response.IsSuccessful)
|
||||
{
|
||||
if (response.StatusCode != 0)
|
||||
{
|
||||
throw new PleskException(
|
||||
$"An error occured: ({response.StatusCode}) {response.Content}",
|
||||
(int)response.StatusCode
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"An internal error occured: {response.ErrorMessage}");
|
||||
}
|
||||
}
|
||||
|
||||
return JsonConvert.DeserializeObject<T>(response.Content!)!;
|
||||
}
|
||||
|
||||
public async Task<string> GetRaw(PleskServer server, string resource)
|
||||
{
|
||||
var request = CreateRequest(server, resource);
|
||||
|
||||
request.Method = Method.Get;
|
||||
|
||||
var response = await Client.ExecuteAsync(request);
|
||||
|
||||
if (!response.IsSuccessful)
|
||||
{
|
||||
if (response.StatusCode != 0)
|
||||
{
|
||||
throw new PleskException(
|
||||
$"An error occured: ({response.StatusCode}) {response.Content}",
|
||||
(int)response.StatusCode
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"An internal error occured: {response.ErrorMessage}");
|
||||
}
|
||||
}
|
||||
|
||||
return response.Content!;
|
||||
}
|
||||
|
||||
public async Task<T> Post<T>(PleskServer server, string resource, object? body)
|
||||
{
|
||||
var request = CreateRequest(server, resource);
|
||||
|
||||
request.Method = Method.Post;
|
||||
|
||||
request.AddParameter("text/plain",
|
||||
JsonConvert.SerializeObject(body),
|
||||
ParameterType.RequestBody
|
||||
);
|
||||
|
||||
var response = await Client.ExecuteAsync(request);
|
||||
|
||||
if (!response.IsSuccessful)
|
||||
{
|
||||
if (response.StatusCode != 0)
|
||||
{
|
||||
throw new PleskException(
|
||||
$"An error occured: ({response.StatusCode}) {response.Content}",
|
||||
(int)response.StatusCode
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"An internal error occured: {response.ErrorMessage}");
|
||||
}
|
||||
}
|
||||
|
||||
return JsonConvert.DeserializeObject<T>(response.Content!)!;
|
||||
}
|
||||
|
||||
public async Task Post(PleskServer server, string resource, object? body)
|
||||
{
|
||||
var request = CreateRequest(server, resource);
|
||||
|
||||
request.Method = Method.Post;
|
||||
|
||||
if(body != null)
|
||||
request.AddParameter("text/plain", JsonConvert.SerializeObject(body), ParameterType.RequestBody);
|
||||
|
||||
var response = await Client.ExecuteAsync(request);
|
||||
|
||||
if (!response.IsSuccessful)
|
||||
{
|
||||
if (response.StatusCode != 0)
|
||||
{
|
||||
throw new PleskException(
|
||||
$"An error occured: ({response.StatusCode}) {response.Content}",
|
||||
(int)response.StatusCode
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"An internal error occured: {response.ErrorMessage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public async Task PostRaw(PleskServer server, string resource, object body)
|
||||
{
|
||||
var request = CreateRequest(server, resource);
|
||||
|
||||
request.Method = Method.Post;
|
||||
|
||||
request.AddParameter("text/plain", body, ParameterType.RequestBody);
|
||||
|
||||
var response = await Client.ExecuteAsync(request);
|
||||
|
||||
if (!response.IsSuccessful)
|
||||
{
|
||||
if (response.StatusCode != 0)
|
||||
{
|
||||
throw new PleskException(
|
||||
$"An error occured: ({response.StatusCode}) {response.Content}",
|
||||
(int)response.StatusCode
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"An internal error occured: {response.ErrorMessage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public async Task Delete(PleskServer server, string resource, object? body)
|
||||
{
|
||||
var request = CreateRequest(server, resource);
|
||||
|
||||
request.Method = Method.Delete;
|
||||
|
||||
if(body != null)
|
||||
request.AddParameter("text/plain", JsonConvert.SerializeObject(body), ParameterType.RequestBody);
|
||||
|
||||
var response = await Client.ExecuteAsync(request);
|
||||
|
||||
if (!response.IsSuccessful)
|
||||
{
|
||||
if (response.StatusCode != 0)
|
||||
{
|
||||
throw new PleskException(
|
||||
$"An error occured: ({response.StatusCode}) {response.Content}",
|
||||
(int)response.StatusCode
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"An internal error occured: {response.ErrorMessage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public async Task Put(PleskServer server, string resource, object? body)
|
||||
{
|
||||
var request = CreateRequest(server, resource);
|
||||
|
||||
request.Method = Method.Put;
|
||||
|
||||
request.AddParameter("text/plain", JsonConvert.SerializeObject(body), ParameterType.RequestBody);
|
||||
|
||||
var response = await Client.ExecuteAsync(request);
|
||||
|
||||
if (!response.IsSuccessful)
|
||||
{
|
||||
if (response.StatusCode != 0)
|
||||
{
|
||||
throw new PleskException(
|
||||
$"An error occured: ({response.StatusCode}) {response.Content}",
|
||||
(int)response.StatusCode
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"An internal error occured: {response.ErrorMessage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private RestRequest CreateRequest(PleskServer pleskServer, string resource)
|
||||
{
|
||||
var url = $"{pleskServer.ApiUrl}/" + resource;
|
||||
|
||||
var request = new RestRequest(url);
|
||||
var ba = Convert.ToBase64String(Encoding.UTF8.GetBytes(pleskServer.ApiKey));
|
||||
|
||||
request.AddHeader("Content-Type", "application/json");
|
||||
request.AddHeader("Accept", "application/json");
|
||||
request.AddHeader("Authorization", "Basic " + ba);
|
||||
|
||||
return request;
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Moonlight.App.Database;
|
||||
using Moonlight.App.Database.Entities;
|
||||
|
||||
namespace Moonlight.App.Repositories;
|
||||
|
||||
public class PleskServerRepository : IDisposable
|
||||
{
|
||||
private readonly DataContext DataContext;
|
||||
|
||||
public PleskServerRepository(DataContext dataContext)
|
||||
{
|
||||
DataContext = dataContext;
|
||||
}
|
||||
|
||||
public DbSet<PleskServer> Get()
|
||||
{
|
||||
return DataContext.PleskServers;
|
||||
}
|
||||
|
||||
public PleskServer Add(PleskServer pleskServer)
|
||||
{
|
||||
var x = DataContext.PleskServers.Add(pleskServer);
|
||||
DataContext.SaveChanges();
|
||||
return x.Entity;
|
||||
}
|
||||
|
||||
public void Update(PleskServer pleskServer)
|
||||
{
|
||||
DataContext.PleskServers.Update(pleskServer);
|
||||
DataContext.SaveChanges();
|
||||
}
|
||||
|
||||
public void Delete(PleskServer pleskServer)
|
||||
{
|
||||
DataContext.PleskServers.Remove(pleskServer);
|
||||
DataContext.SaveChanges();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
DataContext.Dispose();
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Moonlight.App.Database;
|
||||
using Moonlight.App.Database.Entities;
|
||||
|
||||
namespace Moonlight.App.Repositories;
|
||||
|
||||
public class WebsiteRepository : IDisposable
|
||||
{
|
||||
private readonly DataContext DataContext;
|
||||
|
||||
public WebsiteRepository(DataContext dataContext)
|
||||
{
|
||||
DataContext = dataContext;
|
||||
}
|
||||
|
||||
public DbSet<Website> Get()
|
||||
{
|
||||
return DataContext.Websites;
|
||||
}
|
||||
|
||||
public Website Add(Website website)
|
||||
{
|
||||
var x = DataContext.Websites.Add(website);
|
||||
DataContext.SaveChanges();
|
||||
return x.Entity;
|
||||
}
|
||||
|
||||
public void Update(Website website)
|
||||
{
|
||||
DataContext.Websites.Update(website);
|
||||
DataContext.SaveChanges();
|
||||
}
|
||||
|
||||
public void Delete(Website website)
|
||||
{
|
||||
DataContext.Websites.Remove(website);
|
||||
DataContext.SaveChanges();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
DataContext.Dispose();
|
||||
}
|
||||
}
|
|
@ -10,8 +10,7 @@ public class StatisticsCaptureService
|
|||
private readonly StatisticsRepository StatisticsRepository;
|
||||
private readonly IServiceScopeFactory ServiceScopeFactory;
|
||||
private readonly WebSpaceService WebSpaceService;
|
||||
private readonly PleskServerRepository PleskServerRepository;
|
||||
private PeriodicTimer Timer;
|
||||
private readonly PeriodicTimer Timer;
|
||||
|
||||
public StatisticsCaptureService(IServiceScopeFactory serviceScopeFactory, ConfigService configService)
|
||||
{
|
||||
|
@ -22,7 +21,6 @@ public class StatisticsCaptureService
|
|||
ConfigService = configService;
|
||||
StatisticsRepository = provider.GetRequiredService<StatisticsRepository>();
|
||||
WebSpaceService = provider.GetRequiredService<WebSpaceService>();
|
||||
PleskServerRepository = provider.GetRequiredService<PleskServerRepository>();
|
||||
|
||||
var config = ConfigService.GetSection("Moonlight").GetSection("Statistics");
|
||||
if(!config.GetValue<bool>("Enabled"))
|
||||
|
@ -42,16 +40,8 @@ public class StatisticsCaptureService
|
|||
StatisticsRepository.Add("statistics.usersCount", DataContext.Users.Count());
|
||||
StatisticsRepository.Add("statistics.serversCount", DataContext.Servers.Count());
|
||||
StatisticsRepository.Add("statistics.domainsCount", DataContext.Domains.Count());
|
||||
StatisticsRepository.Add("statistics.websitesCount", DataContext.Websites.Count());
|
||||
|
||||
int databases = 0;
|
||||
|
||||
await foreach (var pleskServer in PleskServerRepository.Get())
|
||||
{
|
||||
//databases += (await WebsiteService.GetDefaultDatabaseServer(pleskServer)).DbCount;
|
||||
}
|
||||
|
||||
StatisticsRepository.Add("statistics.databasesCount", databases);
|
||||
StatisticsRepository.Add("statistics.webspacesCount", DataContext.WebSpaces.Count());
|
||||
StatisticsRepository.Add("statistics.databasesCount", DataContext.Databases.Count());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -68,8 +68,6 @@ namespace Moonlight
|
|||
builder.Services.AddScoped<NotificationRepository>();
|
||||
builder.Services.AddScoped<DdosAttackRepository>();
|
||||
builder.Services.AddScoped<SubscriptionRepository>();
|
||||
builder.Services.AddScoped<PleskServerRepository>();
|
||||
builder.Services.AddScoped<WebsiteRepository>();
|
||||
builder.Services.AddScoped<LoadingMessageRepository>();
|
||||
builder.Services.AddScoped<NewsEntryRepository>();
|
||||
builder.Services.AddScoped<NodeAllocationRepository>();
|
||||
|
@ -137,7 +135,6 @@ namespace Moonlight
|
|||
builder.Services.AddSingleton<PaperApiHelper>();
|
||||
builder.Services.AddSingleton<HostSystemHelper>();
|
||||
builder.Services.AddScoped<DaemonApiHelper>();
|
||||
builder.Services.AddScoped<PleskApiHelper>();
|
||||
builder.Services.AddScoped<CloudPanelApiHelper>();
|
||||
|
||||
// Background services
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
@using Markdig
|
||||
|
||||
@inject ServerRepository ServerRepository
|
||||
@inject WebsiteRepository WebsiteRepository
|
||||
@inject Repository<WebSpace> WebSpaceRepository
|
||||
@inject DomainRepository DomainRepository
|
||||
@inject NewsEntryRepository NewsEntryRepository
|
||||
|
||||
|
@ -90,7 +90,7 @@
|
|||
<TL>Webspaces</TL>
|
||||
</h6>
|
||||
<span class="h2 mb-0">
|
||||
@(WebsiteCount)
|
||||
@(WebSpaceCount)
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
|
@ -155,8 +155,8 @@
|
|||
<i class="bx bx-md bx-globe"></i>
|
||||
</div>
|
||||
<div class="d-flex justify-content-start flex-column">
|
||||
<a href="/websites/create" class="text-gray-800 text-hover-primary mb-1 fs-5">
|
||||
<TL>Create a website</TL>
|
||||
<a href="/webspaces/create" class="text-gray-800 text-hover-primary mb-1 fs-5">
|
||||
<TL>Create a webspace</TL>
|
||||
</a>
|
||||
<span class="text-gray-400 fw-semibold d-block fs-6">
|
||||
<TL>Make your own websites with a webspace</TL>
|
||||
|
@ -210,11 +210,11 @@
|
|||
<i class="bx bx-md bx-globe"></i>
|
||||
</div>
|
||||
<div class="d-flex justify-content-start flex-column">
|
||||
<a href="/websites" class="text-gray-800 text-hover-primary mb-1 fs-5">
|
||||
<TL>Manage your websites</TL>
|
||||
<a href="/webspaces" class="text-gray-800 text-hover-primary mb-1 fs-5">
|
||||
<TL>Manage your webspaces</TL>
|
||||
</a>
|
||||
<span class="text-gray-400 fw-semibold d-block fs-6">
|
||||
<TL>Modify the content of your websites</TL>
|
||||
<TL>Modify the content of your webspaces</TL>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -244,7 +244,7 @@
|
|||
|
||||
private int ServerCount = 0;
|
||||
private int DomainCount = 0;
|
||||
private int WebsiteCount = 0;
|
||||
private int WebSpaceCount = 0;
|
||||
|
||||
private List<NewsEntry> NewsEntries;
|
||||
private int CurrentNewsIndex = 0;
|
||||
|
@ -261,7 +261,7 @@
|
|||
.Include(x => x.Owner)
|
||||
.Count(x => x.Owner.Id == User.Id);
|
||||
|
||||
WebsiteCount = WebsiteRepository
|
||||
WebSpaceCount = WebSpaceRepository
|
||||
.Get()
|
||||
.Include(x => x.Owner)
|
||||
.Count(x => x.Owner.Id == User.Id);
|
||||
|
|
Loading…
Reference in a new issue