123456789101112131415161718192021222324252627282930313233343536 |
- using Hotline.Caching.Interfaces;
- using Hotline.CallCenter.Tels;
- using Hotline.EventBus;
- using Hotline.Share.Enums.CallCenter;
- using Hotline.Share.Notifications.NewRockCallCenter;
- using MediatR;
- using XF.Domain.Cache;
- namespace Hotline.Application.Handlers.CallCenter.ExtState
- {
- [HandlerInject(EventHandlerType = EEventHandlerType.CallCenter, Label = AppDefaults.CallCenterType.XunShi)]
- public class OnlineNotificationHandler : INotificationHandler<OnlineNotification>
- {
- private readonly ITelRepository _telRepository;
- private readonly ITelCacheManager _telCacheManager;
- private readonly ITypedCache<Tel> _typedCache;
- public OnlineNotificationHandler(ITelRepository telRepository, ITelCacheManager telCacheManager, ITypedCache<Tel> typedCache)
- {
- _telRepository = telRepository;
- _telCacheManager = telCacheManager;
- _typedCache = typedCache;
- }
- /// <summary>Handles a notification</summary>
- /// <param name="notification">The notification</param>
- /// <param name="cancellationToken">Cancellation token</param>
- public async Task Handle(OnlineNotification notification, CancellationToken cancellationToken)
- {
- var telModel = _telCacheManager.GetTel(notification.TelNo);
- telModel.TelStatus = ETelStatus.Ready;
- telModel.RegisterIP = notification.RegisterIP;
- await _telRepository.UpdateAsync(telModel,cancellationToken);
- _typedCache.Set(notification.TelNo, telModel);
- }
- }
- }
|