TaskCallbackRepository.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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<TaskCallback> GetRobotActionList(TaskCallback vo)
  40. {
  41. DateTime currentTime = DateTime.Now.AddMinutes(-2);
  42. IQueryable<TaskCallback> list = _context.TaskCallback;
  43. list = list.Where(x => x.CreateTime >= currentTime);
  44. if (!string.IsNullOrEmpty(vo.IP))
  45. {
  46. list = list.Where(x => x.IP == vo.IP);
  47. }
  48. list = list.Where(x => x.OperateType == ActionTypeEnum.MoveRobotPosition.ToString()
  49. || x.OperateType == ActionTypeEnum.GetQualityCenter.ToString()
  50. || x.OperateType == ActionTypeEnum.SendQualityCenter.ToString());
  51. return await list.OrderByDescending(o => o.CreateTime).FirstOrDefaultAsync();
  52. }
  53. //查询详情
  54. public async Task<TaskCallback> GetById(int id)
  55. {
  56. TaskCallback device = await _context.TaskCallback.FindAsync(id);
  57. return device;
  58. }
  59. //添加详情
  60. public async Task<bool> Create(TaskCallback vo)
  61. {
  62. _context.TaskCallback.Add(vo);
  63. await _context.SaveChangesAsync();
  64. return true;
  65. }
  66. //更新详情
  67. public async Task<bool> Update(TaskCallback vo)
  68. {
  69. _context.Entry(vo).State = EntityState.Modified;
  70. try
  71. {
  72. await _context.SaveChangesAsync();
  73. }
  74. catch (DbUpdateConcurrencyException)
  75. {
  76. throw;
  77. }
  78. return true;
  79. }
  80. //删除
  81. public async Task<bool> DeleteById(int id)
  82. {
  83. await Delete(id);
  84. return true;
  85. }
  86. private async Task Delete(int id)
  87. {
  88. var t = await _context.TaskCallback.FindAsync(id);
  89. _context.TaskCallback.Remove(t);
  90. await _context.SaveChangesAsync();
  91. }
  92. }
  93. }