public void GetListArticlesCount()
        {
            var controller = new ArticleController();

            var result = controller.GetArticles();

            Assert.AreEqual(25, result.Count());
        }
Beispiel #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         rptArticleList.DataSource = ArticleController.GetArticles(ModuleId, PageSize, PageNumber);
         rptArticleList.DataBind();
     }
     catch (Exception exc)
     {
         Exceptions.ProcessModuleLoadException(this, exc);
     }
 }
Beispiel #3
0
        //[DnnAuthorize(AllowAnonymous = true)]
        public HttpResponseMessage GetArticles(int moduleId)
        {
            try
            {
                //todo: get the latest X articles?
                var articles = ArticleController.GetArticles(moduleId);

                //because of the circular reference when cerealizing the taxonomy within content items we have to build out our article view models manually.
                var cleanArticles = new List <ArticleViewModel>();
                foreach (Article a in articles)
                {
                    var newArt = new ArticleViewModel
                    {
                        ArticleId            = a.ArticleId,
                        Body                 = WebUtility.HtmlDecode(a.Body),
                        CreatedByUser        = a.CreatedByUser,
                        CreatedByUserId      = a.CreatedByUserId,
                        CreatedOnDate        = a.CreatedOnDate,
                        Description          = WebUtility.HtmlDecode(a.Description),
                        LastModifiedByUser   = a.LastUpdatedByUser,
                        LastModifiedByUserId = a.LastModifiedByUserId,
                        LastModifiedOnDate   = a.LastModifiedOnDate,
                        ModuleId             = a.ModuleId,
                        Title                = a.Title,
                        url = DotNetNuke.Common.Globals.NavigateURL(a.TabID, "", "&aid=" + a.ArticleId)
                    };
                    cleanArticles.Add(newArt);
                }

                var articleViewModels = new ArticleViewModels
                {
                    Articles = cleanArticles
                };

                return(Request.CreateResponse(HttpStatusCode.OK, articleViewModels, new MediaTypeHeaderValue("text/json")));
                //to force JSON as the result
                //return Request.CreateResponse(HttpStatusCode.OK, articleViewModels, new MediaTypeHeaderValue("text/json"));
            }
            catch (Exception exc)
            {
                DnnLog.Error(exc);                                                             //todo: obsolete
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "error in request")); //todo: probably should localize that?
            }
        }
Beispiel #4
0
        protected void RptArticleListOnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            //configure the Tags
            var articleTags      = e.Item.FindControl("tagsControl") as Tags;
            var lnkDelete        = e.Item.FindControl("lnkDelete") as LinkButton;
            var lnkEdit          = e.Item.FindControl("lnkEdit") as LinkButton;
            var pnlAdminControls = e.Item.FindControl("pnlAdminControls") as Panel;
            var pnlOtherControls = e.Item.FindControl("pnlOtherControls") as Panel;

            var curArticle = (Article)e.Item.DataItem;

            if (articleTags != null && ShowCategories)
            {
                articleTags.ShowCategories = true;
                articleTags.ShowTags       = false;
                var mc = new ModuleController();

                //look to see if the Content List module, for displaying tag results, is found

                var mi = mc.GetModuleByDefinition(PortalId, "Content List");
                if (mi != null)
                {
                    articleTags.NavigateUrlFormatString = Globals.NavigateURL(mi.TabID, String.Empty, "Tag={0}");
                    articleTags.ContentItem             = Util.GetContentController().GetContentItem(curArticle.ContentItemId);
                }
                articleTags.DataBind();
                if (pnlOtherControls != null)
                {
                    pnlOtherControls.Visible = true;
                }
            }
            else
            {
                if (pnlOtherControls != null)
                {
                    pnlOtherControls.Visible = false;
                }
            }
            if (articleTags != null && articleTags.ContentItem != null)
            {
                if (articleTags.ContentItem.Terms.Count < 1)
                {
                    if (pnlOtherControls != null)
                    {
                        pnlOtherControls.Visible = false;
                    }
                }
            }
            else
            {
                if (pnlOtherControls != null)
                {
                    pnlOtherControls.Visible = false;
                }
            }

            if (IsEditable && lnkDelete != null && lnkEdit != null)
            {
                if (pnlAdminControls != null)
                {
                    pnlAdminControls.Visible = true;
                }
                lnkDelete.Visible = lnkDelete.Enabled = lnkEdit.Visible = lnkEdit.Enabled = true;
                ClientAPI.AddButtonConfirm(lnkDelete, Localization.GetString("ConfirmDelete", LocalResourceFile));
                lnkDelete.CommandArgument = curArticle.ArticleId.ToString();
                lnkEdit.CommandArgument   = curArticle.ArticleId.ToString();
            }
            else
            {
                if (pnlAdminControls != null)
                {
                    pnlAdminControls.Visible = false;
                }
            }

            //handle paging list


            if (curArticle.TotalRecords > PageSize)
            {
                BuildPageList(ArticleController.GetArticles(ModuleId, 1, 1)[0].TotalRecords);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var ps = new PortalSettings(PortalId);

            Response.ContentType     = "text/xml";
            Response.ContentEncoding = Encoding.UTF8;

            var sw = new StringWriter(CultureInfo.InvariantCulture);
            var wr = new XmlTextWriter(sw);

            wr.WriteStartElement("rss");
            wr.WriteAttributeString("version", "2.0");
            wr.WriteAttributeString("xmlns:wfw", "http://wellformedweb.org/CommentAPI/");
            wr.WriteAttributeString("xmlns:slash", "http://purl.org/rss/1.0/modules/slash/");
            wr.WriteAttributeString("xmlns:dc", "http://purl.org/dc/elements/1.1/");
            wr.WriteAttributeString("xmlns:trackback", "http://madskills.com/public/xml/rss/module/trackback/");

            wr.WriteStartElement("channel");
            wr.WriteElementString("title", ps.PortalName);

            //Get aliases
            var portalAliases = PortalAliasController.Instance.GetPortalAliasesByPortalId(PortalId);//.GetPortalAliasesByPortalId(portalId);


            var pa = (portalAliases != null && portalAliases.Count <PortalAliasInfo>() > 0 ? portalAliases.ElementAt <PortalAliasInfo>(0) : null);

            if (pa.HTTPAlias.IndexOf("//", StringComparison.OrdinalIgnoreCase) == -1)
            {
                wr.WriteElementString("link", "//" + pa.HTTPAlias);
            }
            else
            {
                wr.WriteElementString("link", pa.HTTPAlias);
            }
            wr.WriteElementString("description", "RSS Feed for " + ps.PortalName);
            wr.WriteElementString("ttl", "120");


            var dt = new DataTable {
                Locale = CultureInfo.InvariantCulture
            };

            //dt = ItemId == -1 ? DataProvider.Instance().GetMostRecent(ItemTypeId, NumberOfItems, PortalId) : DataProvider.Instance().GetMostRecentByCategoryId(ItemId, ItemTypeId, NumberOfItems, PortalId);
            var al = ArticleController.GetArticles(ModuleId);


            if (al != null)
            {
                foreach (var a in al)
                {
                    wr.WriteStartElement("item");

                    DateTime startDate = DateTime.MinValue;

                    wr.WriteElementString("title", a.Title);

                    wr.WriteElementString("link", ArticleController.GetArticleLink(a.TabID, a.ArticleId));

                    wr.WriteElementString("description", Server.HtmlDecode(a.Description));

                    wr.WriteElementString("thumbnail", a.ThumbImg);

                    wr.WriteElementString("dc:creator", a.CreatedByUser);

                    wr.WriteElementString("pubDate", a.CreatedOnDate.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture));

                    wr.WriteStartElement("guid");

                    wr.WriteAttributeString("isPermaLink", "true");

                    wr.WriteString(ArticleController.GetArticleLink(a.TabID, a.ArticleId));
                    wr.WriteEndElement();
                    wr.WriteEndElement();
                }
            }

            wr.WriteEndElement();
            wr.WriteEndElement();
            Response.Write(sw.ToString());
        }