Folders – папки
<< Click to Display Table of Contents >> Объектная модель > CoreEntities – администрирование Folders – папки |
Папки предназначены для группировки объектов системы для быстрого и удобного доступа к ним. Например, в папку можно поместить ссылки на все поручения по входящим документам от определенного контрагента.
Если у сотрудника есть полные права или права на изменение папки, то он может создавать в ней новые папки. Кроме того, в веб-клиенте можно создавать папки поиска, содержимое которых формируется автоматически, в соответствии с заданными критериями.
Для программной работы с папками в среде разработки предусмотрен репозиторий Sungero.CoreEntities.Folders. Работа с вычисляемыми и системными папками осуществляется через точку доступа SpecialFolders.
Для обращения к вычисляемым папкам в коде используется формат: <Код компании>.<Имя модуля>.SpecialFolders.<Имя вычисляемой папки>. Например, Sungero.RecordManagement.SpecialFolders.OnSigning. Подробнее см. в разделе «Пример создания вычисляемой папки».
Для создания, изменения и удаления используйте методы репозитория типа папки:
•создание, удаление, изменение сущности
•отображение карточки и списка сущностей
Свойства
Имя |
Тип |
Описание |
---|---|---|
Author |
Автор папки |
|
CanModifyContent |
bool |
Признак того, что у папки можно изменять содержимое |
Created |
Nullable<DateTime> |
Дата создания папки |
HasSubfolders |
bool |
Признак того, что у папки есть подпапки |
History |
История работы с папкой |
|
Id |
long |
Идентификатор. Присваивается автоматически при создании папки. Состоит из цифр. Уникален в рамках одной системы, но между разными системами может отличаться. Идентификатор есть у любой папки, которую пользователь создал в системе |
Info |
Информация о типе сущности «Папка» |
|
IsComputable |
bool |
Признак того, что папка является вычисляемой |
IsSpecial |
Nullable<bool> |
Признак того, что папка является специальной |
Items |
ICollection<IEntity> |
Содержимое папки |
MainEntityType |
Guid |
Идентификатор содержимого папки. От типа зависит внешний вид папки |
Name |
string |
Имя папки |
Note |
string |
Примечание |
State |
Состояние папки |
|
Uid |
Nullable<Guid> |
Уникальный идентификатор папки как для одной системы, так и для разных систем. Состоит из шестнадцатеричных цифр и обособлен фигурными скобками. По умолчанию Uid пустой. Разработчик заполняет его, например, для папок, которые создаются при инициализации модуля |
Пример. Работа с папками (создание, получение, удаление)
// Создать папку проекта.
if (_obj.Folder == null)
{
var folder = Folders.Create();
folder.Name = _obj.ShortName;
folder.Items.Add(_obj);
_obj.Folder = folder;
// Выдать права на чтение папки команде проекта.
_obj.Folder.AccessRights.Grant(_obj.MainTeamGroup, DefaultAccessRightsTypes.Read);
}
// Вложить папку проекта в корневую папку или в папку ведущего проекта.
var projectsFolder = Folders.GetAll().Single(f => f.Uid == Constants.Module.ProjectFolders.ProjectFolderUid);
if (_obj.State.Properties.LeadingProject.IsChanged)
{
// Удалить папку проекта из папки предыдущего проекта.
var leading = _obj.State.Properties.LeadingProject.OriginalValue;
if (leading != null && !Equals(leading, _obj.LeadingProject) && leading.Folder != null && leading.Folder.Items.Contains(_obj.Folder))
leading.Folder.Items.Remove(_obj.Folder);
}
if (_obj.LeadingProject == null)
{
if (projectsFolder != null && !projectsFolder.Items.Contains(_obj.Folder))
projectsFolder.Items.Add(_obj.Folder);
}
else
{
// Удалить папку проекта из корневой папки.
if (projectsFolder != null)
projectsFolder.Items.Remove(_obj.Folder);
// Добавить папку проекта в папку ведущего проекта.
if (_obj.LeadingProject.Folder != null && !_obj.LeadingProject.Folder.Items.Contains(_obj.Folder))
_obj.LeadingProject.Folder.Items.Add(_obj.Folder);
}
© Компания Directum, 2024 |