using Microsoft.Extensions.DependencyInjection;
using PMSWPF.Enums;
using PMSWPF.Models;
using PMSWPF.ViewModels;
namespace PMSWPF.Helper;
public class DataServicesHelper
{
///
/// 从设备列表中找到变量表VarTable对象
///
/// VarTable的ID
/// 如果找到择返回对象,否则返回null
public static VariableTable FindVarTableForDevice(List devices, int vtableId)
{
VariableTable varTable = null;
foreach (var device in devices)
{
varTable = device.VariableTables.FirstOrDefault(v => v.Id == vtableId);
if (varTable != null)
return varTable;
}
return varTable;
}
public static MenuBean FindMenusForDevice(Device device,List menus)
{
foreach (var mainMenu in menus)
{
if (mainMenu.Items == null || mainMenu.Items.Count == 0)
continue;
foreach (var secondMenu in mainMenu.Items)
{
if (secondMenu.Type == MenuType.DeviceMenu && secondMenu.Data != null && secondMenu.Data == device)
{
return secondMenu;
}
}
}
return null;
}
///
/// 给菜单排序
///
///
public static void SortMenus(MenuBean menu)
{
if (menu.Items == null || menu.Items.Count() == 0)
return;
menu.Items.Sort((a, b) =>
a.Type.ToString().Length.CompareTo(b.Type.ToString().Length)
);
foreach (var menuItem in menu.Items)
{
SortMenus(menuItem);
}
}
public static ViewModelBase GetMainViewModel(string name)
{
ViewModelBase navgateVM = App.Current.Services.GetRequiredService();
switch (name)
{
case "主页":
navgateVM = App.Current.Services.GetRequiredService();
break;
case "设备":
navgateVM = App.Current.Services.GetRequiredService();
break;
case "数据转换":
navgateVM = App.Current.Services.GetRequiredService();
break;
case "设置":
navgateVM = App.Current.Services.GetRequiredService();
break;
}
return navgateVM;
}
}