Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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());
        }