private void P1_MessageReceived(object sender, IMirrativMessage e) { var message = e; var messageContext = CreateMessageContext(message); if (messageContext != null) { RaiseMessageReceived(messageContext); } }
private MirrativMessageContext CreateMessageContext(IMirrativMessage message) { if (message is IMirrativComment comment) { var userId = comment.UserId; var isFirst = _first.IsFirstComment(userId); var user = GetUser(userId); //var comment = new MirrativComment(message, raw); var metadata = new CommentMessageMetadata(comment, _options, _siteOptions, user, this, isFirst) { IsInitialComment = false, SiteContextGuid = SiteContextGuid, }; var methods = new MirrativMessageMethods(); if (_siteOptions.NeedAutoSubNickname) { var messageText = message.CommentItems.ToText(); var nick = SitePluginCommon.Utils.ExtractNickname(messageText); if (!string.IsNullOrEmpty(nick)) { user.Nickname = nick; } } return(new MirrativMessageContext(comment, metadata, methods)); } else if (message is IMirrativJoinRoom join && _siteOptions.IsShowJoinMessage) { var userId = join.UserId; var user = GetUser(userId); var metadata = new JoinMessageMetadata(join, _options, _siteOptions, user, this) { IsInitialComment = false, SiteContextGuid = SiteContextGuid, }; var methods = new MirrativMessageMethods(); return(new MirrativMessageContext(join, metadata, methods)); }
public MirrativMessageContext(IMirrativMessage message, IMirrativMessageMetadata metadata, IMessageMethods methods) { Message = message; Metadata = metadata; Methods = methods; }