using Blazorise; using Microsoft.AspNetCore.Components; using Seenginx.Models; using Seenginx.Services; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Threading.Tasks; namespace Seenginx.Pages { public class NginxBase : ComponentBase { [Inject] public INginxService NginxService { get; set; } [Inject] public IFileManager FileService { get; set; } public string InputSearch { get; set; } public List ConfigFiles { get; set; } = new List(); public ConfigFile SelectedFile { get; set; } public List Filters { get; set; } = new List(); public List FilteredOutFiles { get; set; } = new List(); public Dictionary FilterFolder { get; set; } = new Dictionary(); protected override async Task OnInitializedAsync() { ConfigFiles.AddRange(await NginxService.GetFilesAsync()); Filters.AddRange(new List { "All", "Root", "Conf.d", "Available", "Enabled" }); FilterFolder.Add("All", null); FilterFolder.Add("Root", "/"); FilterFolder.Add("Conf.d", "/conf.d"); FilterFolder.Add("Available", "/sites-available"); FilterFolder.Add("Enabled", "/sites-enabled"); await base.OnInitializedAsync(); } public async Task SelectedFileChanged(ConfigFile configFile) { SelectedFile = configFile; } protected Modal ModalRef { get; set; } protected void ShowModal() { ModalRef.Show(); } protected void HideModal() { ModalRef.Hide(); } public async Task AddFile() { ShowModal(); } public async Task> SaveDraftFileAsync() => await FileService.SaveUpdateDraftFileAsync(SelectedFile); public async Task> SaveFileAsync() => await FileService.SaveUpdateFileAsync(SelectedFile); public Result DeleteFile(EventArgs eventArgs) { return FileService.DeleteFile(SelectedFile); } } }