using AutoMapper; using HandyControl.Controls; using LogForceTestApp.Modules.MainModule.Models; using LogoForceTestApp.Modules.MainModule.Models; using Prism.Commands; using Prism.Mvvm; using Repository; using Repository.Entiies; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace LogoForceTestApp.Modules.MainModule.ViewModels { public class DataPageViewModel:BindableBase { private readonly IMapper _mapper; private readonly IRepository _repository; //private readonly List _logModels; private readonly List _logModels; public DateTime SelectedStartDate { get; set; } public DateTime SelectedEndDate { get; set; } //public List LogModels { get; set; } public List LogModels { get; set; } public int PageIndex { get; set; } = 1; public int MaxCount { get; set; } = 1; public int PageCount { get; set; } = 20; public int AllPro { get; set; } public DelegateCommand QueryCommand { get; set; } public DataPageViewModel(IMapper mapper, IRepository repository) { _mapper = mapper; _repository = repository; SelectedStartDate = DateTime.Today; SelectedEndDate = DateTime.Today; //LogModels = new List(); LogModels = new List(); _mapper = mapper; _repository = repository; //_logModels = new List(); _logModels = new List(); InitData().Await(); QueryCommand = new DelegateCommand(async () => { await QueryData(); }); } private async Task InitData() { var dateTimeToday = DateTime.Today; //var logs = await _repository.GetAllQueryAsync(c => c.Datetime >= dateTimeToday); var logs = await _repository.GetAllQueryAsync(c => c.CreateTime >= dateTimeToday); //var dtos = _mapper.Map>(logs); var dtos = _mapper.Map>(logs); dtos.Reverse(); _logModels.AddRange(dtos); LogModels = _logModels.Take(PageCount).ToList(); MaxCount = _logModels.Count / PageCount + 1; } private async Task QueryData() { if (SelectedEndDate < SelectedStartDate || SelectedStartDate == default) { MessageBox.Show("请选择正确的日期", "提示"); return; } _logModels.Clear(); var endTime = SelectedEndDate.AddDays(1); //var logs = (await _repository.GetAllQueryAsync(c => c.Datetime >= SelectedStartDate && c.Datetime <= endTime)); var logs = (await _repository.GetAllQueryAsync(c => c.CreateTime >= SelectedStartDate && c.CreateTime <= endTime)); logs.Reverse(); AllPro = logs.Count();//当日生产总量 //var dtos = _mapper.Map>(logs); var dtos = _mapper.Map>(logs); _logModels.AddRange(dtos); LogModels = _logModels.Take(PageCount).ToList(); MaxCount = _logModels.Count / PageCount + 1; } } }