Exemple #1
0
        public async Task DialogMessagesRead()
        {
            var dialog         = fillTestDbHelper.Dialogs.FirstOrDefault(opt => opt.SecondUID != opt.FirstUID);
            var messages       = fillTestDbHelper.Messages.Where(opt => opt.DialogId == dialog.Id && opt.SenderId != dialog.SecondUID).ToList();
            var actualMessages = await updateMessagesService.DialogMessagesReadAsync(messages.Select(opt => opt.GlobalId), dialog.Id, dialog.SecondUID);

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

            if (readedMessages != null && readedMessages.Any())
            {
                List <UserVm> users = new List <UserVm>(await loadDialogsService.GetDialogUsersAsync(request.ConversationId).ConfigureAwait(false));
                conversationsNoticeService.SendMessagesReadedNoticeAsync(
                    readedMessages,
                    readedMessages.FirstOrDefault(message => message.ConversationId != request.ConversationId)?.ConversationId ?? request.ConversationId,
                    ConversationType.Dialog,
                    readedMessages.FirstOrDefault().SenderId.GetValueOrDefault());
                nodeNoticeService.SendDialogMessagesReadNoticeAsync(
                    request.MessagesId.ToList(),
                    users.FirstOrDefault(opt => opt.Id == clientConnection.UserId.GetValueOrDefault()),
                    users.FirstOrDefault(opt => opt.Id != clientConnection.UserId.GetValueOrDefault()));
                UsersConversationsCacheService.Instance.MessagesReadedUpdateConversations(
                    MessageConverter.GetMessagesVm(readedMessages, clientConnection.UserId.GetValueOrDefault()),
                    request.ConversationId,
                    ConversationType.Dialog);
            }
            return(new ResultResponse(request.RequestId));
        }