private void PrepareStoresMappingModel(BlogPostModel model, BlogPost blogPost, bool excludeProperties) { if (model == null) throw new ArgumentNullException("model"); model.AvailableStores = _storeService .GetAllStores() .Select(s => s.ToModel()) .ToList(); if (!excludeProperties) { if (blogPost != null) { model.SelectedStoreIds = _storeMappingService.GetStoresIdsWithAccess(blogPost); } else { model.SelectedStoreIds = new int[0]; } } }
protected void SaveStoreMappings(BlogPost blogPost, BlogPostModel model) { var existingStoreMappings = _storeMappingService.GetStoreMappings(blogPost); 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(blogPost, store.Id); } else { //removed role var storeMappingToDelete = existingStoreMappings.FirstOrDefault(sm => sm.StoreId == store.Id); if (storeMappingToDelete != null) _storeMappingService.DeleteStoreMapping(storeMappingToDelete); } } }
public ActionResult Edit(BlogPostModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageBlog)) return AccessDeniedView(); var blogPost = _blogService.GetBlogPostById(model.Id); if (blogPost == null) return RedirectToAction("List"); if (ModelState.IsValid) { blogPost = model.ToEntity(blogPost); blogPost.CreatedOnUtc = model.CreatedOnUtc; blogPost.StartDateUtc = model.StartDate; blogPost.EndDateUtc = model.EndDate; _blogService.UpdateBlogPost(blogPost); //search engine name var seName = blogPost.ValidateSeName(model.SeName, model.Title, true); _urlRecordService.SaveSlug(blogPost, seName, blogPost.LanguageId); //Stores _storeMappingService.SaveStoreMappings<BlogPost>(blogPost, model.SelectedStoreIds); NotifySuccess(_localizationService.GetResource("Admin.ContentManagement.Blog.BlogPosts.Updated")); return continueEditing ? RedirectToAction("Edit", new { id = blogPost.Id }) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form ViewBag.AllLanguages = _languageService.GetAllLanguages(true); //Store PrepareStoresMappingModel(model, blogPost, true); return View(model); }
public ActionResult Create() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageBlog)) return AccessDeniedView(); ViewBag.AllLanguages = _languageService.GetAllLanguages(true); var model = new BlogPostModel(); //Stores PrepareStoresMappingModel(model, null, false); //default values model.AllowComments = true; return View(model); }