You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
3.8 KiB
C#

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<IBaseDeviceInfoService>();
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();
}
}
}