public Topic UpdateTopic(String userId, String topicId, String subject, String text, TopicType type, TopicState state) { Guid id; if (!Guid.TryParse(topicId, out id)) { throw new ArgumentException(nameof(topicId)); } Guid uId; if (!Guid.TryParse(userId, out uId)) { throw new ArgumentException(nameof(userId)); } if (String.IsNullOrWhiteSpace(subject)) { throw new ArgumentNullException(nameof(subject)); } Dbos.Topic topic = this.topicRepository.FindById(id); topic.Message.Subject = subject; topic.Message.Text = text; topic.Type = type; topic.Message.Updated = DateTime.UtcNow; topic.Message.EditorId = uId; topic.State = state; topic = this.topicRepository.Update(topic); return(topic.ToModel()); }
public Topic FindTopicById(String topicId) { Guid id; if (!Guid.TryParse(topicId, out id)) { throw new ArgumentException(nameof(topicId)); } Dbos.Topic topic = this.topicRepository.FindById(id); return(topic.ToModel()); }
public Topic CreateTopic(String userId, String forumId, String subject, String text, TopicType type) { Guid id; if (!Guid.TryParse(forumId, out id)) { throw new ArgumentException(nameof(forumId)); } Guid uId; if (!Guid.TryParse(userId, out uId)) { throw new ArgumentException(nameof(userId)); } if (String.IsNullOrWhiteSpace(subject)) { throw new ArgumentNullException(nameof(subject)); } Dbos.Forum parent = this.forumRepository.FindById(id); if (parent == null) { throw new ArgumentException(nameof(forumId)); } Dbos.Topic newTopic = new Dbos.Topic { ForumId = parent.Id, State = TopicState.None, Type = type }; newTopic.Message = new Dbos.Message { Created = DateTime.UtcNow, State = Dbos.MessageState.None, Subject = subject, Text = text, Updated = DateTime.UtcNow, AuthorId = uId, EditorId = uId, }; newTopic = this.topicRepository.Create(newTopic); return(newTopic.ToModel()); }