예제 #1
0
        public static SimpleDataSet MapTopicToSimpleDataIndexItem(ReadOnlyTopic topic, SimpleDataSet simpleDataSet, int id, string indexType)
        {
            //First generate the accumulated comment text:
            var commentText = string.Empty;
            foreach (var currentComment in topic.Comments.Where(c => c.IsSpam == false))
                commentText += currentComment.Body;

            var body = library.StripHtml(topic.Body + commentText);

            simpleDataSet.NodeDefinition.NodeId = id;
            simpleDataSet.NodeDefinition.Type = indexType;

            simpleDataSet.RowData.Add("body", body);
            if (!string.IsNullOrEmpty(commentText))
            {
                simpleDataSet.RowData.Add("comments", commentText);    
            }
            simpleDataSet.RowData.Add("nodeName", topic.Title);
            simpleDataSet.RowData.Add("updateDate", topic.Updated.ToString("yyyy-MM-dd HH:mm:ss"));
            simpleDataSet.RowData.Add("nodeTypeAlias", "forum");
            
            simpleDataSet.RowData.Add("urlName", topic.UrlName);

            simpleDataSet.RowData.Add("createDate", topic.Created.ToString("yyyy-MM-dd HH:mm:ss"));

            simpleDataSet.RowData.Add("latestCommentId", topic.LatestComment.ToString());
            simpleDataSet.RowData.Add("latestReplyAuthorId", topic.LatestReplyAuthor.ToString());
            if (!string.IsNullOrEmpty(topic.LastReplyAuthorName))
            {
                simpleDataSet.RowData.Add("latestReplyAuthorName", topic.LastReplyAuthorName);    
            }
            

            simpleDataSet.RowData.Add("authorId", topic.MemberId.ToString());
            if (!string.IsNullOrEmpty(topic.AuthorName))
            {
                simpleDataSet.RowData.Add("authorName", topic.AuthorName);    
            }
            
            simpleDataSet.RowData.Add("parentId", topic.ParentId.ToString());
            simpleDataSet.RowData.Add("replies", topic.Replies.ToString());

            simpleDataSet.RowData.Add("locked", topic.Locked.ToString());
            simpleDataSet.RowData.Add("solved", topic.Answer.ToString());

            simpleDataSet.RowData.Add("version", topic.Version.ToString());

            return simpleDataSet;
        }
        public ReadOnlyTopic Map(ReadOnlyTopic topic, ReadOnlyComment comment)
        {
            // Terminating call.  Since we can return null from this function
            // we need to be ready for PetaPoco to callback later with null
            // parameters
            if (topic == null)
            {
                return(_current);
            }

            // Is this the same Topic as the current one we're processing
            if (_current != null && _current.Id == topic.Id)
            {
                // Yes, just add this Comment to the current Topic's collection of Comments
                if (comment.Id > 0)
                {
                    _current.Comments.Add(comment);
                }

                // Return null to indicate we're not done with this Topic yet
                return(null);
            }

            // This is a different Topic to the current one, or this is the
            // first time through and we don't have an Topic yet

            // Save the current Topic
            var prev = _current;

            // Setup the new current topic
            _current          = topic;
            _current.Comments = new List <ReadOnlyComment>();
            if (comment.Id > 0)
            {
                _current.Comments.Add(comment);
            }


            // Return the now populated previous author (or null if first time through)
            return(prev);
        }
예제 #3
0
        public ReadOnlyTopic Map(ReadOnlyTopic topic, ReadOnlyComment comment)
        {
            // Terminating call.  Since we can return null from this function
            // we need to be ready for PetaPoco to callback later with null
            // parameters
            if (topic == null)
                return _current;

            // Is this the same Topic as the current one we're processing
            if (_current != null && _current.Id == topic.Id)
            {
                // Yes, just add this Comment to the current Topic's collection of Comments
                if (comment.Id > 0)
                {
                    _current.Comments.Add(comment);    
                }

                // Return null to indicate we're not done with this Topic yet
                return null;
            }

            // This is a different Topic to the current one, or this is the 
            // first time through and we don't have an Topic yet

            // Save the current Topic
            var prev = _current;

            // Setup the new current topic
            _current = topic;
            _current.Comments = new List<ReadOnlyComment>();
            if (comment.Id > 0)
            {
                _current.Comments.Add(comment);
            }
            

            // Return the now populated previous author (or null if first time through)
            return prev;
        }
예제 #4
0
 public void SendNotifications(ReadOnlyTopic topic, string memberName, string url)
 {
     var newForumTopicNotification = new NotificationsCore.Notifications.NewForumTopic();
     newForumTopicNotification.SendNotification(topic, memberName, url);
 }