コード例 #1
0
        /// <summary>
        /// Get profiles and nested objects as Claims list
        /// </summary>
        public List <BaseIdentification> GetClaims()
        {
            //Initializes claims list using app id and profile id
            var claims = new List <BaseIdentification> {
                new BaseIdentification(SsoClaimTypes.SsoProfile, ApplicationId + "|" + Id)
            };

            //Add AD groups
            if (ProfilesAndActiveDirectories.Count > 0)
            {
                claims.AddRange(ProfilesAndActiveDirectories
                                .Where(pad => pad.AdGroup != null)
                                .SelectMany(pad => pad.GetClaims()));
            }

            //Add Sso Groups and Services
            if (ProfilesAndServices.Count > 0)
            {
                claims.AddRange(ProfilesAndServices
                                .Where(pas => pas.Service != null)
                                .SelectMany(pas => pas.GetClaims()));
            }

            return(claims);
        }
コード例 #2
0
        /// <summary>
        /// Adds translations to profile and dependencies
        /// </summary>
        public void AddTranslations(IEnumerable <ApplicationTranslation> translations)
        {
            if (translations != default(IEnumerable <ApplicationTranslation>))
            {
                translations = translations
                               .Where(t => t.ApplicationId.ToLower() == ApplicationId.ToLower())
                               .ToList();

                var profileTranslationType = translations.FirstOrDefault(tt => tt.TranslationType.ParameterName == CommonTranslationParameter.TRANS_TP_EXC_GRUPO.ToString());

                //Set translation for profile name
                if (profileTranslationType != default(ApplicationTranslation))
                {
                    var profileTranslation = translations
                                             .FirstOrDefault(pt => pt.Key == Id && pt.TranslationTypeId == profileTranslationType.TranslationTypeId);

                    if (profileTranslation != default(ApplicationTranslation))
                    {
                        NameOrDescription = profileTranslation.NameOrDescription;
                    }
                }

                //Set translations for nested Services and Groups
                ProfilesAndServices.AsParallel().ForAll(pas =>
                {
                    if (pas.Service != null)
                    {
                        pas.Service.AddTranslations(translations);
                    }
                });
            }
        }