Exemplo n.º 1
0
 public ChatController(
     IChatRecordService chatRecordService,
     IRabbitManager rabbitManager,
     ICacheManager cacheManager,
     IOfflineMessageService offlineMessageService
     )
 {
     _chatRecordService     = chatRecordService;
     _rabbitManager         = rabbitManager;
     _cacheManager          = cacheManager;
     _offlineMessageService = offlineMessageService;
 }
Exemplo n.º 2
0
        public Task StartAsync(CancellationToken cancellationToken)
        {
            _offlineMessageService = _serviceProvider.CreateScope().ServiceProvider.GetRequiredService <IOfflineMessageService>();

            _rabbitManager.Receiver("Cat.IM.OfflineMessage", x =>
            {
                var offlineMessage = new OfflineMessage
                {
                    Id       = Guid.Parse(x.Chat.Info.Id),
                    Body     = x.Chat.Body,
                    Sender   = Guid.Parse(x.Chat.Info.Sender),
                    Receiver = Guid.Parse(x.Chat.Info.Receiver),
                    SendOn   = Convert.ToDateTime(x.Chat.Info.SendOn),
                    Type     = x.Type
                };

                _offlineMessageService.Add(offlineMessage);
            }, "Cat.IM.OfflineMessage");

            return(Task.CompletedTask);
        }