protected override void RenderContents(System.Web.UI.HtmlTextWriter writer) { writer.Write("<div id=\"Poll_DataContent\">"); writer.Write(@"<div>"); if (poll != null) { writer.Write("<div style='padding-bottom:15px;'><a class=\"linkHeaderLightMedium\" href=\"" + FeedUrls.GetFeedUrl(poll.Id) + "\">" + pollForm.Name + "</a></div>"); pollForm.RenderControl(writer); writer.Write("<div style=\"margin-top: 10px;\">"); writer.Write("<a href=\"" + FeedUrls.GetFeedListUrl(FeedType.Poll) + "\">" + Resources.NewsResource.SeeAllPolls + "</a>"); writer.Write("</div>"); } else { writer.Write("<div class=\"empty-widget\" style=\"padding:40px; text-align: center;\">" + String.Format(Resources.NewsResource.NoPollWidgetMessage, string.Format("<div style=\"padding-top:3px;\"><a class=\"promoAction\" href=\"{0}\">", VirtualPathUtility.ToAbsolute("~/products/community/modules/news/editpoll.aspx")), "</a></div>") + "</div>"); } writer.Write("</div>"); writer.Write("</div>"); }
/// <summary> /// Remove feed url from list of Urls /// </summary> /// <param name="url"></param> public void RemoveFeed(string url) { if (FeedUrls.Contains(url)) { FeedUrls.Remove(url); } }
public StatisticItem GetMainStatistic(Guid userID) { return(new StatisticItem() { Count = GetPostCount(userID), URL = FeedUrls.GetFeedListUrl(userID), Name = Resources.NewsResource.PostCount }); }
public override SearchResultItem[] Search(string text) { return(FeedStorageFactory.Create() .SearchFeeds(text) .ConvertAll <SearchResultItem>(f => new SearchResultItem() { Name = f.Caption, Description = HtmlUtility.GetText(f.Text, 120), URL = FeedUrls.GetFeedUrl(f.Id), Date = f.Date }) .ToArray()); }
internal static UserActivity ComposeActivityByFeed(Feed post) { var ua = new UserActivity(); ua.TenantID = TenantProvider.CurrentTenantID; ua.ContentID = GetContentID(post); ua.Date = TenantUtil.DateTimeNow(); ua.ModuleID = NewsConst.ModuleId; ua.ProductID = Product.CommunityProduct.ID; ua.Title = post.Caption; ua.URL = FeedUrls.GetFeedVirtualPath(post.Id); return(ua); }
public void WriteNavigation() { var usedFeedTypes = FeedStorageFactory.Create().GetUsedFeedTypes(); if (usedFeedTypes.Count == 0) { NewsNavigator.Visible = false; } else { niTypeAllNews.URL = FeedUrls.GetFeedListUrl(RequestedUserId); niTypeAllNews.Name = Resources.NewsResource.NewsBreadCrumbs; AddNewsTypes(usedFeedTypes); } }
private void AddNewsTypes(IList <FeedType> usedFeedTypes) { foreach (var feedType in usedFeedTypes) { var feedTypeInfo = FeedTypeInfo.FromFeedType(feedType); NewsNavigator.Controls.Add( new NavigationItem() { Name = feedTypeInfo.TypeName, ID = feedTypeInfo.TypeName, URL = FeedUrls.GetFeedListUrl(feedType, RequestedUserId) } ); } }
private static string RenderWidget() { var widgetSettings = SettingsManager.Instance.LoadSettingsFor <FeedWidgetSettings>(SecurityContext.CurrentAccount.ID); var widget = new StringBuilder(); widget.Append("<div id=\"Feed_DataContent\">"); var feeds = FeedStorageFactory.Create().GetFeeds(FeedType.AllNews, Guid.Empty, widgetSettings.NewsCount, 0); if (feeds.Count > 0) { foreach (var feed in feeds) { widget.Append(@"<div style=""padding-bottom: 10px;"">"); widget.Append("<table cellspacing='0' cellpadding='0' border='0'><tr valign='top'><td width='25'>"); widget.AppendFormat(@"<span class=""textMediumDescribe"">{0}<br/>{1}</span>", feed.Date.ToShortDayMonth(), feed.Date.ToShortTimeString()); widget.Append("</td>"); widget.Append("<td>"); widget.Append("<div style=\"padding-left: 10px;\">"); widget.AppendFormat(@"<a href=""{0}"">{1}</a>", FeedUrls.GetFeedUrl(feed.Id), feed.Caption.HtmlEncode()); widget.Append("</div>"); widget.Append("</td>"); widget.Append("</tr>"); widget.Append("</table>"); widget.Append(@"</div>"); } widget.Append(@"<div style=""margin-top: 10px;"">"); widget.AppendFormat(@"<a href=""{1}"">{0}</a>", Resources.NewsResource.SeeAllNews, FeedUrls.MainPageUrl); widget.Append(@"</div>"); } else { widget.Append("<div class=\"empty-widget\" style=\"padding:40px; text-align: center;\">" + String.Format(Resources.NewsResource.NoFeedWidgetMessage, string.Format("<div style=\"padding-top:3px;\"><a class=\"promoAction\" href=\"{0}\">", VirtualPathUtility.ToAbsolute("~/products/community/modules/news/editnews.aspx")), "</a></div>") + "</div>"); } widget.Append("</div>"); return(widget.ToString()); }
protected void SaveFeed() { if (string.IsNullOrEmpty(feedName.Text)) { ((NewsMaster)Master).SetInfoMessage(NewsResource.RequaredFieldValidatorCaption, InfoType.Alert); return; } var storage = FeedStorageFactory.Create(); var isEdit = (FeedId != 0); var feed = isEdit ? storage.GetFeed(FeedId) : new FeedNews(); feed.Caption = feedName.Text; feed.Text = (Request["news_text"] ?? ""); feed.FeedType = (FeedType)int.Parse(feedType.SelectedValue, CultureInfo.CurrentCulture); storage.SaveFeed(feed, isEdit, FeedType.News); CommonControlsConfigurer.FCKEditingComplete("news", feed.Id.ToString(), feed.Text, isEdit); Response.Redirect(FeedUrls.GetFeedUrl(feed.Id, Info.UserId)); }
/// <summary> /// Adding new feed if it exists. /// </summary> /// <param name="url">feed url</param> /// <returns></returns> public async Task SubscribeToFeedAsync(string url) { //getting feed links from HTML page string[] links = await HttpHelper.ParseFeedUrlsAsStringAsync(url); if (links.Length == 0) { try { await AddNewFeedAsync(url); FeedUrls.Add(url); } catch { throw new Exception("Failed to find feed.\nTry checking the link."); } } else { //adding all feeds from found links foreach (string link in links) { if (!FeedUrls.Contains(link)) { try { await AddNewFeedAsync(link); } catch { throw new Exception("Couldn't find resource."); } FeedUrls.Add(link); } } } }
private List <SubscriptionObject> GetSubscriptionObjects(bool includeFeed, bool includeComments) { List <SubscriptionObject> subscriptionObjects = new List <SubscriptionObject>(); IList <string> list = new List <string>(); var currentAccount = SecurityContext.CurrentAccount; if (includeFeed) { list = new List <string>( SubscriptionProvider.GetSubscriptions( NewsConst.NewFeed, new DirectRecipient(currentAccount.ID.ToString(), currentAccount.Name), false) ); if (list.Count > 0) { foreach (string id in list) { if (!string.IsNullOrEmpty(id)) { subscriptionObjects.Add(new SubscriptionObject() { ID = id, Name = NewsResource.NotifyOnNewFeed, URL = string.Empty, SubscriptionType = GetSubscriptionTypes()[0] }); } } } } if (includeComments) { list = new List <string>( SubscriptionProvider.GetSubscriptions( NewsConst.NewComment, new DirectRecipient(currentAccount.ID.ToString(), currentAccount.Name), false) ); if (list.Count > 0) { var storage = FeedStorageFactory.Create(); foreach (string id in list) { if (!string.IsNullOrEmpty(id)) { try { var feedID = Int32.Parse(id); var feed = storage.GetFeed(feedID); subscriptionObjects.Add(new SubscriptionObject() { ID = id, Name = feed.Caption, URL = FeedUrls.GetFeedAbsolutePath(feed.Id), SubscriptionType = GetSubscriptionTypes()[1] }); } catch { } } } } } return(subscriptionObjects); }
protected void Page_Load(object sender, EventArgs e) { if (SetupInfo.WorkMode == WorkMode.Promo) { Response.Redirect(FeedUrls.MainPageUrl, true); } Utility.RegisterTypeForAjax(this.GetType()); if (!CommunitySecurity.CheckPermissions(NewsConst.Action_Add)) { Response.Redirect(FeedUrls.MainPageUrl, true); } _mobileVer = Core.Mobile.MobileDetector.IsRequestMatchesMobile(this.Context); Breadcrumb.Add(new BreadCrumb { NavigationUrl = FeedUrls.MainPageUrl, Caption = NewsResource.NewsBreadCrumbs }); if (Info.HasUser) { Breadcrumb.Add(new BreadCrumb { Caption = Info.User.DisplayUserName(false), NavigationUrl = FeedUrls.GetFeedListUrl(Info.UserId) }); } var storage = FeedStorageFactory.Create(); Feed feed = null; if (!string.IsNullOrEmpty(Request["docID"])) { long docID; if (long.TryParse(Request["docID"], out docID)) { feed = storage.GetFeed(docID); Breadcrumb.Add(new BreadCrumb { Caption = feed.Caption ?? string.Empty, NavigationUrl = FeedUrls.GetFeedUrl(docID, Info.UserId) }); Breadcrumb.Add(new BreadCrumb { Caption = NewsResource.NewsEditBreadCrumbsNews, NavigationUrl = FeedUrls.EditNewsUrl + "?docID=" + docID + Info.UserIdAttribute }); _text = (feed != null ? feed.Text : "").HtmlEncode(); } } else { Breadcrumb.Add(new BreadCrumb { Caption = NewsResource.NewsAddBreadCrumbsNews, NavigationUrl = FeedUrls.EditNewsUrl + (string.IsNullOrEmpty(Info.UserIdAttribute) ? string.Empty : "?" + Info.UserIdAttribute.Substring(1)) }); } if (_mobileVer && IsPostBack) { _text = Request["mobiletext"] ?? ""; } if (!IsPostBack) { //feedNameRequiredFieldValidator.ErrorMessage = NewsResource.RequaredFieldValidatorCaption; HTML_FCKEditor.BasePath = VirtualPathUtility.ToAbsolute(CommonControlsConfigurer.FCKEditorBasePath); HTML_FCKEditor.ToolbarSet = "NewsToolbar"; HTML_FCKEditor.EditorAreaCSS = WebSkin.GetUserSkin().BaseCSSFileAbsoluteWebPath; HTML_FCKEditor.Visible = !_mobileVer; BindNewsTypes(); if (feed != null) { if (!CommunitySecurity.CheckPermissions(feed, NewsConst.Action_Edit)) { Response.Redirect(FeedUrls.MainPageName, true); } feedName.Text = feed.Caption; HTML_FCKEditor.Value = feed.Text; FeedId = feed.Id; feedType.SelectedIndex = (int)Math.Log((int)feed.FeedType, 2); } } else { var control = FindControl(Request.Params["__EVENTTARGET"]); if (lbCancel.Equals(control)) { CancelFeed(sender, e); } else { SaveFeed(); } } this.Title = HeaderStringHelper.GetPageTitle(NewsResource.AddonName, Breadcrumb); lbCancel.Attributes["name"] = HTML_FCKEditor.ClientID; }
protected void Page_Load(object sender, EventArgs e) { Utility.RegisterTypeForAjax(typeof(Default), Page); commentList.Visible = CommunitySecurity.CheckPermissions(NewsConst.Action_Comment); pgNavigator.EntryCount = 1; pgNavigator.EntryCountOnPage = 1; Breadcrumb.Add(new BreadCrumb { Caption = NewsResource.NewsBreadCrumbs, NavigationUrl = FeedUrls.MainPageUrl }); if (Info.HasUser) { Breadcrumb.Add(new BreadCrumb { Caption = Info.User.DisplayUserName(false), NavigationUrl = FeedUrls.GetFeedListUrl(Info.UserId) }); } if (!IsPostBack) { var storage = FeedStorageFactory.Create(); if (!string.IsNullOrEmpty(Request["docID"])) { long docID; if (long.TryParse(Request["docID"], out docID)) { //Show panel ContentView.Visible = false; FeedView.Visible = true; var feed = storage.GetFeed(docID); if (feed != null) { if (!feed.Readed) { storage.ReadFeed(feed.Id, SecurityContext.CurrentAccount.ID.ToString()); } FeedViewCtrl.Feed = feed; hdnField.Value = feed.Id.ToString(CultureInfo.CurrentCulture); Title += string.Format(CultureInfo.CurrentCulture, "-{0}", feed.Caption); InitCommentsView(storage, feed); FeedView.DataBind(); Breadcrumb.Add(new BreadCrumb { Caption = feed.Caption, NavigationUrl = FeedUrls.GetFeedUrl(docID, Info.UserId) }); } else { ContentView.Visible = true; FeedView.Visible = false; FeedRepeater.Visible = true; } } } else { PageNumber = string.IsNullOrEmpty(Request["page"]) ? 1 : Convert.ToInt32(Request["page"]); LoadData(); } } this.Title = HeaderStringHelper.GetPageTitle(Resources.NewsResource.AddonName, Breadcrumb); }
private void LoadData() { var storage = FeedStorageFactory.Create(); var feedType = FeedType.All; if (!string.IsNullOrEmpty(Request["type"])) { feedType = (FeedType)Enum.Parse(typeof(FeedType), Request["type"], true); var feedTypeInfo = FeedTypeInfo.FromFeedType(feedType); Breadcrumb.Add(new BreadCrumb { Caption = feedTypeInfo.TypeName, NavigationUrl = FeedUrls.GetFeedListUrl(feedType) }); if (!string.IsNullOrEmpty(Request["search"])) { Breadcrumb.Add(new BreadCrumb { Caption = HeaderStringHelper.GetHTMLSearchHeader(Request["search"]), NavigationUrl = VirtualPathUtility.ToAbsolute("~/products/community/modules/news/") + "?type=" + Request["type"] + "&search=" + Request["search"] + Info.UserIdAttribute }); } } else if (!string.IsNullOrEmpty(Request["search"])) { Breadcrumb.Add(new BreadCrumb { Caption = HeaderStringHelper.GetHTMLSearchHeader(Request["search"]), NavigationUrl = VirtualPathUtility.ToAbsolute("~/products/community/modules/news/") + "?search=" + Request["search"] + Info.UserIdAttribute }); } var feedsCount = !string.IsNullOrEmpty(Request["search"]) ? storage.SearchFeedsCount(Request["search"], feedType, Info.UserId) : storage.GetFeedsCount(feedType, Info.UserId); if (feedsCount == 0) { FeedRepeater.Visible = false; MessageShow.Visible = true; string buttonLink; string buttonName; var emptyScreenControl = new EmptyScreenControl { Describe = NewsResource.EmptyScreenText }; switch (feedType) { case FeedType.News: emptyScreenControl.ImgSrc = WebImageSupplier.GetAbsoluteWebPath("150x_news.png", NewsConst.ModuleId); emptyScreenControl.Header = NewsResource.EmptyScreenNewsCaption; buttonLink = FeedUrls.EditNewsUrl; buttonName = NewsResource.EmptyScreenNewsLink; break; case FeedType.Order: emptyScreenControl.ImgSrc = WebImageSupplier.GetAbsoluteWebPath("150x_order.png", NewsConst.ModuleId); emptyScreenControl.Header = NewsResource.EmptyScreenOrdersCaption; buttonLink = FeedUrls.EditOrderUrl; buttonName = NewsResource.EmptyScreenOrderLink; break; case FeedType.Advert: emptyScreenControl.ImgSrc = WebImageSupplier.GetAbsoluteWebPath("150x_advert.png", NewsConst.ModuleId); emptyScreenControl.Header = NewsResource.EmptyScreenAdvertsCaption; buttonLink = FeedUrls.EditAdvertUrl; buttonName = NewsResource.EmptyScreenAdvertLink; break; case FeedType.Poll: emptyScreenControl.ImgSrc = WebImageSupplier.GetAbsoluteWebPath("150x_poll.png", NewsConst.ModuleId); emptyScreenControl.Header = NewsResource.EmptyScreenPollsCaption; buttonLink = FeedUrls.EditPollUrl; buttonName = NewsResource.EmptyScreenPollLink; break; default: emptyScreenControl.ImgSrc = WebImageSupplier.GetAbsoluteWebPath("150x_newslogo.png", NewsConst.ModuleId); emptyScreenControl.Header = NewsResource.EmptyScreenEventsCaption; buttonLink = FeedUrls.EditNewsUrl; buttonName = NewsResource.EmptyScreenEventLink; break; } if (CommunitySecurity.CheckPermissions(NewsConst.Action_Add) && String.IsNullOrEmpty(Request["uid"]) && String.IsNullOrEmpty(Request["search"])) { emptyScreenControl.ButtonHTML = String.Format("<a class='linkAddMediumText' href='{0}'>{1}</a>", buttonLink, buttonName); } MessageShow.Controls.Add(emptyScreenControl); } else { const int pageSize = 20; var pageCount = (int)(feedsCount / pageSize + 1); if (pageCount < PageNumber) { PageNumber = pageCount; } var feeds = !string.IsNullOrEmpty(Request["search"]) ? storage.SearchFeeds(Request["search"], feedType, Info.UserId, pageSize, (PageNumber - 1) * pageSize) : storage.GetFeeds(feedType, Info.UserId, pageSize, (PageNumber - 1) * pageSize); pgNavigator.EntryCountOnPage = pageSize; pgNavigator.EntryCount = 0 < pageCount ? (int)feedsCount : pageSize; pgNavigator.CurrentPageNumber = PageNumber; pgNavigator.ParamName = "page"; if (!string.IsNullOrEmpty(Request["search"])) { pgNavigator.PageUrl = string.Format(CultureInfo.CurrentCulture, "{0}?search={1}", VirtualPathUtility.ToAbsolute("~/products/community/modules/news/"), Request["search"]); } else { pgNavigator.PageUrl = string.IsNullOrEmpty(Request["type"]) ? string.Format(CultureInfo.CurrentCulture, "{0}?{1}", VirtualPathUtility.ToAbsolute("~/products/community/modules/news/"), (string.IsNullOrEmpty(Info.UserIdAttribute) ? string.Empty : "?" + Info.UserIdAttribute.Substring(1))) : string.Format(CultureInfo.CurrentCulture, "{0}?type={1}{2}", VirtualPathUtility.ToAbsolute("~/products/community/modules/news/"), Request["type"], Info.UserIdAttribute); } FeedRepeater.DataSource = feeds; FeedRepeater.DataBind(); } }