public void RemoveCategoriesFromCategorableEntity(ICategorableEntity entity) { var entityIsAlbum = entity as Album; if (entityIsAlbum != null) { var album = this.Data.Albums.GetById(entityIsAlbum.Id); var categories = album.Categories; foreach (var category in categories) { category.Albums.Remove(album); } album.Categories.Clear(); } var entityIsArticle = entity as Article; if (entityIsArticle != null) { var article = this.Data.Articles.GetById(entityIsArticle.Id); var categories = article.Categories; foreach (var category in categories) { category.Articles.Remove(article); } article.Categories.Clear(); } }
public void SaveCategorableToCategories(ICategorableEntity entity, ICollection<long> categoriesIds) { if (categoriesIds.Count > 0) { foreach (var catId in categoriesIds) { var dbCategory = this.Data.Categories.All().FirstOrDefault(c => c.Id == catId); if (dbCategory == null) { continue; } this.SaveCategoryToCategorableEntity(entity, dbCategory); } } }
private void SaveCategoryToCategorableEntity(ICategorableEntity tagableEntity, Category dbCategory) { // Should make it more Generic!!!! //var type = tagableEntity.GetType(); //this.Data.GetDeletableEntityRepository<tagableEntity as de>() var entityIsAlbum = tagableEntity as Album; if (entityIsAlbum != null) { var album = this.Data.Albums.GetById(entityIsAlbum.Id); album.Categories.Add(dbCategory); this.Data.Albums.Update(album); dbCategory.Albums.Add(album); } var entityIsArticle = tagableEntity as Article; if (entityIsArticle != null) { var article = this.Data.Articles.GetById(entityIsArticle.Id); article.Categories.Add(dbCategory); this.Data.Articles.Update(article); dbCategory.Articles.Add(article); } this.Data.Categories.Update(dbCategory); this.Data.SaveChanges(); }
public void SaveCategorableEntityToCategories(ICategorableEntity entity, ICollection<CategoryCheckboxViewModel> categories) { this.RemoveCategoriesFromCategorableEntity(entity); foreach (var parent in categories) { this.SaveCategorableToCategories(entity, parent.Children.Where(c => c.IsChecked).Select(c => c.Id).ToList()); } }