|
@@ -6,22 +6,32 @@ namespace CallCenter.Caches
|
|
|
{
|
|
|
public class CallCacheManager : ICallCacheManager, IScopeDependency
|
|
|
{
|
|
|
- private readonly ITypedCache<IReadOnlyList<Call>> _cacheCall;
|
|
|
+ private readonly ITypedCache<List<Call>> _cacheCall;
|
|
|
private const string CallKey = "CallQueue";
|
|
|
|
|
|
- public CallCacheManager(ITypedCache<IReadOnlyList<Call>> cacheCall)
|
|
|
+ public CallCacheManager(ITypedCache<List<Call>> cacheCall)
|
|
|
{
|
|
|
_cacheCall = cacheCall;
|
|
|
}
|
|
|
|
|
|
- public void AddOrUpdateCallCache(List<Call> list)
|
|
|
+ public void AddCallCache(Call call)
|
|
|
{
|
|
|
+ var list = GetCallQueueList();
|
|
|
+ if (list==null)
|
|
|
+ {
|
|
|
+ list = new List<Call>();
|
|
|
+ }
|
|
|
+ list.Add(call);
|
|
|
_cacheCall.AddOrUpdate(CallKey, list);
|
|
|
}
|
|
|
|
|
|
- public IReadOnlyList<Call> GetCallQueueList()
|
|
|
+ public List<Call>? GetCallQueueList()
|
|
|
{
|
|
|
- return _cacheCall.Get(CallKey)??new List<Call>();
|
|
|
+ var list = _cacheCall.GetOrAdd(CallKey, k =>
|
|
|
+ {
|
|
|
+ return new List<Call>();
|
|
|
+ });
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
public void RemoveCallCache(string id)
|