TaskCallbackRepository.cs 3.9 KB

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