Esempio n. 1
0
        public PortalViewContext(ISettingDataAdapter settings, ISiteMarkerDataAdapter siteMarkers, ISnippetDataAdapter snippets,
                                 IWebLinkSetDataAdapter webLinks, IAdDataAdapter ads, IPollDataAdapter polls, IEntityUrlProvider urlProvider,
                                 SiteMapProvider siteMapProvider = null, string portalName = null, RequestContext requestContext = null)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            if (siteMarkers == null)
            {
                throw new ArgumentNullException("siteMarkers");
            }

            if (snippets == null)
            {
                throw new ArgumentNullException("snippets");
            }

            if (urlProvider == null)
            {
                throw new ArgumentNullException("urlProvider");
            }

            if (webLinks == null)
            {
                throw new ArgumentNullException("webLinks");
            }

            if (ads == null)
            {
                throw new ArgumentNullException("ads");
            }

            if (polls == null)
            {
                throw new ArgumentNullException("polls");
            }

            SiteMapProvider = siteMapProvider ?? (SiteMap.Enabled ? SiteMap.Provider : null);
            PortalName      = portalName;
            RequestContext  = requestContext;

            Settings    = settings;
            SiteMarkers = siteMarkers;
            Snippets    = snippets;
            UrlProvider = urlProvider;
            WebLinks    = webLinks;

            Ads = ads;

            Polls = polls;

            _currentSiteMapNode          = new Lazy <SiteMapNode>(GetCurrentSiteMapNode, LazyThreadSafetyMode.None);
            _currentSiteMapNodeAncestors = new Lazy <SiteMapNode[]>(GetCurrentSiteMapNodeAncestors, LazyThreadSafetyMode.None);
            _entity  = new Lazy <IPortalViewEntity>(GetEntity, LazyThreadSafetyMode.None);
            _user    = new Lazy <IPortalViewEntity>(GetUser, LazyThreadSafetyMode.None);
            _website = new Lazy <IPortalViewEntity>(GetWebsite, LazyThreadSafetyMode.None);
            _websiteAccessPermissionProvider = new Lazy <IWebsiteAccessPermissionProvider>(GetWebsiteAccessPermissionProvider, LazyThreadSafetyMode.None);
        }
Esempio n. 2
0
        public BlogPostFactory(OrganizationServiceContext serviceContext, IEntityUrlProvider urlProvider, EntityReference website, IBlogArchiveApplicationPathGenerator archiveApplicationPathGenerator)
        {
            if (serviceContext == null)
            {
                throw new ArgumentNullException("serviceContext");
            }

            if (urlProvider == null)
            {
                throw new ArgumentNullException("urlProvider");
            }

            if (website == null)
            {
                throw new ArgumentNullException("website");
            }

            if (website.LogicalName != "adx_website")
            {
                throw new ArgumentException(string.Format("Value must have logical name {0}.", website.LogicalName), "website");
            }

            if (archiveApplicationPathGenerator == null)
            {
                throw new ArgumentNullException("archiveApplicationPathGenerator");
            }

            _serviceContext = serviceContext;
            _urlProvider    = urlProvider;
            _website        = website;
            _archiveApplicationPathGenerator = archiveApplicationPathGenerator;
        }
        public static ApplicationPath GetApplicationPath(
            this IEntityUrlProvider entityUrlProvider,
            OrganizationServiceContext context,
            Entity entity,
            string partialUrlLogicalName,
            Relationship parentEntityRelationship,
            string parentEntityName,
            Func <OrganizationServiceContext, Entity, ApplicationPath> getParentApplicationPath,
            string siteMarker = null)
        {
            var parentEntity = entity.GetRelatedEntity(context, parentEntityRelationship);

            var partialUrlAttributeValue = entity.GetAttributeValue <object>(partialUrlLogicalName);
            var partialUrl = partialUrlAttributeValue == null ? null : partialUrlAttributeValue.ToString();

            if (parentEntity == null)
            {
                if (siteMarker == null)
                {
                    return(ApplicationPath.FromPartialPath(partialUrl));
                }

                var siteMarkerPage = context.GetPageBySiteMarkerName(context.GetWebsite(entity), siteMarker);
                var siteMarkerUrl  = context.GetApplicationPath(siteMarkerPage);

                return(JoinApplicationPath(siteMarkerUrl.PartialPath, partialUrl));
            }

            var parentUrl = getParentApplicationPath(context, parentEntity);

            var url = JoinApplicationPath(parentUrl.PartialPath, partialUrl);

            return(url);
        }
        public DataAdapterDependencies(OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider,
                                       IEntityUrlProvider urlProvider, EntityReference website, EntityReference portalUser = null, RequestContext requestContext = null)
        {
            if (serviceContext == null)
            {
                throw new ArgumentNullException("serviceContext");
            }

            if (securityProvider == null)
            {
                throw new ArgumentNullException("securityProvider");
            }

            if (urlProvider == null)
            {
                throw new ArgumentNullException("urlProvider");
            }

            if (website == null)
            {
                throw new ArgumentNullException("website");
            }

            _serviceContext   = serviceContext;
            _securityProvider = securityProvider;
            _urlProvider      = urlProvider;
            _website          = website;
            _portalUser       = portalUser;
            _requestContext   = requestContext;
        }
Esempio n. 5
0
            public SingleForumThreadUrlProvider(IEntityUrlProvider urlProvider, Lazy <string> forumUrl) : base(urlProvider)
            {
                if (forumUrl == null)
                {
                    throw new ArgumentNullException("forumUrl");
                }

                _forumUrl = forumUrl;
            }
Esempio n. 6
0
            public ForumThreadUrlProvider(IEntityUrlProvider urlProvider)
            {
                if (urlProvider == null)
                {
                    throw new ArgumentNullException("urlProvider");
                }

                _urlProvider = urlProvider;
            }
 public DataAdapterDependencies(
     OrganizationServiceContext serviceContext,
     ICrmEntitySecurityProvider securityProvider,
     IEntityUrlProvider urlProvider,
     IPortalContext portalContext,
     string portalName             = null,
     RequestContext requestContext = null)
     : base(serviceContext, securityProvider, urlProvider, portalContext, requestContext)
 {
     PortalName = portalName;
 }
 public DataAdapterDependencies(OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider,
                                IEntityUrlProvider urlProvider, IPortalContext portalContext) : this(
         serviceContext,
         securityProvider,
         urlProvider,
         portalContext.Website == null ? null : portalContext.Website.ToEntityReference(),
         portalContext.User == null ? null : portalContext.User.ToEntityReference())
 {
     if (portalContext == null)
     {
         throw new ArgumentNullException("portalContext");
     }
 }
 private static IEnumerable <IWebLink> CreateWebLinkSubTree(OrganizationServiceContext serviceContext, EntityReference entity, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider, ILookup <Guid, Entity> childWebLinkLookup)
 {
     return(childWebLinkLookup[entity.Id]
            .Select(e => CreateWebLink(serviceContext, e, securityProvider, urlProvider, childWebLinkLookup)));
 }
 private static IWebLink CreateWebLink(OrganizationServiceContext serviceContext, Entity entity, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider, ILookup <Guid, Entity> childWebLinkLookup)
 {
     return(new WebLink(
                entity,
                new PortalViewEntity(serviceContext, entity, securityProvider, urlProvider),
                urlProvider.GetApplicationPath(serviceContext, entity),
                CreateWebLinkSubTree(serviceContext, entity.ToEntityReference(), securityProvider, urlProvider, childWebLinkLookup)));
 }
 public DataAdapterDependencies(OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider,
                                IEntityUrlProvider urlProvider, EntityReference website, EntityReference portalUser = null) : this
     (serviceContext, securityProvider, urlProvider, website, portalUser, null)
 {
 }
Esempio n. 12
0
 public DataAdapterDependencies(OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider, IPortalContext portalContext) : base(serviceContext, securityProvider, urlProvider, portalContext)
 {
 }
Esempio n. 13
0
        public PortalViewEntity(OrganizationServiceContext serviceContext, Entity entity, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider)
        {
            if (serviceContext == null)
            {
                throw new ArgumentNullException("serviceContext");
            }

            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }

            if (securityProvider == null)
            {
                throw new ArgumentNullException("securityProvider");
            }

            if (urlProvider == null)
            {
                throw new ArgumentNullException("urlProvider");
            }

            Entity          = entity;
            EntityReference = entity.ToEntityReference();

            _description    = new Lazy <string>(GetDescription, LazyThreadSafetyMode.None);
            _editable       = new Lazy <bool>(() => TryAssertEditable(serviceContext, entity, securityProvider), LazyThreadSafetyMode.None);
            _serviceContext = serviceContext;
            _url            = new Lazy <string>(() => urlProvider.GetUrl(serviceContext, entity));
        }
        public ActionResult GetIndexView(string number, OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider)
        {
            var category = serviceContext.RetrieveSingle("category",
                                                         FetchAttribute.All,
                                                         new Condition("categorynumber", ConditionOperator.Equal, number));

            if (category == null)
            {
                return(RedirectToPageNotFound());
            }

            if (!securityProvider.TryAssert(serviceContext, category, CrmEntityRight.Read))
            {
                return(RedirectToAccessDeniedPage());
            }
            var categoryDataAdapter = new CategoryDataAdapter(category);

            // Retrieve related articles from knowledgearticlescategories
            var relatedArticles = categoryDataAdapter.SelectRelatedArticles();

            // Retrieve Child Categories
            var childCategories   = categoryDataAdapter.SelectChildCategories();
            var categoryViewModel = new CategoryViewModel
            {
                RelatedArticles = relatedArticles,
                ChildCategories = childCategories,
                Number          = category.GetAttributeValue <string>("categorynumber"),
                Title           = category.GetAttributeValue <string>("title")
            };

            return(View(categoryViewModel));
        }
 public DataAdapterDependencies(OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider, IPortalContext portalContext, ILatestPostUrlProvider postUrlProvider = null, string portalName = null, RequestContext requestContext = null)
     : base(serviceContext, securityProvider, urlProvider, portalContext)
 {
     _postUrlProvider = postUrlProvider ?? new AnchorLatestPostUrlProvider();
     PortalName       = portalName;
     _requestContext  = requestContext;
 }