Exemple #1
0
        public ACDetailsDTO GetAccountDetails(IAdobeConnectProxy provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }

            CommonInfoResult commonInfo = provider.GetCommonInfo();

            if (!commonInfo.Success)
            {
                _logger.ErrorFormat("GetAccountDetails.GetCommonInfo. AC error:{0}.", commonInfo.Status.GetErrorInfo());
                return(null);
            }

            if (commonInfo.CommonInfo.AccountId.HasValue)
            {
                FieldCollectionResult fields = provider.GetAclFields(commonInfo.CommonInfo.AccountId.Value);

                if (fields.Status.Code != StatusCodes.ok)
                {
                    _logger.ErrorFormat("GetAccountDetails.GetAclFields. AC error. Code:{0}.SubCode:{1}.", fields.Status.Code, fields.Status.SubCode);
                    return(null);
                }

                var dto = new ACDetailsDTO
                {
                    Version          = commonInfo.CommonInfo.Version,
                    PasswordPolicies = ParsePasswordPolicies(fields),
                    Customization    = ParseCustomization(fields, provider),
                    TimeZoneJavaId   = commonInfo.CommonInfo.TimeZoneJavaId,
                };
                //var timeZone = GetTimeZone(commonInfo.CommonInfo);
                int session;
                int.TryParse(GetField(fields, "web-session-timeout-minutes"), out session);
                dto.SessionTimeout = session;

                //dto.SetTimeZone(timeZone);

                return(dto);
            }

            _logger.Error("GetAccountDetails. Account is NULL");
            return(null);
        }
Exemple #2
0
        public bool TestACConnection(ConnectionTestDTO test, out string info,
                                     out bool loginSameAsEmail)
        {
            if (test == null)
            {
                throw new ArgumentNullException(nameof(test));
            }

            loginSameAsEmail = false;
            //sharedTemplatesFolderScoId = null;
            info = string.Empty;

            if (string.IsNullOrWhiteSpace(test.password))
            {
                info = "Password is required";
                return(false);
            }

            if (!TestDomainFormat(test, out info))
            {
                return(false);
            }

            var provider = new AdobeConnectProvider(new ConnectionDetails(new Uri(test.domain)));
            var result   = provider.Login(new UserCredentials(test.login, test.password));

            if (!result.Success)
            {
                string error = FormatErrorFromAC(result);
                if (!string.IsNullOrWhiteSpace(error))
                {
                    info = error;
                }

                return(false);
            }

            CommonInfoResult commonInfo = provider.GetCommonInfo();

            if (!commonInfo.Success)
            {
                _logger.ErrorFormat("GetPasswordPolicies.GetUserInfo. AC error. {0}.", commonInfo.Status.GetErrorInfo());
                info = commonInfo.Status.GetErrorInfo();
                return(false);
            }

            if (commonInfo.CommonInfo.AccountId.HasValue)
            {
                FieldCollectionResult fields = provider.GetAclFields(commonInfo.CommonInfo.AccountId.Value);

                if (!fields.Success)
                {
                    _logger.ErrorFormat("GetPasswordPolicies.GetAclFields. AC error. {0}.", fields.Status.GetErrorInfo());
                    info = fields.Status.GetErrorInfo();
                    return(false);
                }

                //ScoContentCollectionResult sharedTemplates = provider.GetContentsByType("shared-meeting-templates");
                //if (!sharedTemplates.Success)
                //{
                //    logger.ErrorFormat("GetPasswordPolicies.get shared-meeting-templates. AC error. {0}.", sharedTemplates.Status.GetErrorInfo());
                //    info = sharedTemplates.Status.GetErrorInfo();
                //    return false;
                //}

                //sharedTemplatesFolderScoId = sharedTemplates.ScoId;

                string setting = GetField(fields, "login-same-as-email");
                loginSameAsEmail = string.IsNullOrEmpty(setting) || "YES".Equals(setting, StringComparison.OrdinalIgnoreCase);
                return(true);
            }

            _logger.Error("GetPasswordPolicies. Account is NULL. Check Adobe Connect account permissions. Admin account expected.");
            info = "Check Adobe Connect account permissions. Admin account expected.";
            return(false);
        }