Implemented website order

This commit is contained in:
Marcel Baumgartner
2023-04-11 00:12:14 +02:00
parent 4d144d072b
commit ed7f5e9ca1
7 changed files with 180 additions and 10 deletions

View File

@@ -4,7 +4,7 @@ namespace Moonlight.App.Models.Forms;
public class WebsiteDataModel
{
[Required(ErrorMessage = "You need a domain")]
[Required(ErrorMessage = "You need to enter a domain")]
[RegularExpression(@"([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+", ErrorMessage = "You need to enter a valid domain")]
public string BaseDomain { get; set; } = "";
}

View File

@@ -0,0 +1,10 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.App.Models.Forms;
public class WebsiteOrderDataModel
{
[Required(ErrorMessage = "You need to enter a domain")]
[RegularExpression(@"([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+", ErrorMessage = "You need to enter a valid domain")]
public string BaseDomain { get; set; } = "";
}

View File

@@ -6,12 +6,18 @@ namespace Moonlight.App.Services;
public class SmartDeployService
{
private readonly NodeRepository NodeRepository;
private readonly PleskServerRepository PleskServerRepository;
private readonly WebsiteService WebsiteService;
private readonly NodeService NodeService;
public SmartDeployService(NodeRepository nodeRepository, NodeService nodeService)
public SmartDeployService(
NodeRepository nodeRepository,
NodeService nodeService, PleskServerRepository pleskServerRepository, WebsiteService websiteService)
{
NodeRepository = nodeRepository;
NodeService = nodeService;
PleskServerRepository = pleskServerRepository;
WebsiteService = websiteService;
}
public async Task<Node?> GetNode()
@@ -32,6 +38,21 @@ public class SmartDeployService
return data.MaxBy(x => x.Value).Key;
}
public async Task<PleskServer?> GetPleskServer()
{
var result = new List<PleskServer>();
foreach (var pleskServer in PleskServerRepository.Get().ToArray())
{
if (await WebsiteService.IsHostUp(pleskServer))
{
result.Add(pleskServer);
}
}
return result.FirstOrDefault();
}
private async Task<double> GetUsageScore(Node node)
{
var score = 0;