blob: 15e41d46823ae5e9f14f11faaf69fcb0da3f5cea (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using LibMatrix.HomeserverEmulator.Services;
namespace LibMatrix.HomeserverEmulator.Extensions;
public static class EventExtensions {
public static MatrixEventResponse ToStateEvent(this StateEvent stateEvent, UserStore.User user, RoomStore.Room room) {
return new MatrixEventResponse {
RawContent = stateEvent.RawContent,
EventId = "$" + string.Join("", Random.Shared.GetItems("abcdefghijklmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ0123456789".ToCharArray(), 100)),
RoomId = room.RoomId,
Sender = user.UserId,
StateKey = stateEvent.StateKey,
Type = stateEvent.Type,
OriginServerTs = DateTimeOffset.Now.ToUnixTimeMilliseconds()
};
}
public static List<MatrixEventResponse> GetCalculatedState(this IEnumerable<MatrixEventResponse> events) {
return events.Where(s => s.StateKey != null)
.OrderByDescending(s => s.OriginServerTs)
.DistinctBy(x => (x.Type, x.StateKey))
.ToList();
}
}
|