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.

114 lines
3.8 KiB
C#

using ConsoleApp;
using GalaSoft.MvvmLight.Command;
using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Model.domain;
using SlnMesnac.Repository.service;
using SlnMesnac.WPF.Views;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using SlnMesnac.Business.business;
namespace SlnMesnac.WPF.ViewModel
{
public class RemoveConfirmViewModel : INotifyPropertyChanged
{
private IBaseStaffService _baseStaffService;
private IRecordStaffAttendanceService _recordStaffAttendanceService;
public static int times = 0;
/// <summary>
/// 按钮文字转换事件
/// </summary>
public event PropertyChangedEventHandler PropertyChanged = delegate { };
public void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#region 定义属性
/// <summary>
/// 提示信息
/// </summary>
private string hintText;
public string HintText
{
get { return hintText; }
set { hintText = value; OnPropertyChanged("HintText"); }
}
#endregion
public RemoveConfirmViewModel()
{
HintText = "";
times = 0;
_baseStaffService = App.ServiceProvider.GetService<IBaseStaffService>();
_recordStaffAttendanceService = App.ServiceProvider.GetService<IRecordStaffAttendanceService>();
Init();
ConfirmCommand = new RelayCommand(Confirm);
}
/// <summary>
/// 初始化
/// </summary>
private void Init()
{
//hidUtils.Initial();
EmployeeLoginViewModel.hidUtils.StartScan();
EmployeeLoginViewModel._transmitToRemoveConfigAction += (str) =>
{
if (MainWindowViewModel.wins == 2)
{
str = str.ToString().Replace(" ", "");
BaseStaffInfo user = _baseStaffService.GetStaffInfoByCardId(str);
if (times < 1)
{
if (user != null)
{
string staffType = user.StaffType;
if (staffType == "1")//判断是否为班长,判断后续是否为当前班组的班长
{
HintText = "成功!";
times++;
RfidHandleBusniess.staffId = user.StaffId;
}
else
{
HintText = "非班组长,无效!";
}
}
else
{
HintText = "没有匹配的员工,打卡失败!";
}
}
else
{
HintText = "已成功,请勿重打!";
times = 1;
}
}
};
}
/// <summary>
/// 确认
/// </summary>
public ICommand ConfirmCommand { get; private set; }
private void Confirm()
{
//在工单明细插入一条,记录两个班长
EmployeeLoginViewModel.hidUtils.StopScan();
//关闭窗口
Application.Current.Windows.OfType<RemoveConfirmWin>().First().Close();
MainWindowViewModel.wins = 1;
}
}
}