IRoleModelService — интерфейс

Сервис для работы с Конструктором ролей.

Синтаксис

public interface IRoleModelService

Свойства

Имя Описание

RolesDictionary

Возвращает ссылку на объектную модель конструктора ролей.

Методы

Имя Описание

AddCondition(RoleModelRoleConditionGroup)

Создаёт условие в переданной группе условий для роли.

AddConditionGroup(RoleModelRoleConditionGroup)

Создаёт группу условий в переданной корневой группе.

AddCustomOperation(String, String)

Создаёт новую пользовательскую операцию.

AddCustomParameter(String, RoleModelCustomParameterType)

Создаёт новый пользовательский параметр.

AddLink(RoleModelCardKindRoleSetting, StatesOperation, RoleModelRole, StatesState, RoleModelOperationStatus)

Добавляет в настройки соответствие между операцией и состоянием.

AddRootConditionGroup(RoleModelRole)

Создаёт корневую группу условий.

CreateCardField(String)

Создаёт модель поля карточки в рамках ролевой модели.

CreateDayWorkStatus(RoleModelConditionValueDayWorkStatus, Guid)

Создаёт значение статуса дня для использования в условие.

CreateKindRoleSettings(KindsCardKind)

Добавляет указанный вид карточки в ролевую модель.

CreateRole(RoleModelCardKindRoleSetting)

Создаёт роль для вида карточки.

CreateTimeWorkStatus(RoleModelConditionValueTimeWorkStatus, Guid)

Создаёт значение со статусом времени для использования в условие.

DeleteRole(RoleModelRole)

Удаление роли.

FindKindCommonRoleSettings

Предоставляет доступ к контейнеру общих ролей.

GetConditionsByCardType(Guid)

Возвращает коллекцию условий ролевой модели для указанного типа карточки.

GetConditionValueDescription(RoleModelRoleCondition)

Создаёт строку описания из заданного условия ролевой модели.

GetDateValueDescription(Object)

Создаёт строку описания для объекта содержащего дату (обычная System.DateTime, либо дата ролевой модели — DocsVision.BackOffice.ObjectModel.RoleModelConditionDayWorkStatus).

GetDayOfWeekDescription(DayOfWeek)

Создаёт стандартную строку описания для дня недели.

GetDayStatusDescription(RoleModelConditionValueDayWorkStatus)

Создаёт стандартную строку описания для типа рабочего дня (выходной, рабочий).

GetKindRoleSettings(KindsCardKind)

Возвращает настройки ролевой модели для вида карточки.

GetLinks(BaseCard)

Возвращает соответствие между операциями и состояниями для переданной карточки.

GetLinks(Guid)

Возвращает соответствие между операциями и состояниями для карточки с указанным идентификатором.

GetOperationStatus(KindsCardKind, IEnumerable<RoleModelRole>, StatesState, StatesOperation)

Определяет статус (запрещена, разрешена, не разрешена) заданной операции для списка ролей. Приоритет имеет статус "Запрещена".

GetOrCreatePreferredCardKindSetting(KindsCardKind)

Создаёт или возвращает, в зависимости от существования, настройки ролевой модели для вида карточки.

GetPreferredCardKindSetting(KindsCardKind)

Возвращает настройки ролевой модели для вида карточки.

GetRoles(KindsCardKind)

Возвращает коллекцию ролей, применимых для заданного вида карточки.

GetTimeStatusDescription(RoleModelConditionValueTimeWorkStatus)

Возвращает локализованное название для заданного статуса рабочего времени.

GetTimeValueDescription(Object)

Возвращает сформированное строковое представление времени.

MakeRoleCommon(RoleModelRole)

Переводит роль в разряд общих, доступных для всех видов карточек.

MakeRoleNotCommon(RoleModelRole, KindsCardKind)

Привязывает роль к заданному виду карточек.

RemoveCardKindRoleSetting(KindsCardKind)

Удаляет настройки ролевой модели у переданного вида карточек.

ValidateRoles(KindsCardKind, IList<String>)

Получает список ошибок ролевой модели для заданного вида карточки.

Примеры

В примере создаётся роль, которая может быть использована для ограничения времени доступа к документам в выходные дни.

(1)

IRoleModelService roleModelService = objectContext.GetService<IRoleModelService>();

KindsCardKind kindsCardKind = objectContext.GetObject<KindsCardKind>(new Guid("8ACE1220-A452-455D-8EEB-9EDF9DC6E327")); (2)

RoleModelCardKindRoleSetting roleModelCardKindRoleSetting = roleModelService.GetOrCreatePreferredCardKindSetting(kindsCardKind);
RoleModelRole roleModelRole = roleModelService.CreateRole(roleModelCardKindRoleSetting);
roleModelRole.Name = "Работа по выходным"; (3)

roleModelRole.ConditionGroup.Operation = RoleModelRoleConditionGroupOperation.Or; (4)

RoleModelRoleCondition condition = roleModelService.AddCondition(roleModelRole.ConditionGroup);
condition.Parameter = RoleModelRoleConditionParameter.Today;
condition.Operation = RoleModelRoleConditionOperation.Equals;
condition.Value = System.DayOfWeek.Saturday; (5)

condition = roleModelService.AddCondition(roleModelRole.ConditionGroup);
condition.Parameter = RoleModelRoleConditionParameter.Today;
condition.Operation = RoleModelRoleConditionOperation.Equals;
condition.Value = System.DayOfWeek.Sunday; (6)

objectContext.AcceptChanges(); (7)

roleModelService.MakeRoleCommon(roleModelRole); (8)
1 Инициализация контекста объектов и получение сервиса.
2 Получение вида карточки "Документ".
3 Создание настроек для вида карточки.
4 Логическая операция между условиями — ИЛИ.
5 Создание первого условия (сегодня = суббота).
6 Создание второго условия (сегодня = воскресенье).
7 Сохранение изменений.
8 Отметим роль признаком "Общая", что позволит использовать её во всех карточках.