/// <summary> /// Подобрать для документа подходящее хранилище. /// </summary> /// <param name="document">Документ.</param> /// <returns>Наиболее подходящее хранилище для документа.</returns> public virtual IStorage GetStorageByPolicies(IOfficialDocument document) { var policies = StoragePolicies.GetAllCached().Where(r => r.Status == Docflow.StoragePolicyBase.Status.Active && (document.DocumentKind == null || !r.DocumentKinds.Any() || r.DocumentKinds.Any(k => Equals(k.DocumentKind, document.DocumentKind)))); var policy = policies.OrderByDescending(p => p.Priority).FirstOrDefault(); if (policy != null) { return(policy.Storage); } return(null); }