public void Can_save_and_load_forum() { var forum = new Forum { ForumGroup = new ForumGroup { Name = "Forum Group 1", DisplayOrder = 1, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, }, Name = "Forum 1", Description = "Forum 1 Description", DisplayOrder = 10, CreatedOnUtc = new DateTime(2010, 01, 01), UpdatedOnUtc = new DateTime(2010, 01, 02), NumPosts = 25, NumTopics = 15, }; var fromDb = SaveAndLoadEntity(forum); fromDb.ShouldNotBeNull(); fromDb.Name.ShouldEqual("Forum 1"); fromDb.Description.ShouldEqual("Forum 1 Description"); fromDb.DisplayOrder.ShouldEqual(10); fromDb.NumTopics.ShouldEqual(15); fromDb.NumPosts.ShouldEqual(25); fromDb.CreatedOnUtc.ShouldEqual(new DateTime(2010, 01, 01)); fromDb.UpdatedOnUtc.ShouldEqual(new DateTime(2010, 01, 02)); }
protected ForumRowModel PrepareForumRowModel(Forum forum) { var forumModel = new ForumRowModel() { Id = forum.Id, Name = forum.Name, SeName = forum.GetSeName(), Description = forum.Description, NumTopics = forum.NumTopics, NumPosts = forum.NumPosts, LastPostId = forum.LastPostId, }; return forumModel; }
/// <summary> /// Sends a forum subscription message to a customer /// </summary> /// <param name="customer">Customer instance</param> /// <param name="forumTopic">Forum Topic</param> /// <param name="forum">Forum</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public int SendNewForumTopicMessage(Customer customer, ForumTopic forumTopic, Forum forum, int languageId) { if (customer == null) { throw new ArgumentNullException("customer"); } var store = _storeContext.CurrentStore; var messageTemplate = GetLocalizedActiveMessageTemplate("Forums.NewForumTopic", languageId, store.Id); if (messageTemplate == null) return 0; //tokens var tokens = new List<Token>(); _messageTokenProvider.AddStoreTokens(tokens, store); _messageTokenProvider.AddForumTopicTokens(tokens, forumTopic); _messageTokenProvider.AddForumTokens(tokens, forumTopic.Forum); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); var toEmail = customer.Email; var toName = customer.GetFullName(); return SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName); }
public virtual void AddForumTokens(IList<Token> tokens, Forum forum) { //TODO add a method for getting URL (use routing because it handles all SEO friendly URLs) var forumUrl = string.Format("{0}boards/forum/{1}/{2}", _webHelper.GetStoreLocation(false), forum.Id, forum.GetSeName()); tokens.Add(new Token("Forums.ForumURL", forumUrl, true)); tokens.Add(new Token("Forums.ForumName", forum.Name)); //event notification _eventPublisher.EntityTokensAdded(forum, tokens); }
public static Forum ToEntity(this ForumModel model, Forum destination) { return Mapper.Map(model, destination); }
public void Can_save_and_load_forumpost() { var customer = GetTestCustomer(); var customerFromDb = SaveAndLoadEntity(customer); customerFromDb.ShouldNotBeNull(); var forumGroup = new ForumGroup { Name = "Forum Group 1", DisplayOrder = 1, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow }; var forumGroupFromDb = SaveAndLoadEntity(forumGroup); forumGroupFromDb.ShouldNotBeNull(); forumGroupFromDb.Name.ShouldEqual("Forum Group 1"); forumGroupFromDb.DisplayOrder.ShouldEqual(1); var forum = new Forum { ForumGroup = forumGroupFromDb, Name = "Forum 1", Description = "Forum 1 Description", ForumGroupId = forumGroupFromDb.Id, DisplayOrder = 10, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, NumPosts = 25, NumTopics = 15 }; forumGroup.Forums.Add(forum); var forumFromDb = SaveAndLoadEntity(forum); forumFromDb.ShouldNotBeNull(); forumFromDb.Name.ShouldEqual("Forum 1"); forumFromDb.Description.ShouldEqual("Forum 1 Description"); forumFromDb.DisplayOrder.ShouldEqual(10); forumFromDb.NumTopics.ShouldEqual(15); forumFromDb.NumPosts.ShouldEqual(25); forumFromDb.ForumGroupId.ShouldEqual(forumGroupFromDb.Id); var forumTopic = new ForumTopic { Subject = "Forum Topic 1", ForumId = forumFromDb.Id, TopicTypeId = (int)ForumTopicType.Sticky, Views = 123, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, NumPosts = 100, CustomerId = customerFromDb.Id, }; var forumTopicFromDb = SaveAndLoadEntity(forumTopic); forumTopicFromDb.ShouldNotBeNull(); forumTopicFromDb.Subject.ShouldEqual("Forum Topic 1"); forumTopicFromDb.Views.ShouldEqual(123); forumTopicFromDb.NumPosts.ShouldEqual(100); forumTopicFromDb.TopicTypeId.ShouldEqual((int)ForumTopicType.Sticky); forumTopicFromDb.ForumId.ShouldEqual(forumFromDb.Id); var forumPost = new ForumPost { Text = "Forum Post 1 Text", ForumTopic = forumTopicFromDb, TopicId = forumTopicFromDb.Id, IPAddress = "127.0.0.1", CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, CustomerId = customerFromDb.Id, }; var forumPostFromDb = SaveAndLoadEntity(forumPost); forumPostFromDb.ShouldNotBeNull(); forumPostFromDb.Text.ShouldEqual("Forum Post 1 Text"); forumPostFromDb.IPAddress.ShouldEqual("127.0.0.1"); forumPostFromDb.TopicId.ShouldEqual(forumTopicFromDb.Id); }
/// <summary> /// Check whether customer is allowed to create new topics /// </summary> /// <param name="customer">Customer</param> /// <param name="forum">Forum</param> /// <returns>True if allowed, otherwise false</returns> public virtual bool IsCustomerAllowedToCreateTopic(Customer customer, Forum forum) { if (forum == null) { return false; } if (customer == null) { return false; } if (customer.IsGuest() && !_forumSettings.AllowGuestsToCreateTopics) { return false; } if (IsForumModerator(customer)) { return true; } return true; }
/// <summary> /// Inserts a forum /// </summary> /// <param name="forum">Forum</param> public virtual void InsertForum(Forum forum) { if (forum == null) { throw new ArgumentNullException("forum"); } _forumRepository.Insert(forum); _cacheManager.RemoveByPattern(FORUMGROUP_PATTERN_KEY); _cacheManager.RemoveByPattern(FORUM_PATTERN_KEY); //event notification _eventPublisher.EntityInserted(forum); }
/// <summary> /// Deletes a forum /// </summary> /// <param name="forum">Forum</param> public virtual void DeleteForum(Forum forum) { if (forum == null) { throw new ArgumentNullException("forum"); } //delete forum subscriptions (topics) var queryTopicIds = from ft in _forumTopicRepository.Table where ft.ForumId == forum.Id select ft.Id; var queryFs1 = from fs in _forumSubscriptionRepository.Table where queryTopicIds.Contains(fs.TopicId) select fs; foreach (var fs in queryFs1.ToList()) { _forumSubscriptionRepository.Delete(fs); //event notification _eventPublisher.EntityDeleted(fs); } //delete forum subscriptions (forum) var queryFs2 = from fs in _forumSubscriptionRepository.Table where fs.ForumId == forum.Id select fs; foreach (var fs2 in queryFs2.ToList()) { _forumSubscriptionRepository.Delete(fs2); //event notification _eventPublisher.EntityDeleted(fs2); } //delete forum _forumRepository.Delete(forum); _cacheManager.RemoveByPattern(FORUMGROUP_PATTERN_KEY); _cacheManager.RemoveByPattern(FORUM_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(forum); }
public void Can_save_and_load_forum_subscription_topic_subscribed() { var customer = GetTestCustomer(); var customerFromDb = SaveAndLoadEntity(customer); customerFromDb.ShouldNotBeNull(); var forumGroup = new ForumGroup { Name = "Forum Group 1", DisplayOrder = 1, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow }; var forumGroupFromDb = SaveAndLoadEntity(forumGroup); forumGroupFromDb.ShouldNotBeNull(); forumGroupFromDb.Name.ShouldEqual("Forum Group 1"); forumGroupFromDb.DisplayOrder.ShouldEqual(1); var forum = new Forum { ForumGroup = forumGroupFromDb, Name = "Forum 1", Description = "Forum 1 Description", ForumGroupId = forumGroupFromDb.Id, DisplayOrder = 10, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, NumPosts = 25, NumTopics = 15 }; forumGroup.Forums.Add(forum); var forumFromDb = SaveAndLoadEntity(forum); forumFromDb.ShouldNotBeNull(); forumFromDb.Name.ShouldEqual("Forum 1"); forumFromDb.Description.ShouldEqual("Forum 1 Description"); forumFromDb.DisplayOrder.ShouldEqual(10); forumFromDb.NumTopics.ShouldEqual(15); forumFromDb.NumPosts.ShouldEqual(25); forumFromDb.ForumGroupId.ShouldEqual(forumGroupFromDb.Id); var forumTopic = new ForumTopic { Subject = "Forum Topic 1", Forum = forumFromDb, ForumId = forumFromDb.Id, TopicTypeId = (int)ForumTopicType.Sticky, Views = 123, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, NumPosts = 100, CustomerId = customerFromDb.Id, }; var forumTopicFromDb = SaveAndLoadEntity(forumTopic); forumTopicFromDb.ShouldNotBeNull(); forumTopicFromDb.Subject.ShouldEqual("Forum Topic 1"); forumTopicFromDb.Views.ShouldEqual(123); forumTopicFromDb.NumPosts.ShouldEqual(100); forumTopicFromDb.TopicTypeId.ShouldEqual((int)ForumTopicType.Sticky); forumTopicFromDb.ForumId.ShouldEqual(forumFromDb.Id); var forumSubscription = new ForumSubscription { CreatedOnUtc = DateTime.UtcNow, SubscriptionGuid = new Guid("11111111-2222-3333-4444-555555555555"), TopicId = forumTopicFromDb.Id, CustomerId = customerFromDb.Id, }; var forumSubscriptionFromDb = SaveAndLoadEntity(forumSubscription); forumSubscriptionFromDb.ShouldNotBeNull(); forumSubscriptionFromDb.SubscriptionGuid.ToString().ShouldEqual("11111111-2222-3333-4444-555555555555"); forumSubscriptionFromDb.TopicId.ShouldEqual(forumTopicFromDb.Id); forumSubscriptionFromDb.ForumId.ShouldEqual(0); }