public PaginationQueryDto Query(PaginationQueryTaskHistoryInput input) { if (input == null) { throw new ArgumentNullException($"{nameof(input)} should not be null."); } var output = new PaginationQueryDto { Page = input.Page.Value, Size = input.Size.Value }; var taskHistoryOutput = DbContext.TaskHistory.PageList <Core.Entities.TaskHistory, long, DateTime>(input, a => a.TaskId == input.TaskId, t => t.CreationTime); output.Total = taskHistoryOutput.Total; var taskHistories = (List <Core.Entities.TaskHistory>)taskHistoryOutput.Result; List <Core.Entities.TaskStatus> statuses; if (taskHistories.Count > 0) { var identities = taskHistories.Select(r => r.Identity); statuses = DbContext.TaskStatus.Where(a => identities.Contains(a.Identity)).ToList(); } else { statuses = new List <Core.Entities.TaskStatus>(0); } var result = new List <TaskHistoryOutput>(taskHistories.Count); var statusOutputs = Mapper.Map <List <TaskStatusDto> >(statuses); foreach (var item in taskHistories) { result.Add(new TaskHistoryOutput { Identity = item.Identity, CreationTime = item.CreationTime.ToString("yyyy/MM/dd HH:mm:ss"), Statuses = statusOutputs.Where(a => a.Identity == item.Identity).ToList() }); } output.Result = result; return(output); }
public IActionResult Find(PaginationQueryTaskHistoryInput input) { return(Success(_taskHistoryAppService.Query(input))); }