VerificationAssignmentHandlers.cs 1010 Bytes
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.CaseArchiving.VerificationAssignment;

namespace DirRX.CaseArchiving
{

  partial class VerificationAssignmentAddresseePropertyFilteringServerHandler<T>
  {

    public virtual IQueryable<T> AddresseeFiltering(IQueryable<T> query, Sungero.Domain.PropertyFilteringEventArgs e)
    {
      // Ограничить список сотрудников ролью Делопроизводители.
      var clerksRole = Sungero.CoreEntities.Roles
        .GetAll(x => Equals(x.Sid.Value, DirRX.CaseArchiving.PublicConstants.Module.Initialize.ClerksRole))
        .SingleOrDefault();

      if (clerksRole == null)
        return null;

      var clerkIds = clerksRole.RecipientLinks.Where(x => x.Member != null && Sungero.Company.Employees.Is(x.Member) && x.Member.Id != _obj.Id).Select(x => x.Member.Id).ToList();
      return query.Where(x => clerkIds.Contains(x.Id));
      }
  }

}