/// <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; } }