#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
// QQ群:605534569
//------------------------------------------------------------------------------
#endregion
using BlazorComponent;
using Furion;
using Mapster;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using ThingsGateway.Admin.Blazor.Core;
using ThingsGateway.Admin.Core;
using ThingsGateway.Application;
namespace ThingsGateway.Blazor;
///
/// 内存变量页面
///
public partial class MemoryVariablePage
{
private IAppDataTable _datatable;
long choiceUploadDeviceId;
ImportExcel ImportExcel;
private readonly MemoryVariablePageInput search = new();
StringNumber tab;
List UploadDevices = new();
[Inject]
AjaxService AjaxService { get; set; }
[Inject]
InitTimezone InitTimezone { get; set; }
[Inject]
IVariableService VariableService { get; set; }
///
///
///
///
protected override async Task OnParametersSetAsync()
{
UploadDevices = App.GetService().GetCacheList();
await base.OnParametersSetAsync();
}
private void FilterHeaders(List> datas)
{
datas.RemoveWhere(it => it.Value == nameof(DeviceVariable.DeviceId));
datas.RemoveWhere(it => it.Value == nameof(DeviceVariable.VariableAddress));
datas.RemoveWhere(it => it.Value == nameof(DeviceVariable.OtherMethod));
}
private async Task AddCallAsync(MemoryVariableAddInput input)
{
await VariableService.AddAsync(input);
}
private async Task ClearAsync()
{
var confirm = await PopupService.OpenConfirmDialogAsync("确认", "清空?");
if (confirm)
{
await VariableService.ClearMemoryVariableAsync();
}
await DatatableQueryAsync();
}
private async Task DatatableQueryAsync()
{
await _datatable.QueryClickAsync();
}
private async Task DeleteCallAsync(IEnumerable input)
{
await VariableService.DeleteAsync(input.Select(a => a.Id).ToArray());
}
Task> DeviceImportAsync(IBrowserFile file)
{
return VariableService.MemoryVariablePreviewAsync(file);
}
async Task DownExportAsync(MemoryVariablePageInput input = null)
{
await AjaxService.DownFileAsync("gatewayFile/memoryVariable", SysDateTimeExtensions.CurrentDateTime.ToFileDateTimeFormat(), input.Adapt());
}
private async Task EditCallAsync(MemoryVariableAddInput input)
{
await VariableService.EditAsync(input);
}
List GetDriverProperties(long driverId, List dependencyProperties)
{
return ServiceHelper.GetBackgroundService().GetVariablePropertys(driverId, dependencyProperties);
}
private async Task> QueryCallAsync(MemoryVariablePageInput input)
{
var data = await VariableService.PageAsync(input);
return data;
}
async Task SaveDeviceImportAsync(Dictionary data)
{
await VariableService.ImportAsync(data);
await DatatableQueryAsync();
ImportExcel.IsShowImport = false;
}
}