using IMCS.CCS.Entitys; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace IMCS.CCS.Repository { public class TaskCallbackRepository : ITaskCallbackRepository { private readonly CcsContext _context; public TaskCallbackRepository(CcsContext context) { _context = context; } //查询全部列表 public async Task> GetAllList() { IQueryable list = _context.TaskCallback; list = list.Where(x => x.State).OrderBy(o=>o.CreateTime); return await list.ToListAsync(); } //查部列表 public async Task> GetList(TaskCallback vo) { IQueryable list = _context.TaskCallback; list = list.Where(x => x.State); if (!string.IsNullOrEmpty(vo.TaskId)) { list = list.Where(x => x.TaskId.Contains(vo.TaskId)); } if (!string.IsNullOrEmpty(vo.TaskNodeId)) { list = list.Where(x => x.TaskNodeId.Contains(vo.TaskNodeId)); } return await list.ToListAsync(); } //查部列表 public async Task> GetListByCondition(TaskCallback vo) { IQueryable list = _context.TaskCallback; if (!string.IsNullOrEmpty(vo.IP)) { list = list.Where(x => x.IP == vo.IP); } if (!string.IsNullOrEmpty(vo.TaskId)) { list = list.Where(x => x.TaskId == vo.TaskId); } if (!string.IsNullOrEmpty(vo.TaskNodeId)) { list = list.Where(x => x.TaskNodeId == vo.TaskNodeId); } return await list.ToListAsync(); } //查机器人动作列表 public async Task GetRobotActionList(TaskCallback vo) { DateTime currentTime = DateTime.Now.AddMinutes(-2); IQueryable list = _context.TaskCallback; list = list.Where(x => x.CreateTime >= currentTime); if (!string.IsNullOrEmpty(vo.IP)) { list = list.Where(x => x.IP == vo.IP); } if (!string.IsNullOrEmpty(vo.Description)) { list = list.Where(x => x.Description == vo.Description); } list = list.Where(x => x.OperateType == ActionTypeEnum.RobotAction.ToString() ); return await list.OrderByDescending(o => o.CreateTime).FirstOrDefaultAsync(); } //查询详情 public async Task GetById(int id) { TaskCallback device = await _context.TaskCallback.FindAsync(id); return device; } //添加详情 public async Task Create(TaskCallback vo) { _context.TaskCallback.Add(vo); await _context.SaveChangesAsync(); return true; } //更新详情 public async Task Update(TaskCallback vo) { _context.Entry(vo).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return true; } //删除 public async Task DeleteById(int id) { await Delete(id); return true; } private async Task Delete(int id) { var t = await _context.TaskCallback.FindAsync(id); _context.TaskCallback.Remove(t); await _context.SaveChangesAsync(); } } }