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.

108 lines
3.5 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Sln.Wcs.Model.Domain;
using Sln.Wcs.Repository.service;
using Sln.Wcs.UI.Controls;
using System;
using System.Windows;
using System.Windows.Controls;
namespace Sln.Wcs.UI.Page.BasicInfo.DeviceInfo
{
public partial class DeviceEditWindow : Window
{
private readonly IBaseDeviceInfoService _deviceInfoService;
private readonly DeviceInfoPage _parentPage;
private readonly BaseDeviceInfo _device;
public DeviceEditWindow(DeviceInfoPage parentPage, BaseDeviceInfo device)
{
InitializeComponent();
_deviceInfoService = App.ServiceProvider.GetService<IBaseDeviceInfoService>();
_parentPage = parentPage;
_device = device;
LoadDeviceData();
}
private void LoadDeviceData()
{
TxtDeviceCode.Text = _device.deviceCode;
TxtDeviceName.Text = _device.deviceName;
TxtRemark.Text = _device.remark;
if (_device.deviceType.HasValue)
{
SelectComboBoxItem(CmbDeviceType, _device.deviceType.Value);
}
if (_device.deviceStatus.HasValue)
{
SelectComboBoxItem(CmbDeviceStatus, _device.deviceStatus.Value);
}
if (_device.isFlag.HasValue)
{
SelectComboBoxItem(CmbIsFlag, _device.isFlag.Value);
}
}
private void SelectComboBoxItem(ComboBox comboBox, int value)
{
foreach (ComboBoxItem item in comboBox.Items)
{
if (item.Tag != null && int.TryParse(item.Tag.ToString(), out int tagValue) && tagValue == value)
{
comboBox.SelectedItem = item;
break;
}
}
}
private void BtnConfirm_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(TxtDeviceName.Text))
{
CustomMessageBox.Show("请输入设备名称", "提示", MessageBoxButton.OK);
return;
}
var deviceTypeItem = CmbDeviceType.SelectedItem as ComboBoxItem;
var deviceStatusItem = CmbDeviceStatus.SelectedItem as ComboBoxItem;
var isFlagItem = CmbIsFlag.SelectedItem as ComboBoxItem;
_device.deviceName = TxtDeviceName.Text.Trim();
_device.deviceType = deviceTypeItem?.Tag != null ? int.Parse(deviceTypeItem.Tag.ToString()) : null;
_device.deviceStatus = deviceStatusItem?.Tag != null ? int.Parse(deviceStatusItem.Tag.ToString()) : null;
_device.isFlag = isFlagItem?.Tag != null ? int.Parse(isFlagItem.Tag.ToString()) : null;
_device.remark = TxtRemark.Text?.Trim();
_device.updatedTime = DateTime.Now;
var success = _deviceInfoService.Update(_device);
if (success)
{
CustomMessageBox.Show("修改成功", "提示", MessageBoxButton.OK);
CloseAndRefresh();
}
else
{
CustomMessageBox.Show("修改失败", "错误", MessageBoxButton.OK);
}
}
private void BtnCancel_Click(object sender, RoutedEventArgs e)
{
CloseAndRefresh();
}
private void BtnClose_Click(object sender, RoutedEventArgs e)
{
CloseAndRefresh();
}
private void CloseAndRefresh()
{
_parentPage.LoadData();
Close();
}
}
}