Esempio n. 1
0
        public IntegrationProvider GetByGroupId(int groupId)
        {
            var provider = Collection.FirstOrDefault(c => c.TEGroupId == groupId);

            if (provider == null)
            {
                var mappedGroups = Collection.Select(c => c.TEGroupId).ToList();
                var group        = TEHelper.GetGroupById(groupId);
                var relativeUrl  = new StringBuilder();

                while (group.Id.HasValue && group.ParentGroupId >= 0 && !mappedGroups.Contains(group.Id.Value))
                {
                    relativeUrl.Insert(0, string.Format("{0}/", group.Key));
                    group = TEHelper.GetGroupById(group.ParentGroupId);
                }

                provider = Collection.FirstOrDefault(c => c.TEGroupId == group.Id);

                if (provider != null)
                {
                    provider.TEGroupId = groupId;
                    provider.SPSiteURL = string.Format("{0}/{1}", provider.SPSiteURL.TrimEnd('/'), relativeUrl);
                    provider.Initialize();
                    return(provider);
                }
            }

            return(provider);
        }