Exemple #1
0
        public async Task SetDialogMessagesRead()
        {
            var dialog         = fillTestDbHelper.Dialogs.FirstOrDefault();
            var messages       = fillTestDbHelper.Messages.Where(opt => opt.DialogId == dialog.Id).ToList();
            var actualMessages = await updateMessagesService.SetMessagesReadAsync(
                messages.Select(opt => opt.GlobalId),
                dialog.Id,
                ConversationType.Dialog,
                dialog.SecondUID);

            Assert.Equal(messages.Select(opt => opt.GlobalId), actualMessages.Select(opt => opt.GlobalId));
        }
Exemple #2
0
        private async Task <Response> ChatMessagesReadAsync()
        {
            List <MessageDto> messages = await updateMessagesService.SetMessagesReadAsync(
                request.MessagesId,
                request.ConversationId,
                ConversationType.Chat,
                clientConnection.UserId.GetValueOrDefault()).ConfigureAwait(false);

            conversationsNoticeService.SendMessagesReadedNoticeAsync(messages, request.ConversationId, ConversationType.Chat, clientConnection.UserId.GetValueOrDefault());
            nodeNoticeService.SendChatMessagesReadNodeNoticeAsync(messages, request.ConversationId, clientConnection.UserId.GetValueOrDefault());
            UsersConversationsCacheService.Instance.MessagesReadedUpdateConversations(
                MessageConverter.GetMessagesVm(messages, clientConnection.UserId.GetValueOrDefault()),
                request.ConversationId,
                ConversationType.Chat);
            return(new ResultResponse(request.RequestId));
        }
Exemple #3
0
        private async Task ChatMessageReadAsync()
        {
            List <MessageDto> readedMessages = await updateMessagesService.SetMessagesReadAsync(
                notice.MessagesId,
                notice.ConversationOrUserId,
                ConversationType.Chat,
                notice.ReaderUserId).ConfigureAwait(false);

            var lastMessage = readedMessages.OrderByDescending(opt => opt.SendingTime)
                              .Where(opt => opt.SenderId != notice.ReaderUserId)
                              .FirstOrDefault();

            conversationsNoticeService.SendMessagesReadedNoticeAsync(readedMessages, notice.ConversationOrUserId, ConversationType.Chat, notice.ReaderUserId);
            if (lastMessage != null)
            {
                await updateChatsService.UpdateLastReadedMessageIdAsync(lastMessage.GlobalId, notice.ReaderUserId, notice.ConversationOrUserId).ConfigureAwait(false);
            }
        }