예제 #1
0
        public ActionResult ProfileBlogPosts(string contactId, int?page)
        {
            Guid guid;

            if (!Guid.TryParse(contactId, out guid))
            {
                return(HttpNotFound());
            }

            var context = PortalCrmConfigurationManager.CreateServiceContext();

            var contact = context.CreateQuery("contact").FirstOrDefault(c => c.GetAttributeValue <Guid>("contactid") == guid);

            if (contact == null)
            {
                return(HttpNotFound());
            }

            var portal = PortalCrmConfigurationManager.CreatePortalContext();

            var blogDataAdapter = new AuthorWebsiteBlogAggregationDataAdapter(guid,
                                                                              new Adxstudio.Xrm.Blogs.PortalContextDataAdapterDependencies(portal, requestContext: Request.RequestContext));

            var profileViewModel = new ProfileViewModel
            {
                BlogCount = blogDataAdapter.SelectBlogCount(),
                User      = contact,
                Website   = portal.Website
            };

            profileViewModel.BlogPosts = new PaginatedList <IBlogPost>(page, profileViewModel.BlogCount, blogDataAdapter.SelectPosts);

            return(View(profileViewModel));
        }
예제 #2
0
        public ActionResult ProfileBlogPosts(string contactId, int?page)
        {
            Guid guid;

            if (!Guid.TryParse(contactId, out guid))
            {
                return(HttpNotFound());
            }

            var service = this.HttpContext.GetOrganizationService();
            var contact = service.RetrieveSingle(CreateContactQuery(guid));

            if (contact == null)
            {
                return(HttpNotFound());
            }

            var portal = PortalCrmConfigurationManager.CreatePortalContext();

            var dependencies    = new Adxstudio.Xrm.Blogs.PortalContextDataAdapterDependencies(portal, requestContext: Request.RequestContext);
            var blogDataAdapter = new AuthorWebsiteBlogAggregationDataAdapter(guid, dependencies);
            var website         = this.HttpContext.GetWebsite();

            var profileViewModel = new ProfileViewModel
            {
                BlogCount = blogDataAdapter.SelectBlogCount(),
                User      = contact,
                Website   = website.Entity
            };

            EnityEnablePermission(profileViewModel);
            profileViewModel.BlogPosts = new PaginatedList <IBlogPost>(page, profileViewModel.BlogCount,
                                                                       blogDataAdapter.SelectPosts);

            return(View(profileViewModel));
        }