Опросы
This commit is contained in:
@@ -10,7 +10,8 @@ public static class MessageMapper
|
||||
Message message,
|
||||
IReadOnlyDictionary<Guid, UserInfo> usersInfo,
|
||||
IEnumerable<MessageReaction> reactions,
|
||||
IEnumerable<Guid> readByUsers)
|
||||
IEnumerable<Guid> readByUsers,
|
||||
Guid? currentUserId = null)
|
||||
{
|
||||
usersInfo.TryGetValue(message.SenderId, out var senderObj);
|
||||
|
||||
@@ -60,9 +61,24 @@ public static class MessageMapper
|
||||
callMessage?.CallType,
|
||||
callMessage?.CallStatus,
|
||||
callMessage?.Duration,
|
||||
(message as PollMessage)?.Options.Select(o => new PollOptionDto(o.Text, o.VoteCount)).ToList(),
|
||||
message is PollMessage pm ? pm.Options.Select(o => {
|
||||
var voters = pm.IsAnonymous == false
|
||||
? pm.Votes
|
||||
.Where(v => v.OptionId == o.Id)
|
||||
.Select(v => {
|
||||
usersInfo.TryGetValue(v.UserId, out var vu);
|
||||
return vu != null
|
||||
? new MessageSenderDto(vu.Id, vu.Username, vu.DisplayName, vu.Avatar)
|
||||
: new MessageSenderDto(v.UserId, "unknown", "Unknown", null);
|
||||
})
|
||||
.ToList()
|
||||
: null;
|
||||
return new PollOptionDto(o.Id, o.Text, o.VoteCount, voters, pm.IsAnonymous == false ? pm.Votes.Where(v => v.OptionId == o.Id).Select(v => v.UserId).ToList() : null);
|
||||
}).ToList() : null,
|
||||
(message as PollMessage)?.IsMultipleChoice,
|
||||
(message as PollMessage)?.IsClosed
|
||||
(message as PollMessage)?.IsAnonymous,
|
||||
(message as PollMessage)?.IsClosed,
|
||||
(message is PollMessage poll && currentUserId.HasValue) ? poll.Votes.Where(v => v.UserId == currentUserId.Value).Select(v => v.OptionId).ToList() : null
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user