|
@@ -6,46 +6,27 @@ namespace CallCenter.Caches
|
|
|
{
|
|
|
public class CallCacheManager : ICallCacheManager, IScopeDependency
|
|
|
{
|
|
|
- private readonly ITypedCache<List<Call>> _cacheCall;
|
|
|
- private const string CallKey = "CallQueue";
|
|
|
+ private readonly ITypedCache<string> _cacheCall;
|
|
|
|
|
|
- public CallCacheManager(ITypedCache<List<Call>> cacheCall)
|
|
|
+ public CallCacheManager(ITypedCache<string> cacheCall)
|
|
|
{
|
|
|
_cacheCall = cacheCall;
|
|
|
}
|
|
|
|
|
|
public void AddCallCache(Call call)
|
|
|
{
|
|
|
- var list = GetCallQueueList();
|
|
|
- if (list==null)
|
|
|
- {
|
|
|
- list = new List<Call>();
|
|
|
- }
|
|
|
- list.Add(call);
|
|
|
- _cacheCall.Set(CallKey, list);
|
|
|
+ _cacheCall.Set(call.Id, call.FromNo);
|
|
|
}
|
|
|
|
|
|
- public List<Call>? GetCallQueueList()
|
|
|
+ public List<string> GetCallQueueList()
|
|
|
{
|
|
|
- var list = _cacheCall.GetOrSet(CallKey, k =>
|
|
|
- {
|
|
|
- return new List<Call>();
|
|
|
- });
|
|
|
- return list;
|
|
|
+ var list = _cacheCall.GetListByPrefix().ToList();
|
|
|
+ return list==null ? new List<string>() : list;
|
|
|
}
|
|
|
|
|
|
public void RemoveCallCache(string id)
|
|
|
{
|
|
|
- var list = _cacheCall.Get(CallKey)?.ToList();
|
|
|
- if (list != null)
|
|
|
- {
|
|
|
- var model = list.FirstOrDefault(x => x.Id == id);
|
|
|
- if (model != null)
|
|
|
- {
|
|
|
- list.Remove(model);
|
|
|
- _cacheCall.Set(CallKey, list);
|
|
|
- }
|
|
|
- }
|
|
|
+ _cacheCall.Remove(id);
|
|
|
}
|
|
|
}
|
|
|
}
|