public void Can_save_and_load_newsItem_with_comments() { var news = new NewsItem { Title = "Title 1", Short = "Short 1", Full = "Full 1", AllowComments = true, Published = true, CreatedOnUtc = new DateTime(2010, 01, 01), Language = new Language() { Name = "English", LanguageCulture = "en-Us", } }; news.NewsComments.Add ( new NewsComment { CommentText = "Comment text 1", CreatedOnUtc = new DateTime(2010, 01, 03), Customer = GetTestCustomer() } ); var fromDb = SaveAndLoadEntity(news); fromDb.ShouldNotBeNull(); fromDb.NewsComments.ShouldNotBeNull(); (fromDb.NewsComments.Count == 1).ShouldBeTrue(); fromDb.NewsComments.First().CommentText.ShouldEqual("Comment text 1"); }
/// <summary> /// Deletes a news /// </summary> /// <param name="newsItem">News item</param> public virtual void DeleteNews(NewsItem newsItem) { if (newsItem == null) throw new ArgumentNullException("newsItem"); _newsItemRepository.Delete(newsItem); //event notification _eventPublisher.EntityDeleted(newsItem); }
public void Can_save_and_load_newsItem() { var news = new NewsItem { Title = "Title 1", Short = "Short 1", Full = "Full 1", Published = true, StartDateUtc = new DateTime(2010, 01, 01), EndDateUtc = new DateTime(2010, 01, 02), AllowComments = true, CommentCount = 1, LimitedToStores = true, CreatedOnUtc = new DateTime(2010, 01, 03), MetaTitle = "MetaTitle 1", MetaDescription = "MetaDescription 1", MetaKeywords = "MetaKeywords 1", Language = new Language() { Name = "English", LanguageCulture = "en-Us", } }; var fromDb = SaveAndLoadEntity(news); fromDb.ShouldNotBeNull(); fromDb.Title.ShouldEqual("Title 1"); fromDb.Short.ShouldEqual("Short 1"); fromDb.Full.ShouldEqual("Full 1"); fromDb.Published.ShouldEqual(true); fromDb.StartDateUtc.ShouldEqual(new DateTime(2010, 01, 01)); fromDb.EndDateUtc.ShouldEqual(new DateTime(2010, 01, 02)); fromDb.AllowComments.ShouldEqual(true); fromDb.CommentCount.ShouldEqual(1); fromDb.LimitedToStores.ShouldEqual(true); fromDb.CreatedOnUtc.ShouldEqual(new DateTime(2010, 01, 03)); fromDb.MetaTitle.ShouldEqual("MetaTitle 1"); fromDb.MetaDescription.ShouldEqual("MetaDescription 1"); fromDb.MetaKeywords.ShouldEqual("MetaKeywords 1"); fromDb.Language.ShouldNotBeNull(); fromDb.Language.Name.ShouldEqual("English"); }
public static NewsItem ToEntity(this NewsItemModel model, NewsItem destination) { return Mapper.Map(model, destination); }
private void PrepareStoresMappingModel(NewsItemModel model, NewsItem newsItem, bool excludeProperties) { if (model == null) throw new ArgumentNullException("model"); model.AvailableStores = _storeService .GetAllStores() .Select(s => s.ToModel()) .ToList(); if (!excludeProperties) { if (newsItem != null) { model.SelectedStoreIds = _storeMappingService.GetStoresIdsWithAccess(newsItem); } else { model.SelectedStoreIds = new int[0]; } } }
protected void SaveStoreMappings(NewsItem newsItem, NewsItemModel model) { var existingStoreMappings = _storeMappingService.GetStoreMappings(newsItem); var allStores = _storeService.GetAllStores(); foreach (var store in allStores) { if (model.SelectedStoreIds != null && model.SelectedStoreIds.Contains(store.Id)) { //new role if (existingStoreMappings.Count(sm => sm.StoreId == store.Id) == 0) _storeMappingService.InsertStoreMapping(newsItem, store.Id); } else { //removed role var storeMappingToDelete = existingStoreMappings.FirstOrDefault(sm => sm.StoreId == store.Id); if (storeMappingToDelete != null) _storeMappingService.DeleteStoreMapping(storeMappingToDelete); } } }
/// <summary> /// Updates the news item /// </summary> /// <param name="news">News item</param> public virtual void UpdateNews(NewsItem news) { if (news == null) throw new ArgumentNullException("news"); _newsItemRepository.Update(news); //event notification _eventPublisher.EntityUpdated(news); }
protected void PrepareNewsItemModel(NewsItemModel model, NewsItem newsItem, bool prepareComments) { if (newsItem == null) throw new ArgumentNullException("newsItem"); if (model == null) throw new ArgumentNullException("model"); model.Id = newsItem.Id; model.MetaTitle = newsItem.MetaTitle; model.MetaDescription = newsItem.MetaDescription; model.MetaKeywords = newsItem.MetaKeywords; model.SeName = newsItem.GetSeName(newsItem.LanguageId, ensureTwoPublishedLanguages: false); model.Title = newsItem.Title; model.Short = newsItem.Short; model.Full = newsItem.Full; model.AllowComments = newsItem.AllowComments; model.CreatedOn = _dateTimeHelper.ConvertToUserTime(newsItem.CreatedOnUtc, DateTimeKind.Utc); model.NumberOfComments = newsItem.CommentCount; model.AddNewComment.DisplayCaptcha = _captchaSettings.Enabled && _captchaSettings.ShowOnNewsCommentPage; if (prepareComments) { var newsComments = newsItem.NewsComments.OrderBy(pr => pr.CreatedOnUtc); foreach (var nc in newsComments) { var commentModel = new NewsCommentModel() { Id = nc.Id, CustomerId = nc.CustomerId, CustomerName = nc.Customer.FormatUserName(), CommentTitle = nc.CommentTitle, CommentText = nc.CommentText, CreatedOn = _dateTimeHelper.ConvertToUserTime(nc.CreatedOnUtc, DateTimeKind.Utc), AllowViewingProfiles = _customerSettings.AllowViewingProfiles && nc.Customer != null && !nc.Customer.IsGuest(), }; if (_customerSettings.AllowCustomersToUploadAvatars) { commentModel.CustomerAvatarUrl = _pictureService.GetPictureUrl( nc.Customer.GetAttribute<int>(SystemCustomerAttributeNames.AvatarPictureId), _mediaSettings.AvatarPictureSize, _customerSettings.DefaultAvatarEnabled, defaultPictureType:PictureType.Avatar); } model.Comments.Add(commentModel); } } }