예제 #1
0
        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();
            }
        }
예제 #2
0
        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);
                }
            }
        }
예제 #3
0
        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();
        }
예제 #4
0
        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());
            }
        }