/// <summary> /// Adds a New Category /// Level: Logic /// </summary> /// <param name="Category">The category</param> /// <param name="ImageURL">The image url</param> /// <param name="CategoryFK">The Parent ID</param> /// <returns>Category Result Enum</returns> public CategoryResult AddCategory(string Category, string ImageURL, int CategoryFK) { try { CategoriesRepository myRepository = new CategoriesRepository(); if (CategoryFK > 0) { //is child if(!myRepository.ChildCategoryExists(Category, CategoryFK)) { Common.Category myCategory = new Category(); myCategory.Category1 = Category; myCategory.ImageURL = ImageURL; myCategory.CategoryFK = CategoryFK; myRepository.AddCategory(myCategory); return CategoryResult.Successful; } else { return CategoryResult.Exists; } } else if (CategoryFK == 0) { //is parent if (!myRepository.ParentCategoryExists(Category)) { Common.Category myCategory = new Category(); myCategory.Category1 = Category; myCategory.ImageURL = ImageURL; myCategory.CategoryFK = null; myRepository.AddCategory(myCategory); return CategoryResult.Successful; } else { return CategoryResult.Exists; } } else { return CategoryResult.Exists; } } catch (Exception Exception) { throw Exception; } }
/// <summary> /// Assigns a category as a parent category /// Level: Logic /// </summary> /// <param name="CategoryID">The category id</param> /// <param name="Category">The category</param> /// <param name="ImageURL">The image url</param> /// <returns>True if successful, else false</returns> public bool AssignCategoryAsParent(int CategoryID, string Category, string ImageURL) { try { CategoriesRepository myRepository = new CategoriesRepository(); if ((ImageURL == null) && (Category != null)) { if ((!myRepository.CheckForAssignedProducts(CategoryID)) & (!myRepository.ParentCategoryExists(Category))) { myRepository.AssignCategoryAsParent(CategoryID, Category, ImageURL); return true; } else { return false; } } else if ((ImageURL != null) && (Category != null)) { Category myCategoryToUpdate = RetrieveCategoryByID(CategoryID); Category myCategoryToCompare = myRepository.Entities.Categories.SingleOrDefault(c => c.Category1 == Category); if ((myCategoryToCompare != null) && (myCategoryToUpdate != null)) { if (myCategoryToUpdate.Id == myCategoryToCompare.Id) { if (!myRepository.CheckForAssignedProducts(CategoryID)) { myRepository.AssignCategoryAsParent(CategoryID, Category, ImageURL); return true; } else { return false; } } else { if ((!myRepository.CheckForAssignedProducts(CategoryID)) & (!myRepository.ParentCategoryExists(Category))) { myRepository.AssignCategoryAsParent(CategoryID, Category, ImageURL); return true; } else { return false; } } } else { if ((!myRepository.CheckForAssignedProducts(CategoryID)) & (!myRepository.ParentCategoryExists(Category))) { myRepository.AssignCategoryAsParent(CategoryID, Category, ImageURL); return true; } else { return false; } } } else { return false; } } catch (Exception Exception) { throw Exception; } }