Exemplo n.º 1
0
        public void ChangeCategory(Topic topic, int newCategory)
        {
            var eventArgs = new TopicEventArgs() { Topic = topic };
            if (Moving.RaiseAndContinue(this, eventArgs))
            {
                topic.ParentId = newCategory;
                _databaseContext.Database.Save(topic);

                Moved.Raise(this, eventArgs);
            }
            else
                CancelledByEvent.Raise(this, eventArgs);
        }
Exemplo n.º 2
0
        /* CRUD */
        public Topic Save(Topic topic)
        {
            var newTopic = topic.Id <= 0;
            var eventArgs = new TopicEventArgs() { Topic = topic };

            if (newTopic)
                Creating.Raise(this, eventArgs);
            else
                Updating.Raise(this, eventArgs);

            if (!eventArgs.Cancel)
            {
                //save entity
                _databaseContext.Database.Save(topic);

                if (newTopic)
                    Created.Raise(this, eventArgs);
                else
                    Updated.Raise(this, eventArgs);

            }
            else
            {
                CancelledByEvent.Raise(this, eventArgs);
            }

            return topic;
        }
Exemplo n.º 3
0
 public void Delete(Topic topic)
 {
     var eventArgs = new TopicEventArgs() { Topic = topic };
     if (Deleting.RaiseAndContinue(this, eventArgs))
     {
         _databaseContext.Database.Delete(topic);
         Deleted.Raise(this, eventArgs);
     }
     else
         CancelledByEvent.Raise(this, eventArgs);
 }
Exemplo n.º 4
0
 public void Lock(Topic topic)
 {
     var eventArgs = new TopicEventArgs() { Topic = topic };
     if (Locking.RaiseAndContinue(this, eventArgs))
     {
         topic.Locked = true;
         _databaseContext.Database.Save(topic);
         Locked.Raise(this, eventArgs);
     }
     else
         CancelledByEvent.Raise(this, eventArgs);
 }
Exemplo n.º 5
0
        public ExpandoObject Topic(TopicSaveModel model)
        {
            dynamic o = new ExpandoObject();

            var t = new Topic();
            t.Body = model.Body;
            t.Title = model.Title;
            t.MemberId = Members.GetCurrentMemberId();
            t.Created = DateTime.Now;
            t.ParentId = model.Forum;
            t.UrlName = url.FormatUrl(model.Title);
            t.Updated = DateTime.Now;
            t.Version = model.Version;
            t.Locked = false;
            t.LatestComment = 0;
            t.LatestReplyAuthor = 0;
            t.Replies = 0;
            t.Score = 0;
            t.Answer = 0;
            t.LatestComment = 0;
            t.IsSpam = t.DetectSpam();
            TopicService.Save(t);

            if (t.IsSpam)
                SpamChecker.SendSlackSpamReport(t.Body, t.Id, "topic", t.MemberId);

            o.url = string.Format("{0}/{1}-{2}", library.NiceUrl(t.ParentId), t.Id, t.UrlName);

            return o;
        }