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.

141 lines
5.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Business;
using SlnMesnac.Model.dto;
using SlnMesnac.Repository;
using SlnMesnac.Repository.service;
using SlnMesnac.WPF.Page.CabinetInfo;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* T14-GEN3-7895
* SlnMesnac.WPF.ViewModel
* 03d78dae-fa26-4923-877c-f2bba859ee05
*
* WenJY
*
* 2024-11-08 14:30:02
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.WPF.ViewModel
{
public partial class CabinetInfoViewModel : ObservableObject
{
private readonly Ibase_cabinet_infoServices _ibase_Cabinet_InfoServices;
private readonly Ibase_busbar_infoServices _ibase_Busbar_InfoServices;
private readonly CabinetInfoBusiness cabinetInfoBusiness;
private readonly BusbarInfoBusiness busbarInfoBusiness;
public CabinetInfoViewModel()
{
_ibase_Cabinet_InfoServices = App.ServiceProvider.GetService<Ibase_cabinet_infoServices>();
_ibase_Busbar_InfoServices = App.ServiceProvider.GetService<Ibase_busbar_infoServices>();
cabinetInfoBusiness = App.ServiceProvider.GetService<CabinetInfoBusiness>();
busbarInfoBusiness = App.ServiceProvider.GetService<BusbarInfoBusiness>();
}
public string _cabinetCodeSearch = string.Empty;
public string CabinetCodeSearch
{
get => _cabinetCodeSearch;
set => SetProperty(ref _cabinetCodeSearch, value);
}
public string _cabinetAliasSearch = string.Empty;
public string CabinetAliasSearch
{
get => _cabinetAliasSearch;
set => SetProperty(ref _cabinetAliasSearch, value);
}
//public int _isCheckSearch = 0;
//public int IsCheckSearch
//{
// get => _isCheckSearch;
// set => SetProperty(ref _isCheckSearch, value);
//}
private ObservableCollection<base_cabinet_info> _cabinetInfoItems = new ObservableCollection<base_cabinet_info>();
public ObservableCollection<base_cabinet_info> CabinetInfoItems
{
get => _cabinetInfoItems;
set => SetProperty(ref _cabinetInfoItems, value);
}
private ObservableCollection<base_busbar_info> _busbarInfoItems = new ObservableCollection<base_busbar_info>();
public ObservableCollection<base_busbar_info> BusbarInfoItems
{
get => _busbarInfoItems;
set => SetProperty(ref _busbarInfoItems, value);
}
[RelayCommand]
private void QueryCabinetInfo()
{
int cabinetCode = 0;
if (IsNumber(_cabinetCodeSearch))
{
cabinetCode = Convert.ToInt32(_cabinetCodeSearch);
}
cabinetInfoBusiness.QueryCabinetInfo(cabinetCode, _cabinetAliasSearch, null, out List<base_cabinet_info> info);
CabinetInfoItems = new ObservableCollection<base_cabinet_info>(info);
}
[RelayCommand]
private void CabinetUpdate(base_cabinet_info cabinet_Info)
{
CabinetUpdateWindow cabinetUpdateWindow = new CabinetUpdateWindow(cabinet_Info);
cabinetUpdateWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
cabinetUpdateWindow.Topmost = true;
var res = cabinetUpdateWindow.ShowDialog();
this.QueryCabinetInfo();
}
[RelayCommand]
private void BusbarUpdate(base_busbar_info busbar_Info)
{
BusbarUpdateWindow busbarUpdateWindow = new BusbarUpdateWindow(busbar_Info);
busbarUpdateWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
busbarUpdateWindow.Topmost = true;
var res = busbarUpdateWindow.ShowDialog();
this.QueryBusbarInfo(Convert.ToInt32(busbar_Info.cabinetCode));
}
public void QueryBusbarInfo(int cabinetCode)
{
busbarInfoBusiness.QueryBusbarInfo(cabinetCode, out List<base_busbar_info> info);
BusbarInfoItems = new ObservableCollection<base_busbar_info>(info);
}
private bool IsNumber(string input)
{
string pattern = @"^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?$";
return Regex.IsMatch(input, pattern);
}
}
}