/// <summary> /// Get private category /// </summary> /// <param name="userId"></param> /// <returns></returns> public static Category GetPrivateCategory(int userId) { var category = new Category() { Id = 0, UserId = userId, IsPublic = false, CanEdit = true, Name = "Private" }; category.CanView = PermissionBussiness.CanView(category, userId); category.Documents = category.CanView ? DocumentBussiness.GetUserPrivateDocument(userId) : new List <Document>(); return(category); }
/// <summary> /// Get all public categories and user private docs /// </summary> /// <param name="userId">userId for permission</param> /// <returns></returns> public static List <Category> GetPublicCategories(int userId) { // get all public categories var categories = DataAccess.GetAllCategories().ToList(); // get all data in categories foreach (var category in categories) { // get view permission category.CanView = PermissionBussiness.CanView(category, userId); // do not get documents if don't have view permission if (!category.CanView) { category.Documents = new List <Document>(); continue; } // get documents var documents = DocumentBussiness.GetDocumentInCategory(category.Id, userId); // check permission var canEdit = PermissionBussiness.CanEdit(category.Id, userId); // replace reference documents if (canEdit) { documents = documents.GetReferenceDocuments(userId).ToList(); } category.Documents = documents; } // add private category categories.Add(GetPrivateCategory(userId)); return(categories); }