private WhowatchMessageContext CreateMessageContext(IWhowatchMessage message, bool isInitialComment) { IMessageMetadata metadata = null; if (message is IWhowatchComment comment) { var user = GetUser(comment.UserId); user.Name = comment.NameItems; var isFirstComment = _first.IsFirstComment(user.UserId); metadata = new CommentMessageMetadata(comment, _options, _siteOptions, user, this, isFirstComment) { IsInitialComment = isInitialComment, SiteContextGuid = SiteContextGuid, }; } else if (message is IWhowatchItem item) { var user = GetUser(item.UserId.ToString()); user.Name = item.NameItems; metadata = new ItemMessageMetadata(item, _options, _siteOptions, user, this) { IsInitialComment = true, SiteContextGuid = SiteContextGuid, }; } WhowatchMessageContext context = null; if (metadata != null) { var methods = new WhowatchMessageMethods(); context = new WhowatchMessageContext(message, metadata, methods); } return(context); }
public CommentMessageMetadata(IWhowatchMessage message, ICommentOptions options, IWhowatchSiteOptions siteOptions, IUser user, ICommentProvider cp, bool isFirstComment) : base(options, siteOptions, cp) { User = user; IsFirstComment = isFirstComment; user.PropertyChanged += User_PropertyChanged; }
private void InternalCommentProvider_MessageReceived(object sender, IWhowatchMessage e) { var whowatchMessage = e; try { var context = CreateMessageContext(whowatchMessage, false); if (context != null) { MessageReceived?.Invoke(this, context); } } catch (Exception ex) { Debug.WriteLine(whowatchMessage.Raw); _logger.LogException(ex); } }
public WhowatchMessageContext(IWhowatchMessage message, IMessageMetadata metadata, IMessageMethods methods) { Message = message; Metadata = metadata; Methods = methods; }