Browse Source

workcache

dss 2 years ago
parent
commit
8168b29217

+ 1 - 0
src/CallCenter.Api/Realtimes/CallCenterHub.cs

@@ -34,6 +34,7 @@ public class CallCenterHub : Hub
         work.SignalRId = Context.ConnectionId;
         await _workRepository.UpdateAsync(work, Context.ConnectionAborted);
         _userCacheManager.UpdateWorkByUser(work);
+        _userCacheManager.UpdateWorksCache(work);
         await base.OnConnectedAsync();
     }
 

+ 2 - 0
src/CallCenter/Caches/IUserCacheManager.cs

@@ -54,6 +54,8 @@ namespace CallCenter.Caches
 
         void AddWorksCache(Work work);
 
+        void UpdateWorksCache(Work work)
+
         void RemoveWorksCache(string id);
     }
 }

+ 12 - 0
src/CallCenter/Caches/UserCacheManager.cs

@@ -84,6 +84,18 @@ public class UserCacheManager : IUserCacheManager, IScopeDependency
         _cacheWorks.AddOrUpdate(WorkKey, list);
     }
 
+    public void UpdateWorksCache(Work work)
+    {
+        var list = GetWorks();
+        var model = list.First(x => x.Id == work.Id);
+        if (model!=null)
+        {
+            list.Remove(model);
+        }
+        list.Add(work);
+        _cacheWorks.AddOrUpdate(WorkKey, list);
+    }
+
 
     public void RemoveWorksCache(string id)
     {