Пример #1
0
        protected virtual void BuildResultView()
        {
            Content   rootContent      = null;
            Exception controlException = null;

            try
            {
                // Elevation: it should be possible to search for content
                // under a folder where the user does not have explicit
                // permissions but on one of the child content may have.
                using (new SystemAccount())
                {
                    rootContent = GetModel() as Content;
                }

                if (rootContent != null)
                {
                    rootContent.ChildrenDefinition.AllChildren = AllChildren;
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex);
                controlException = ex;
            }

            var model = new ContentCollectionViewModel {
                State = this.State
            };

            var childCount = 0;

            if (rootContent != null)
            {
                try
                {
                    childCount = rootContent.Children.Count();
                }
                catch (Exception ex)
                {
                    Logger.WriteException(ex);
                    if (controlException == null)
                    {
                        controlException = ex;
                    }
                }
            }

            try
            {
                model.Pager   = GetPagerModel(childCount, State, string.Empty);
                model.Content = rootContent;
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex);
                if (controlException == null)
                {
                    controlException = ex;
                }

                //in case of error, set dummy pager model
                model.Pager = new PagerModel(0, State, string.Empty);
            }

            try
            {
                if (RenderingMode == RenderMode.Xslt)
                {
                    XmlModelData = model.ToXPathNavigator();
                }
                else
                {
                    var viewPath = RenderingMode == RenderMode.Native
                                       ? "/root/Global/Renderers/ContentCollectionView.ascx"
                                       : Renderer;

                    Control presenter = null;

                    try
                    {
                        presenter = Page.LoadControl(viewPath);
                    }
                    catch (Exception ex)
                    {
                        Logger.WriteException(ex);
                        if (controlException == null)
                        {
                            controlException = ex;
                        }
                    }

                    if (presenter != null)
                    {
                        Controls.Add(presenter);
                        PresenterClientId = presenter.ClientID;

                        var ccView = presenter as ContentCollectionView;
                        if (ccView != null)
                        {
                            ccView.Model = model;
                        }

                        if (rootContent != null)
                        {
                            var itemlist = presenter.FindControl(ContentListID);
                            if (itemlist != null)
                            {
                                try
                                {
                                    ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist,
                                                                                                        rootContent.
                                                                                                        Children);
                                }
                                catch (Exception ex)
                                {
                                    Logger.WriteException(ex);
                                    if (controlException == null)
                                    {
                                        controlException = ex;
                                    }
                                }
                            }
                            itemlist = presenter.FindControl("ViewDatasource");
                            if (itemlist != null)
                            {
                                try
                                {
                                    ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist,
                                                                                                        rootContent.Children);
                                }
                                catch (Exception ex)
                                {
                                    Logger.WriteException(ex);
                                    if (controlException == null)
                                    {
                                        controlException = ex;
                                    }
                                }
                            }
                        }

                        var itemPager = presenter.FindControl("ContentListPager");
                        if (itemPager != null)
                        {
                            try
                            {
                                ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemPager,
                                                                                                    model.Pager.PagerActions);
                            }
                            catch (Exception ex)
                            {
                                Logger.WriteException(ex);
                                if (controlException == null)
                                {
                                    controlException = ex;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex);
                if (controlException == null)
                {
                    controlException = ex;
                }
            }

            try
            {
                if (controlException != null)
                {
                    BuildErrorMessage(controlException);
                }
            }
            catch (Exception ex)
            {
                var errorText = SNSR.GetString(SNSR.Portlets.ContentCollection.ErrorLoadingContentView, HttpUtility.HtmlEncode(ex.Message));

                this.Controls.Clear();
                this.Controls.Add(new LiteralControl(errorText));
            }
        }
Пример #2
0
        protected virtual void BuildResultView()
        {
            Content modelData;

            try
            {
                modelData = GetModel() as Content;
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex);
                Controls.Clear();
                Controls.Add(new LiteralControl("ContentView error: " + ex.Message));
                return;
            }
            if (modelData != null)
            {
                modelData.AllChildren = AllChildren;
            }

            var model = new ContentCollectionViewModel {
                State = this.State
            };
            var childCount = modelData != null ? modelData.ChildCount : 0;
            var pm         = new PagerModel(childCount, State, string.Empty);

            model.Pager   = pm;
            model.Content = modelData;
            if (RenderingMode == RenderMode.Xslt)
            {
                try
                {
                    XmlModelData = model.ToXPathNavigator();
                }
                catch (Exception ex)
                {
                    Logger.Write(ex.ToString());
                    Logger.WriteException(ex);
                }
            }
            else
            {
                var viewPath = RenderingMode == RenderMode.Native
                                   ? "/root/Global/Renderers/ContentCollectionView.ascx"
                                   : Renderer;

                var presenter = Page.LoadControl(viewPath);

                Controls.Add(presenter);
                PresenterClientId = presenter.ClientID;
                if (presenter is ContentCollectionView)
                {
                    ((ContentCollectionView)presenter).Model = model;
                }
                if (modelData != null)
                {
                    var itemlist = presenter.FindControl(ContentListID);
                    if (itemlist != null)
                    {
                        ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist,
                                                                                            modelData.Children);
                    }
                    itemlist = presenter.FindControl("ViewDatasource");
                    if (itemlist != null)
                    {
                        ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist,
                                                                                            modelData.Children);
                    }
                }

                var itemPager = presenter.FindControl("ContentListPager");
                if (itemPager != null)
                {
                    ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemPager,
                                                                                        model.Pager.PagerActions);
                }
            }
        }
Пример #3
0
        protected virtual void BuildResultView()
        {
            Content modelData;
            try
            {
                modelData = GetModel() as Content;
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex);
                Controls.Clear();
                Controls.Add(new LiteralControl("ContentView error: " + ex.Message));
                return;
            }
            if (modelData != null) modelData.AllChildren = AllChildren;

            var model = new ContentCollectionViewModel {State = this.State};
            var childCount = modelData != null ? modelData.ChildCount : 0;
            var pm = new PagerModel(childCount, State, string.Empty);
            model.Pager = pm;
            model.Content = modelData;
            if (RenderingMode == RenderMode.Xslt)
            {
                try
                {
                    XmlModelData = model.ToXPathNavigator();
                }
                catch (Exception ex)
                {
                    Logger.Write(ex.ToString());
                    Logger.WriteException(ex);
                }
            }
            else
            {
                var viewPath = RenderingMode == RenderMode.Native
                                   ? "/root/Global/Renderers/ContentCollectionView.ascx"
                                   : Renderer;

                var presenter = Page.LoadControl(viewPath);
               
                Controls.Add(presenter);
                PresenterClientId = presenter.ClientID;
                if (presenter is ContentCollectionView)
                {
                    ((ContentCollectionView) presenter).Model = model;
                }
                if (modelData != null)
                {
                    var itemlist = presenter.FindControl(ContentListID);
                    if (itemlist != null)
                    {
                        ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist,
                                                                                            modelData.Children);
                    }
                    itemlist = presenter.FindControl("ViewDatasource");
                    if (itemlist != null)
                    {
                        ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist,
                                                                                            modelData.Children);
                    }
                }

                var itemPager = presenter.FindControl("ContentListPager");
                if (itemPager != null)
                {
                    ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemPager,
                                                                                        model.Pager.PagerActions);
                }


                
            }
        }