using Masuit.MyBlogs.Core.Common;
using Masuit.MyBlogs.Core.Common.Mails;
using Masuit.MyBlogs.Core.Extensions.Firewall;
using Masuit.MyBlogs.Core.Infrastructure.Services.Interface;
using Masuit.MyBlogs.Core.Models.Entity;
using Masuit.MyBlogs.Core.Models.Enum;
using Masuit.Tools;
using Masuit.Tools.DateTimeExt;
using Masuit.Tools.Logging;
using Masuit.Tools.Models;
using Masuit.Tools.Systems;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace Masuit.MyBlogs.Core.Controllers
{
///
/// 系统设置
///
public class SystemController : AdminController
{
///
/// 系统设置
///
public ISystemSettingService SystemSettingService { get; set; }
public IFirewallRepoter FirewallRepoter { get; set; }
public IMailSender MailSender { get; set; }
///
/// 获取历史性能计数器
///
///
public IActionResult GetCounterHistory()
{
return Ok(new
{
cpu = PerfCounter.List.Select(c => new[]
{
c.Time,
c.CpuLoad.ConvertTo()
}),
mem = PerfCounter.List.Select(c => new[]
{
c.Time,
c.MemoryUsage.ConvertTo()
}),
read = PerfCounter.List.Select(c => new[]
{
c.Time,
c.DiskRead.ConvertTo()
}),
write = PerfCounter.List.Select(c => new[]
{
c.Time,
c.DiskWrite.ConvertTo()
}),
down = PerfCounter.List.Select(c => new[]
{
c.Time,
c.Download.ConvertTo()
}),
up = PerfCounter.List.Select(c => new[]
{
c.Time,
c.Upload.ConvertTo()
})
});
}
///
/// 获取设置信息
///
///
public ActionResult GetSettings()
{
var list = SystemSettingService.GetAll().Select(s => new
{
s.Name,
s.Value
}).ToList();
return ResultData(list);
}
///
/// 保存设置
///
///
///
public async Task Save(string sets)
{
var settings = JsonConvert.DeserializeObject>(sets).ToArray();
var b = await SystemSettingService.AddOrUpdateSavedAsync(s => s.Name, settings) > 0;
var dic = settings.ToDictionary(s => s.Name, s => s.Value); //同步设置
foreach (var (key, value) in dic)
{
CommonHelper.SystemSettings.AddOrUpdate(key, value);
}
return ResultData(null, b, b ? "设置保存成功!" : "设置保存失败!");
}
///
/// 获取状态
///
///
public ActionResult GetStatus()
{
Array array = Enum.GetValues(typeof(Status));
var list = new List