private string GetSelectedTaxaItemsFilterExpression()
        {
            var selectedTaxaItemGuids = this.selectedTaxaItemsIds.Select(id => new Guid(id));
            List <Telerik.Sitefinity.Security.Model.User> allUsers = new List <Telerik.Sitefinity.Security.Model.User>();

            var profileType        = TypeResolutionService.ResolveType(this.ProfileTypeFullName);
            var userProfileManager = UserProfileManager.GetManager();
            var profileLinksQuery  = SitefinityQuery.Get(profileType, userProfileManager.Provider);
            var userInfoTaxas      = new List <TaxasUserInfo>();

            foreach (dynamic profilelinkquery in profileLinksQuery)
            {
                if (IsPropertyExist(profilelinkquery, "Departments"))
                {
                    var taxaIds  = profilelinkquery.Departments as TrackedList <System.Guid>;
                    var userInfo = profilelinkquery.User as User;
                    userInfoTaxas.Add(new TaxasUserInfo()
                    {
                        TaxanomyIds = taxaIds, UserInfo = userInfo
                    });
                }
            }

            foreach (var selectedTaxonId in selectedTaxaItemGuids)
            {
                foreach (var userInfoTaxon in userInfoTaxas)
                {
                    foreach (var userTaxaId in userInfoTaxon.TaxanomyIds)
                    {
                        if (selectedTaxonId == userTaxaId)
                        {
                            allUsers.Add(userInfoTaxon.UserInfo);
                            break;
                        }
                    }
                }
            }

            var noDuplicateUsers = allUsers.Distinct().ToList();

            List <Guid> userProfilesGuids = new List <Guid>();

            foreach (var user in noDuplicateUsers)
            {
                var currentProfile = this.Manager.GetUserProfile(user, this.ProfileTypeFullName);
                if (currentProfile != null && !userProfilesGuids.Contains(currentProfile.Id))
                {
                    userProfilesGuids.Add(currentProfile.Id);
                }
            }

            var selectedItemConditions        = userProfilesGuids.Select(id => "Id = {0}".Arrange(id.ToString("D")));
            var selectedItemsFilterExpression = string.Join(" OR ", selectedItemConditions);

            return(selectedItemsFilterExpression);
        }
        public override Telerik.Sitefinity.Security.Model.UserLink GetUserLink(Guid Id)
        {
            var query    = SitefinityQuery.Get <UserLink>(this);
            var userLink = query.Where(ul => ul.Id == Id).FirstOrDefault();

            userLink.MembershipManagerInfo = this.UserManagerInfo;
            userLink.ApplicationName       = this.ApplicationName;

            return(userLink);
        }
        /// <summary>
        /// Get a query of all products in this provider
        /// </summary>
        /// <returns>Query of all products</returns>
        public override IQueryable <ProductItem> GetProducts()
        {
            var appName = this.ApplicationName;

            var query =
                SitefinityQuery
                .Get <ProductItem>(this, MethodBase.GetCurrentMethod())
                .Where(b => b.ApplicationName == appName);

            return(query);
        }
Exemplo n.º 4
0
        public IQueryable <LocationItem> GetLocations()
        {
            var appName = this.ApplicationName;

            var query =
                SitefinityQuery
                .Get <LocationItem>(this, MethodBase.GetCurrentMethod())
                .Where(b => b.ApplicationName == appName);

            return(query);
        }
Exemplo n.º 5
0
        public override IQueryable <FundingModel> GetFundingRequests()
        {
            var appName = this.ApplicationName;

            var query =
                SitefinityQuery
                .Get <FundingModel>(this, MethodBase.GetCurrentMethod())
                .Where(b => b.ApplicationName == appName);

            return(query);
        }
        public override void Delete(Telerik.Sitefinity.Security.Model.UserLink item)
        {
            var scope = this.GetContext();
            // associate with context
            var userLink = SitefinityQuery.Get <UserLink>(this).Where(r => r.Id == item.Id).FirstOrDefault();

            if (userLink == null)
            {
                throw new ArgumentNullException("item", "User link not found");
            }

            scope.Remove(userLink);
        }
 /// <summary>
 /// Gets a query of all the AmpPages items.
 /// </summary>
 /// <returns>The AmpPages items.</returns>
 public override IQueryable <AmpPage> GetAmpPages()
 {
     return(SitefinityQuery
            .Get <AmpPage>(this, MethodBase.GetCurrentMethod())
            .Where(b => b.ApplicationName == this.ApplicationName));
 }
Exemplo n.º 8
0
        /// <summary>
        /// Gets a query of all language data items
        /// </summary>
        /// <returns></returns>
        public IQueryable <Telerik.Sitefinity.Lifecycle.LanguageData> GetLanguageData()
        {
            var appName = this.ApplicationName;

            return(SitefinityQuery.Get <LanguageData>(this).Where(c => c.ApplicationName == appName));
        }