Esempio n. 1
0
        /// <summary>
        /// Проверка, есть ли у текущего пользователя сертификат сервиса обмена.
        /// </summary>
        /// <param name="businessUnitBox">Абонентский ящик нашей организации.</param>
        /// <returns>True, если есть, иначе False.</returns>
        public virtual bool HasCurrentUserExchangeServiceCertificate(IBusinessUnitBox businessUnitBox)
        {
            // Получить доступные сертификаты.
            var availableCertificates = Certificates.GetAllCached().Where(x => Equals(x.Owner, Users.Current) && x.Enabled == true);

            // Проверить наличие сертификатов ответственного, если сервис предоставляет такую возможность.
            if (businessUnitBox.HasExchangeServiceCertificates == true)
            {
                availableCertificates = availableCertificates.Where(x => businessUnitBox.ExchangeServiceCertificates.Any(z => z.Certificate.Equals(x)));
            }

            return(availableCertificates.Any());
        }
Esempio n. 2
0
        /// <summary>
        /// Получить сертификат сервиса обмена для текущего сотрудника, используя системный диалог выбора сертификата.
        /// </summary>
        /// <param name="box">Абонентский ящик.</param>
        /// <param name="employee">Сотрудник.</param>
        /// <returns>Сертификат.</returns>
        public static ICertificate GetCurrentUserExchangeCertificate(ExchangeCore.IBoxBase box, Company.IEmployee employee)
        {
            var businessUnitBox = ExchangeCore.PublicFunctions.BoxBase.GetRootBox(box);
            var certificates    = businessUnitBox.HasExchangeServiceCertificates == true
        ? businessUnitBox.ExchangeServiceCertificates.Where(x => Equals(x.Certificate.Owner, employee) && x.Certificate.Enabled == true).Select(x => x.Certificate)
        : Certificates.GetAllCached().Where(x => Equals(x.Owner, employee) && x.Enabled == true).AsEnumerable();

            certificates = certificates.GroupBy(x => x.Thumbprint).Select(x => x.First());

            if (certificates.Count() > 1)
            {
                return(certificates.ShowSelectCertificate());
            }

            return(certificates.FirstOrDefault());
        }