public OpenrecCommentViewModel(IOpenrecCommentData commentData, ICommentOptions options, IOpenrecSiteOptions siteOptions, ICommentProvider commentProvider, bool isFirstComment, IUser user) : base(options, user, commentProvider, isFirstComment) { MessageType = MessageType.Comment; _options = options; _siteOptions = siteOptions; UserId = commentData.UserId; Id = commentData.Id; PostDate = commentData.PostTime.ToString("HH:mm:ss"); var elapsed = commentData.Elapsed; Elapsed = Tools.ElapsedToString(elapsed); IsStamp = commentData.Stamp != null; IsYell = commentData.IsYell; if (!string.IsNullOrEmpty(commentData.UserIconUrl)) { Thumbnail = new MessageImage { Url = commentData.UserIconUrl }; } if (siteOptions.IsAutoSetNickname) { var nick = ExtractNickname(commentData.Message.Text); if (!string.IsNullOrEmpty(nick)) { user.Nickname = nick; } } //Name { var nameItems = new List <IMessagePart>(); nameItems.Add(MessagePartFactory.CreateMessageText(commentData.Name)); nameItems.AddRange(commentData.NameIcons); NameItemsInternal = nameItems; } //Message { var messageItems = new List <IMessagePart>(); if (commentData.IsYell) { MessageType = MessageType.BroadcastInfo; messageItems.Add(MessagePartFactory.CreateMessageText("エールポイント:" + commentData.YellPoints + Environment.NewLine)); } messageItems.Add(commentData.Message); if (commentData.Stamp != null) { MessageType = MessageType.BroadcastInfo; messageItems.Add(commentData.Stamp); } MessageItems = messageItems; } Init(); }
public MessageMetadata(IOpenrecMessage message, ICommentOptions options, IOpenrecSiteOptions siteOptions, IUser user, ICommentProvider cp, bool isFirstComment) { _message = message; _options = options; _siteOptions = siteOptions; IsFirstComment = isFirstComment; User = user; CommentProvider = cp; //TODO:siteOptionsのpropertyChangedが発生したら関係するプロパティの変更通知を出したい options.PropertyChanged += Options_PropertyChanged; siteOptions.PropertyChanged += SiteOptions_PropertyChanged; user.PropertyChanged += User_PropertyChanged; }