using System.Globalization; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using Microsoft.Extensions.DependencyInjection; using Sln.Wcs.Model.Domain; using Sln.Wcs.Repository.service; using Sln.Wcs.UI.Controls; namespace Sln.Wcs.UI.Page.BasicInfo.DeviceInfo { public partial class DeviceInfoPage : UserControl { private readonly IBaseDeviceInfoService _deviceInfoService; public DeviceInfoPage() { InitializeComponent(); _deviceInfoService = App.ServiceProvider.GetService(); LoadData(); } public void LoadData() { var list = _deviceInfoService.Query(); DeviceGrid.ItemsSource = list; } private void BtnQuery_Click(object sender, RoutedEventArgs e) { var code = TxtQueryCode.Text?.Trim(); var name = TxtQueryName.Text?.Trim(); var list = _deviceInfoService.Query() .Where(d => string.IsNullOrEmpty(code) || d.deviceCode.Contains(code)) .Where(d => string.IsNullOrEmpty(name) || (d.deviceName != null && d.deviceName.Contains(name))) .ToList(); DeviceGrid.ItemsSource = list; } private void BtnAdd_Click(object sender, RoutedEventArgs e) { var window = new DeviceAddWindow(this); window.Owner = Window.GetWindow(this); window.ShowDialog(); } private void BtnEdit_Click(object sender, RoutedEventArgs e) { if (DeviceGrid.SelectedItem is BaseDeviceInfo device) { var window = new DeviceEditWindow(this, device); window.Owner = Window.GetWindow(this); window.ShowDialog(); } } private void BtnDelete_Click(object sender, RoutedEventArgs e) { if (DeviceGrid.SelectedItem is BaseDeviceInfo device) { var result = CustomMessageBox.Show($"确认删除设备: {device.deviceName}?", "删除确认", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { var success = _deviceInfoService.Delete(device); if (success) { CustomMessageBox.Show("删除成功", "提示", MessageBoxButton.OK); LoadData(); } else { CustomMessageBox.Show("删除失败", "错误", MessageBoxButton.OK); } } } } } [ValueConversion(typeof(int), typeof(string))] public class DeviceTypeConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return value switch { 0 => "输送线", 1 => "AGV", 2 => "提升机", _ => "未知" }; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } [ValueConversion(typeof(int), typeof(string))] public class DeviceStatusConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return value switch { 0 => "正常", 1 => "在忙", 2 => "异常", _ => "未知" }; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }