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; } }