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.MaterialInfo { public partial class MaterialAddWindow : Window { private readonly IBaseMaterialInfoService? _materialInfoService; private readonly MaterialInfoPage _parentPage; public MaterialAddWindow(MaterialInfoPage parentPage) { InitializeComponent(); _materialInfoService = App.ServiceProvider.GetService(); _parentPage = parentPage; } private void BtnConfirm_Click(object sender, RoutedEventArgs e) { if (_materialInfoService == null) return; if (string.IsNullOrWhiteSpace(TxtMaterialCode.Text)) { CustomMessageBox.Show("请输入物料编号", "提示", MessageBoxButton.OK); return; } if (string.IsNullOrWhiteSpace(TxtMaterialName.Text)) { CustomMessageBox.Show("请输入物料名称", "提示", MessageBoxButton.OK); return; } var isFlagItem = CmbIsFlag.SelectedItem as ComboBoxItem; var material = new BaseMaterialInfo { materialCode = TxtMaterialCode.Text.Trim(), materialName = TxtMaterialName.Text.Trim(), materialType = TxtMaterialType.Text?.Trim(), materialBarcode = TxtMaterialBarcode.Text?.Trim(), minStorageCycle = int.TryParse(TxtMinStorageCycle.Text, out int minCycle) ? minCycle : (int?)null, maxStorageCycle = int.TryParse(TxtMaxStorageCycle.Text, out int maxCycle) ? maxCycle : (int?)null, isFlag = isFlagItem?.Tag != null ? int.TryParse(isFlagItem.Tag.ToString(), out int flag) ? flag : (int?)null : null, remark = TxtRemark.Text?.Trim(), createdTime = DateTime.Now }; var success = _materialInfoService.Insert(material); 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() { ClearForm(); _parentPage.LoadData(); Close(); } private void ClearForm() { TxtMaterialCode.Text = ""; TxtMaterialName.Text = ""; TxtMaterialType.Text = ""; TxtMaterialBarcode.Text = ""; TxtMinStorageCycle.Text = ""; TxtMaxStorageCycle.Text = ""; TxtRemark.Text = ""; CmbIsFlag.SelectedIndex = 0; } } }