using DM_Weight.Models;
using DM_Weight.msg;
using DM_Weight.Report;
using DM_Weight.util;
using Prism.Commands;
using Prism.Events;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
namespace DM_Weight.ViewModels
{
public class AccountWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
{
private DateTime? _startDate = DateTime.Now;
public DateTime? StartDate
{
get => _startDate;
set
{
SetProperty(ref _startDate, value);
}
}
private DateTime? _endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
public DateTime? EndDate
{
get => _endDate;
set
{
SetProperty(ref _endDate, value);
}
}
private string _name;
public string Name { get => _name; set { SetProperty(ref _name, value); } }
private static readonly DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
///
/// 麻醉医师姓名
///
private List _UserInfos;
public List UserInfos
{
get => _UserInfos;
set { SetProperty(ref _UserInfos, value); }
}
private UserList _User;
public UserList User
{
get => _User;
set { SetProperty(ref _User, value); }
}
private static List boxDefine =
new List { "1号手术间", "2号手术间", "3号手术间", "4号手术间", "5号手术间", "6号手术间", "7号手术间", "8号手术间", "9号手术间", "10号手术间", "11号手术间", "12号手术间", "13号手术间", "14号手术间", "15号手术间", "16号手术间", "17号手术间", "18号手术间" };
private List _Boxs = boxDefine;
public List Boxs
{
get => _Boxs;
set { SetProperty(ref _Boxs, value); }
}
private string _Box;
public string Box
{
get => _Box;
set { SetProperty(ref _Box, value); }
}
IDialogService _dialogService;
public AccountWindowViewModel(IDialogService dialogService)
{
_dialogService = dialogService;
}
public long CurrentTimeMillis()
{
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
}
public void OnNavigatedTo(NavigationContext navigationContext)
{
//绑定用户信息
UserInfos = SqlSugarHelper.Db.Queryable()
.Where(ul => ul.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5")).ToList();
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
public void OnNavigatedFrom(NavigationContext navigationContext)
{
}
///
/// 导出账册
///
public DelegateCommand DownloadAccountBook
{
get => new DelegateCommand(() =>
{
GridReportUtil.UserAccount(StartDate, EndDate, User == null ? "" : User.Nickname, Box);
});
}
public DelegateCommand SelectTimeAction
{
get => new DelegateCommand(async (s) =>
{
// 此处延时1毫秒,等待页面渲染
await Task.Delay(TimeSpan.FromMilliseconds(1));
DialogParameters dialogParameters = new DialogParameters();
dialogParameters.Add("DateTime", StartDate);
dialogParameters.Add("Type", s);
DialogServiceExtensions.ShowDialogHost(_dialogService, "DatetimeDialog", dialogParameters, DoDialogResult, "RootDialog");
});
}
private void DoDialogResult(IDialogResult dialogResult)
{
// 委托 被动执行 被子窗口执行
// dialogResult 第一方面可以拿到任意参数 第二方面 可判断关闭状态
if (dialogResult.Result == ButtonResult.OK)
{
if (dialogResult.Parameters.GetValue("Type").Equals("1"))
{
StartDate = dialogResult.Parameters.GetValue("DateTime");
}
else
{
EndDate = dialogResult.Parameters.GetValue("DateTime");
}
}
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
}
public bool KeepAlive => true;
}
}