TaskCallbackRepository.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. using IMCS.CCS.Entitys;
  2. using Microsoft.EntityFrameworkCore;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. namespace IMCS.CCS.Repository
  8. {
  9. public class TaskCallbackRepository : ITaskCallbackRepository
  10. {
  11. private readonly CcsContext _context;
  12. public TaskCallbackRepository(CcsContext context)
  13. {
  14. _context = context;
  15. }
  16. //查询全部列表
  17. public async Task<List<TaskCallback>> GetAllList()
  18. {
  19. IQueryable<TaskCallback> list = _context.TaskCallback;
  20. list = list.Where(x => x.State).OrderBy(o=>o.CreateTime);
  21. return await list.ToListAsync();
  22. }
  23. //查部列表
  24. public async Task<List<TaskCallback>> GetList(TaskCallback vo)
  25. {
  26. IQueryable<TaskCallback> list = _context.TaskCallback;
  27. list = list.Where(x => x.State);
  28. if (!string.IsNullOrEmpty(vo.TaskId))
  29. {
  30. list = list.Where(x => x.TaskId.Contains(vo.TaskId));
  31. }
  32. if (!string.IsNullOrEmpty(vo.TaskNodeId))
  33. {
  34. list = list.Where(x => x.TaskNodeId.Contains(vo.TaskNodeId));
  35. }
  36. return await list.ToListAsync();
  37. }
  38. //查部列表
  39. public async Task<List<TaskCallback>> GetListByCondition(TaskCallback vo)
  40. {
  41. IQueryable<TaskCallback> list = _context.TaskCallback;
  42. if (!string.IsNullOrEmpty(vo.IP))
  43. {
  44. list = list.Where(x => x.IP == vo.IP);
  45. }
  46. if (!string.IsNullOrEmpty(vo.TaskId))
  47. {
  48. list = list.Where(x => x.TaskId == vo.TaskId);
  49. }
  50. if (!string.IsNullOrEmpty(vo.TaskNodeId))
  51. {
  52. list = list.Where(x => x.TaskNodeId == vo.TaskNodeId);
  53. }
  54. return await list.ToListAsync();
  55. }
  56. //查机器人动作列表
  57. public async Task<TaskCallback> GetRobotActionList(TaskCallback vo)
  58. {
  59. DateTime currentTime = DateTime.Now.AddMinutes(-2);
  60. IQueryable<TaskCallback> list = _context.TaskCallback;
  61. list = list.Where(x => x.CreateTime >= currentTime);
  62. if (!string.IsNullOrEmpty(vo.IP))
  63. {
  64. list = list.Where(x => x.IP == vo.IP);
  65. }
  66. if (!string.IsNullOrEmpty(vo.Description))
  67. {
  68. list = list.Where(x => x.Description == vo.Description);
  69. }
  70. list = list.Where(x => x.OperateType == ActionTypeEnum.RobotAction.ToString() );
  71. return await list.OrderByDescending(o => o.CreateTime).FirstOrDefaultAsync();
  72. }
  73. //查询详情
  74. public async Task<TaskCallback> GetById(int id)
  75. {
  76. TaskCallback device = await _context.TaskCallback.FindAsync(id);
  77. return device;
  78. }
  79. //添加详情
  80. public async Task<bool> Create(TaskCallback vo)
  81. {
  82. _context.TaskCallback.Add(vo);
  83. await _context.SaveChangesAsync();
  84. return true;
  85. }
  86. //更新详情
  87. public async Task<bool> Update(TaskCallback vo)
  88. {
  89. _context.Entry(vo).State = EntityState.Modified;
  90. try
  91. {
  92. await _context.SaveChangesAsync();
  93. }
  94. catch (DbUpdateConcurrencyException)
  95. {
  96. throw;
  97. }
  98. return true;
  99. }
  100. //删除
  101. public async Task<bool> DeleteById(int id)
  102. {
  103. await Delete(id);
  104. return true;
  105. }
  106. private async Task Delete(int id)
  107. {
  108. var t = await _context.TaskCallback.FindAsync(id);
  109. _context.TaskCallback.Remove(t);
  110. await _context.SaveChangesAsync();
  111. }
  112. }
  113. }