using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using SlnMesnac.Business.business; using SlnMesnac.Common; using SlnMesnac.Repository.service; using SlnMesnac.Repository.service.Impl; using SqlSugar; 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.Input; namespace SlnMesnac.WPF.ViewModel { public class EmployeeLoginViewModel : ViewModelBase,INotifyPropertyChanged { private readonly RfidHandleBusniess rfidHandle; private readonly ILogger _logger; private IBaseStaffService baseStaffService; public string _isCheckInButtonEnabled; private string _isCheckOutButtonEnabled; private string _checkInButtonColor; private string _checkOutButtonColor = "#009999"; /// /// 按钮文字转换事件 /// public event PropertyChangedEventHandler PropertyChanged; /// /// 上班命令 /// public ICommand CheckInCommand { get; private set; } /// /// 下班命令 /// public ICommand CheckOutCommand { get; private set; } /// /// 结束命令 /// public ICommand OverCommand { get; private set; } private string _checkInButtonText = "上班打卡"; private string _checkOutButtonText = "下班打卡"; /// /// 上班打卡文本 /// public string CheckInButtonText { get { return _checkInButtonText; } set { _checkInButtonText = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(CheckInButtonText))); } } /// /// 上班打卡 /// public string IsCheckInButtonEnabled { get { return _isCheckInButtonEnabled; } set { _isCheckInButtonEnabled = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsCheckInButtonEnabled))); } } /// ///下班打卡文本 /// public string CheckOutButtonText { get { return _checkOutButtonText; } set { _checkOutButtonText = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(CheckOutButtonText))); } } /// /// 下班打卡 /// public string IsCheckOutButtonEnabled { get { return _isCheckOutButtonEnabled; } set { _isCheckOutButtonEnabled = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsCheckOutButtonEnabled))); } } /// /// 上班打卡按钮颜色 /// public string CheckInButtonColor { get { return _checkInButtonColor; } set { _checkInButtonColor = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(CheckInButtonColor))); } } /// /// 下班打卡按钮颜色 /// public string CheckOutButtonColor { get { return _checkOutButtonColor; } set { _checkOutButtonColor = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(CheckOutButtonColor))); } } public EmployeeLoginViewModel() { CheckInCommand = new RelayCommand(CheckIn); CheckOutCommand = new RelayCommand(CheckOut); OverCommand = new RelayCommand(Over); rfidHandle = App.ServiceProvider.GetService(); baseStaffService = App.ServiceProvider.GetService(); IsCheckInButtonEnabled = "True"; IsCheckOutButtonEnabled = "True"; CheckInButtonColor = "#009999"; CheckOutButtonColor = "#009999"; } /// /// 上班打卡事件 /// private void CheckIn() { if (CheckInButtonText == "上班打卡") { // 执行上班打卡逻辑 CheckInButtonText = "结束打卡"; IsCheckOutButtonEnabled = "False"; // Disable CheckOutButton CheckOutButtonColor = "Gray"; rfidHandle.CheckIn(); } else { // 执行结束打卡逻辑 CheckInButtonText = "上班打卡"; IsCheckOutButtonEnabled = "True"; // Enable CheckOutButton CheckOutButtonColor = "#009999"; rfidHandle.CloseRfid(); } } /// /// 下班打卡事件 /// private void CheckOut() { if (CheckOutButtonText == "下班打卡") { // 执行下班打卡逻辑 CheckOutButtonText = "结束打卡"; IsCheckInButtonEnabled = "False"; // Disable CheckInButton //IsCheckOutButtonEnabled = "True"; CheckInButtonColor = "Gray"; rfidHandle.CheckOut(); } else { // 执行结束打卡逻辑 CheckOutButtonText = "下班打卡"; IsCheckInButtonEnabled = "True"; // Enable CheckInButton //IsCheckOutButtonEnabled="False"; CheckInButtonColor = "#009999"; rfidHandle.CloseRfid(); } } /// /// 结束打卡事件 /// private void Over() { // 执行结束打卡的逻辑 CheckInButtonText = "上班打卡"; CheckOutButtonText = "下班打卡"; } } }