TaskCallbackRepository.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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. list = list.Where(x => x.OperateType == ActionTypeEnum.MoveRobotPosition.ToString()
  67. || x.OperateType == ActionTypeEnum.GetQualityCenter.ToString()
  68. || x.OperateType == ActionTypeEnum.SendQualityCenter.ToString());
  69. return await list.OrderByDescending(o => o.CreateTime).FirstOrDefaultAsync();
  70. }
  71. //查询详情
  72. public async Task<TaskCallback> GetById(int id)
  73. {
  74. TaskCallback device = await _context.TaskCallback.FindAsync(id);
  75. return device;
  76. }
  77. //添加详情
  78. public async Task<bool> Create(TaskCallback vo)
  79. {
  80. _context.TaskCallback.Add(vo);
  81. await _context.SaveChangesAsync();
  82. return true;
  83. }
  84. //更新详情
  85. public async Task<bool> Update(TaskCallback vo)
  86. {
  87. _context.Entry(vo).State = EntityState.Modified;
  88. try
  89. {
  90. await _context.SaveChangesAsync();
  91. }
  92. catch (DbUpdateConcurrencyException)
  93. {
  94. throw;
  95. }
  96. return true;
  97. }
  98. //删除
  99. public async Task<bool> DeleteById(int id)
  100. {
  101. await Delete(id);
  102. return true;
  103. }
  104. private async Task Delete(int id)
  105. {
  106. var t = await _context.TaskCallback.FindAsync(id);
  107. _context.TaskCallback.Remove(t);
  108. await _context.SaveChangesAsync();
  109. }
  110. }
  111. }