TaskCallbackService.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. 
  2. using WCS.Entitys;
  3. using WCS.Repository;
  4. using Newtonsoft.Json;
  5. using StackExchange.Redis;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Configuration;
  9. using System.IO;
  10. using System.Linq;
  11. using System.Threading.Tasks;
  12. namespace IMCS.CCS.Services
  13. {
  14. public class TaskCallbackService : ITaskCallbackService
  15. {
  16. private ITaskCallbackRepository _repository;
  17. private readonly IConnectionMultiplexer _redis;
  18. public TaskCallbackService(ITaskCallbackRepository repository, IConnectionMultiplexer redis)
  19. {
  20. _repository = repository;
  21. _redis = redis;
  22. }
  23. public async Task<List<TaskCallback>> GetList(TaskCallback vo)
  24. {
  25. return await _repository.GetList(vo);
  26. }
  27. public async Task<List<TaskCallback>> GetAllList()
  28. {
  29. return await _repository.GetAllList();
  30. }
  31. public async Task<List<TaskCallback>> GetListByCondition(TaskCallback vo)
  32. {
  33. return await _repository.GetListByCondition(vo);
  34. }
  35. //查机器人动作列表
  36. public async Task<TaskCallback> GetRobotActionList(TaskCallback vo)
  37. {
  38. return await _repository.GetRobotActionList(vo);
  39. }
  40. //查询详情
  41. public async Task<TaskCallback> GetById(int id)
  42. {
  43. return await _repository.GetById(id);
  44. }
  45. //添加
  46. public async Task<bool> Create(TaskCallback vo)
  47. {
  48. return await _repository.Create(vo);
  49. }
  50. //更新
  51. public async Task<bool> Update(TaskCallback vo)
  52. {
  53. return await _repository.Update(vo);
  54. }
  55. //添加或修改,放入缓存
  56. public async Task<bool> CreateOrUpdateAndCache(TaskCallback vo)
  57. {
  58. bool flag = false;
  59. if(vo != null && (vo.Id == 0)) {
  60. flag = await _repository.Create(vo);
  61. }else if (vo != null && vo.Id > 0)
  62. {
  63. flag = await _repository.Update(vo);
  64. }
  65. string callback_redis_key = "WCS:CallbackTaskList";
  66. List<TaskCallback> taskCallbacks = await _repository.GetAllList();
  67. await _redis.GetDatabase().StringSetAsync(callback_redis_key, JsonConvert.SerializeObject(taskCallbacks));
  68. return flag;
  69. }
  70. }
  71. }