TaskCallbackRepository.cs 3.2 KB

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