AccessRightsRuleServerFunctions.cs 1.15 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.Docflow.AccessRightsRule;

namespace Sungero.Docflow.Server
{
  partial class AccessRightsRuleFunctions
  {

    /// <summary>
    /// Запустить агент автоматической выдачи прав.
    /// </summary>
    [Remote]
    public static void EnqueueAccessRightsAgent()
    {
      Docflow.Jobs.GrantAccessRightsToDocuments.Enqueue();
    }
    
    /// <summary>
    /// Получить действующие правила назначения прав по виду документа.
    /// </summary>
    /// <param name="documentKind">Вид документа.</param>
    /// <returns>Правила назначения прав.</returns>
    [Public]
    public static IQueryable<IAccessRightsRule> GetAccessRightsRulesByDocumentKind(IDocumentKind documentKind)
    {
      var rules = AccessRightsRules.GetAll();
      return AccessRightsRules.GetAll(r => r.Status == Docflow.AccessRightsRule.Status.Active)
        .Where(r => r.DocumentKinds.Any(k => k.DocumentKind.Id == documentKind.Id));
    }
  }
}