public void MapTopicContainerSetsQuestionsWithNoParentAsAnswers() { var post1 = new Post { PostID = 1, ParentPostID = 0 }; var post2 = new Post { PostID = 2, IsFirstInTopic = true }; var post3 = new Post { PostID = 3, ParentPostID = 2 }; var post4 = new Post { PostID = 4, ParentPostID = 1 }; var post5 = new Post { PostID = 5, ParentPostID = 3 }; var posts = new List <Post> { post1, post2, post3, post4, post5 }; var topicContainer = new TopicContainer { Posts = posts, Topic = new Topic { TopicID = 1234 } }; var service = GetService(); var result = service.MapTopicContainerForQA(topicContainer); Assert.Single(result.AnswersWithComments); Assert.Same(post1, result.AnswersWithComments[0].Post); }
/// <summary> /// The create topic line. /// </summary> /// <param name="containerDataItem"> /// The container data item. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> protected string CreateTopicLine(DataRowView containerDataItem) { var topicLine = new TopicContainer { DataRow = containerDataItem }; return(topicLine.RenderToString()); }
/// <summary> /// The create topic line. /// </summary> /// <param name="item"> /// The item. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> protected string CreateTopicLine(object item) { var topicLine = new TopicContainer { Item = item as PagedTopic }; return(topicLine.RenderToString()); }
public void Initialize() { Ros.MasterUri = new Uri("http://localhost:11311/"); Ros.HostName = "localhost"; var topicContainer = new TopicContainer(); topicContainer.AddPublisher(new Publisher <std_msgs.String>("/test_topic", "test")); var tcpListener = new TcpRosListener(0); _slaveServer = new SlaveServer("test", 0, topicContainer); _slaveServer.AddListener("/test_topic", tcpListener); }
public TopicContainerForQA MapTopicContainerForQA(TopicContainer topicContainer) { var result = new TopicContainerForQA { Forum = topicContainer.Forum, Topic = topicContainer.Topic, Posts = topicContainer.Posts, PagerContext = topicContainer.PagerContext, PermissionContext = topicContainer.PermissionContext, IsSubscribed = topicContainer.IsSubscribed, IsFavorite = topicContainer.IsFavorite, Signatures = topicContainer.Signatures, Avatars = topicContainer.Avatars, VotedPostIDs = topicContainer.VotedPostIDs }; try { var questionPost = result.Posts.Single(x => x.IsFirstInTopic); var questionComments = result.Posts.Where(x => x.ParentPostID == questionPost.PostID).ToList(); result.QuestionPostWithComments = new PostWithChildren { Post = questionPost, Children = questionComments, LastReadTime = topicContainer.LastReadTime }; } catch (InvalidOperationException) { throw new InvalidOperationException(String.Format("There is no post marked as FirstInTopic for TopicID {0}.", topicContainer.Topic.TopicID)); } var answers = result.Posts.Where(x => !x.IsFirstInTopic && (x.ParentPostID == 0)).OrderByDescending(x => x.Votes).ThenByDescending(x => x.PostTime).ToList(); if (topicContainer.Topic.AnswerPostID.HasValue) { var acceptedAnswer = answers.SingleOrDefault(x => x.PostID == topicContainer.Topic.AnswerPostID.Value); if (acceptedAnswer != null) { answers.Remove(acceptedAnswer); answers.Insert(0, acceptedAnswer); } } result.AnswersWithComments = new List <PostWithChildren>(); foreach (var item in answers) { var comments = result.Posts.Where(x => x.ParentPostID == item.PostID).ToList(); result.AnswersWithComments.Add(new PostWithChildren { Post = item, Children = comments, LastReadTime = topicContainer.LastReadTime }); } return(result); }
public void Initialize() { Ros.MasterUri = new Uri("http://localhost:11311/"); Ros.HostName = "localhost"; Ros.TopicTimeout = 3000; Ros.XmlRpcTimeout = 3000; _container = new TopicContainer(); var listener = new TcpRosListener(0); _slaveServer = new SlaveServer("test", 0, _container); _slaveServer.AddListener("test", listener); _slaveClient = new SlaveClient(_slaveServer.SlaveUri); }
public void Init() { text = textObj.GetComponent <Text>(); thoughtSpawner = thoughtSpawnerObj.GetComponent <ThoughtSpawner>(); tc = JsonUtility.FromJson <TopicContainer>(JSONContainer.gameJSON); for (int i = 0; i < tc.topics.Length; i++) { topics.Add(tc.topics[i].topic, tc.topics[i]); } for (int i = 0; i < expressionNames.Count; i++) { expressions.Add(expressionNames[i], expressionObjs[i]); } ender = CreateConversationEnder(); StartRandomTopic(); }
internal SlaveServer(string nodeId, int portNumber, TopicContainer topicContainer) { NodeId = nodeId; _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId); _topicContainer = topicContainer; _tcpRosListener = new Dictionary <string, TcpRosListener>(); string slaveName = "slave" + Guid.NewGuid().ToString("N"); _channel = new HttpServerChannel(slaveName, portNumber, new XmlRpcServerFormatterSinkProvider()); var tmp = new Uri(_channel.GetChannelUri()); SlaveUri = new Uri("http://" + Ros.HostName + ":" + tmp.Port + "/" + slaveName); ChannelServices.RegisterChannel(_channel, false); RemotingServices.Marshal(this, slaveName); //Marshalするときの名前に/を入れるとだめ。 }
public void RemoveSubscriber_Success() { var container = new TopicContainer(); ISubscriber sub; container.HasSubscriber("sub1").Is(false); container.GetSubscribers().Count.Is(0); container.AddSubscriber(new Subscriber <std_msgs.String>("sub1", "test")).Is(true); container.HasSubscriber("sub1").Is(true); container.GetSubscribers().Count.Is(1); container.GetSubscriber("sub1", out sub).Is(true); container.RemoveSubscriber("sub1").Is(true); container.GetSubscriber("sub1", out sub).Is(false); container.RemoveSubscriber("sub1").Is(false); }
public void AddPublisher_AlreadyAdded() { var container = new TopicContainer(); IPublisher pub; container.HasPublisher("pub1").Is(false); container.GetPublishers().Count.Is(0); container.AddPublisher(new Publisher <std_msgs.String>("pub1", "test")).Is(true); container.HasPublisher("pub1").Is(true); container.GetPublishers().Count.Is(1); container.GetPublisher("pub1", out pub).Is(true); container.AddPublisher(new Publisher <std_msgs.String>("pub1", "test")).Is(false); container.HasPublisher("pub1").Is(true); container.GetPublishers().Count.Is(1); container.GetPublisher("pub1", out pub).Is(true); }
public void MapTopicContainerOrdersAnswersByVoteThenDate() { var post1 = new Post { PostID = 1, IsFirstInTopic = true }; var post2 = new Post { PostID = 2, Votes = 7, PostTime = new DateTime(2000, 1, 1) }; var post3 = new Post { PostID = 3, Votes = 7, PostTime = new DateTime(2000, 2, 1) }; var post4 = new Post { PostID = 4, Votes = 2 }; var post5 = new Post { PostID = 5, Votes = 3 }; var post6 = new Post { PostID = 6, Votes = 8 }; var post7 = new Post { PostID = 7, Votes = 5 }; var posts = new List <Post> { post1, post2, post3, post4, post5, post6, post7 }; var topic = new Topic { TopicID = 123, AnswerPostID = null }; var topicContainer = new TopicContainer { Posts = posts, Topic = topic }; var service = GetService(); var result = service.MapTopicContainerForQA(topicContainer); Assert.Same(post6, result.AnswersWithComments[0].Post); Assert.Same(post3, result.AnswersWithComments[1].Post); Assert.Same(post2, result.AnswersWithComments[2].Post); Assert.Same(post7, result.AnswersWithComments[3].Post); Assert.Same(post5, result.AnswersWithComments[4].Post); Assert.Same(post4, result.AnswersWithComments[5].Post); }
public void MapTopicContainerThrowsWithMoreThanOneFirstInTopicPost() { var posts = new List <Post> { new Post { PostID = 1, IsFirstInTopic = true }, new Post { PostID = 2, IsFirstInTopic = true } }; var topicContainer = new TopicContainer { Posts = posts, Topic = new Topic { TopicID = 123 } }; var service = GetService(); Assert.Throws <InvalidOperationException>(() => service.MapTopicContainerForQA(topicContainer)); }
public Node(string nodeId) { _disposed = false; NodeId = nodeId; _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId); if (_logger.IsDebugEnabled) { LogLevel = Log.DEBUG; } else if (_logger.IsInfoEnabled) { LogLevel = Log.INFO; } else if (_logger.IsWarnEnabled) { LogLevel = Log.WARN; } else if (_logger.IsErrorEnabled) { LogLevel = Log.ERROR; } else if (_logger.IsFatalEnabled) { LogLevel = Log.FATAL; } _masterClient = new MasterClient(Ros.MasterUri); _parameterServerClient = new ParameterServerClient(Ros.MasterUri); _serviceProxyFactory = new ServiceProxyFactory(NodeId); _topicContainer = new TopicContainer(); _slaveServer = new SlaveServer(NodeId, 0, _topicContainer); _slaveServer.ParameterUpdated += SlaveServerOnParameterUpdated; _logger.InfoFormat("Create Node: {0}", nodeId); }
public void MapTopicContainerGrabsFirstPostForQuestion() { var posts = new List <Post> { new Post { PostID = 1 }, new Post { PostID = 2, IsFirstInTopic = true } }; var topicContainer = new TopicContainer { Posts = posts, Topic = new Topic { TopicID = 123 } }; var service = GetService(); var result = service.MapTopicContainerForQA(topicContainer); Assert.Equal(2, result.QuestionPostWithComments.Post.PostID); }
public void MapTopicContainerMapsCommentsToParentQuestionsAndAnswers() { var post1 = new Post { PostID = 1, ParentPostID = 0 }; var post2 = new Post { PostID = 2, IsFirstInTopic = true }; var post3 = new Post { PostID = 3, ParentPostID = 0 }; var post4 = new Post { PostID = 4, ParentPostID = 1 }; var post5 = new Post { PostID = 5, ParentPostID = 2 }; var post6 = new Post { PostID = 6, ParentPostID = 3 }; var post7 = new Post { PostID = 7, ParentPostID = 3 }; var posts = new List <Post> { post1, post2, post3, post4, post5, post6, post7 }; var topicContainer = new TopicContainer { Posts = posts, Topic = new Topic { TopicID = 1234 } }; var service = GetService(); var result = service.MapTopicContainerForQA(topicContainer); Assert.True(result.AnswersWithComments[0].Children.Count == 1); Assert.Contains(post4, result.AnswersWithComments[0].Children); Assert.True(result.AnswersWithComments[1].Children.Count == 2); Assert.Contains(post6, result.AnswersWithComments[1].Children); Assert.Contains(post7, result.AnswersWithComments[1].Children); }
public void MapTopicContainerMapsLastReadTimeToQuestionAndAnswerSets() { var post1 = new Post { PostID = 1, ParentPostID = 0 }; var post2 = new Post { PostID = 2, IsFirstInTopic = true }; var post3 = new Post { PostID = 3, ParentPostID = 0 }; var post4 = new Post { PostID = 4, ParentPostID = 1 }; var post5 = new Post { PostID = 5, ParentPostID = 2 }; var post6 = new Post { PostID = 6, ParentPostID = 3 }; var post7 = new Post { PostID = 7, ParentPostID = 3 }; var posts = new List <Post> { post1, post2, post3, post4, post5, post6, post7 }; var lastRead = new DateTime(2000, 1, 1); var topicContainer = new TopicContainer { Posts = posts, Topic = new Topic { TopicID = 1234 }, LastReadTime = lastRead }; var service = GetService(); var result = service.MapTopicContainerForQA(topicContainer); Assert.Equal(lastRead, result.AnswersWithComments[0].LastReadTime); Assert.Equal(lastRead, result.AnswersWithComments[1].LastReadTime); Assert.Equal(lastRead, result.QuestionPostWithComments.LastReadTime); }
public void MapTopicContainerForQAMapsBaseProperties() { var topicContainer = new TopicContainer { Forum = new Forum { ForumID = 1 }, Topic = new Topic { TopicID = 2 }, Posts = new List <Post> { new Post { PostID = 123, IsFirstInTopic = true } }, PagerContext = new PagerContext(), PermissionContext = new ForumPermissionContext(), IsSubscribed = true, IsFavorite = true, Signatures = new Dictionary <int, string>(), Avatars = new Dictionary <int, int>(), VotedPostIDs = new List <int>() }; var service = GetService(); var result = service.MapTopicContainerForQA(topicContainer); Assert.Same(topicContainer.Forum, result.Forum); Assert.Same(topicContainer.Topic, result.Topic); Assert.Same(topicContainer.Posts, result.Posts); Assert.Same(topicContainer.PagerContext, result.PagerContext); Assert.Same(topicContainer.PermissionContext, result.PermissionContext); Assert.True(topicContainer.IsSubscribed); Assert.True(topicContainer.IsFavorite); Assert.Same(topicContainer.Signatures, result.Signatures); Assert.Same(topicContainer.Avatars, result.Avatars); Assert.Same(topicContainer.VotedPostIDs, result.VotedPostIDs); }
public void MapTopicContainerDoesNotMapCommentsForTopQuestionAsReplies() { var post1 = new Post { PostID = 1, ParentPostID = 0 }; var post2 = new Post { PostID = 2, IsFirstInTopic = true }; var post3 = new Post { PostID = 3, ParentPostID = 0 }; var post4 = new Post { PostID = 4, ParentPostID = 1 }; var post5 = new Post { PostID = 5, ParentPostID = 2 }; var post6 = new Post { PostID = 6, ParentPostID = 3 }; var post7 = new Post { PostID = 7, ParentPostID = 3 }; var posts = new List <Post> { post1, post2, post3, post4, post5, post6, post7 }; var topicContainer = new TopicContainer { Posts = posts, Topic = new Topic { TopicID = 1234 } }; var service = GetService(); var result = service.MapTopicContainerForQA(topicContainer); Assert.DoesNotContain(result.AnswersWithComments, x => x.Post.PostID == post5.PostID); }
void DropObject() { // Is there a droppable container? Collider col = UICamera.lastHit.collider; TopicContainer container = (col != null) ? col.gameObject.GetComponent<TopicContainer>() : null; if (container != null && container.IsEmpty()) { Vector3 pos = container.transform.position; pos.z = transform.position.z; transform.position = pos; droppedInContainer = true; myContainer = container; container.CheckIfCorrectTopic(this); } else { ReturnToBubble(); } }