/// <summary>
        /// Получить представление видов и категорий документов.
        /// </summary>
        /// <param name="signSetting">Право подписи.</param>
        /// <returns>Строковое представление видов и категорий документов.</returns>
        private string GetDocumentKindsAndCategoriesPresentation(ISignatureSetting signSetting)
        {
            var presentation = new StringBuilder();

            // Виды документов.
            var name = SignatureSettings.Info.Properties.DocumentKinds.LocalizedName;
            var documentFlowLocalizedValue = SignatureSettings.Info.Properties.DocumentFlow.GetLocalizedValue(signSetting.DocumentFlow.Value);
            var defaultValue = signSetting.DocumentFlow == SignatureSetting.DocumentFlow.All
        ? Reports.Resources.ApprovalRuleCardReport.All
        : Reports.Resources.ApprovalRuleCardReport.AllKindsFormat(documentFlowLocalizedValue);
            var items = this.FormatStringsForPresentation(signSetting.DocumentKinds.Select(x => x.DocumentKind.Name));

            this.UpdateCellPresentation(ref presentation, name, items, defaultValue);

            // Категории договоров.
            if (Functions.SignatureSetting.GetPossibleCashedCategories(signSetting).Any() ||
                signSetting.Categories.Any())
            {
                presentation.AppendLine(string.Empty);
                name         = SignatureSettings.Info.Properties.Categories.LocalizedName;
                defaultValue = Reports.Resources.ApprovalRuleCardReport.All;
                items        = this.FormatStringsForPresentation(signSetting.Categories.Select(x => x.Category.Name));
                this.UpdateCellPresentation(ref presentation, name, items, defaultValue);
            }

            return(presentation.ToString());
        }
        /// <summary>
        /// Получить представление права подписи для таблицы.
        /// </summary>
        /// <param name="signSetting">Право подписи.</param>
        /// <returns>Строковое представление права подписи для таблицы.</returns>
        private string GetDisplayValuePresentation(ISignatureSetting signSetting)
        {
            var displayValue = new StringBuilder();

            displayValue.AppendFormat("<b>{0}</b>", signSetting.DisplayValue);

            // Добавить должность (если подписывающий сотрудник).
            var employee = Sungero.Company.Employees.As(signSetting.Recipient);

            if (employee != null && employee.JobTitle != null)
            {
                displayValue.AppendFormat(" ({0})", employee.JobTitle.Name.Trim());
            }
            displayValue.AppendLine();

            // Основание.
            displayValue.AppendLine();
            displayValue.AppendLine(string.Format("{0}: {1}", SignatureSettings.Info.Properties.Reason.LocalizedName,
                                                  SignatureSettings.Info.Properties.Reason.GetLocalizedValue(signSetting.Reason)));

            // Приоритет.
            displayValue.AppendLine();
            displayValue.AppendLine(string.Format("{0}: {1}", SignatureSettings.Info.Properties.Priority.LocalizedName,
                                                  signSetting.Priority ?? 0));

            return(displayValue.ToString());
        }
        /// <summary>
        /// Получить представление НОР и подразделений права подписи.
        /// </summary>
        /// <param name="signSetting">Право подписи.</param>
        /// <returns>Строковой представление НОР и подразделений права подписи.</returns>
        private string GetBusinessUnitsAndDepartmentsPresentation(ISignatureSetting signSetting)
        {
            var presentation = new StringBuilder();
            var defaultValue = Reports.Resources.ApprovalRuleCardReport.All;

            // Наши организации.
            var name  = SignatureSettings.Info.Properties.BusinessUnits.LocalizedName;
            var items = this.FormatStringsForPresentation(signSetting.BusinessUnits.Select(x => x.BusinessUnit.Name));

            this.UpdateCellPresentation(ref presentation, name, items, defaultValue);

            // Подразделения.
            presentation.AppendLine();
            name  = SignatureSettings.Info.Properties.Departments.LocalizedName;
            items = this.FormatStringsForPresentation(signSetting.Departments.Select(x => x.Department.Name));
            this.UpdateCellPresentation(ref presentation, name, items, defaultValue);

            return(presentation.ToString());
        }