コード例 #1
0
        /// <summary>
        /// The render.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        protected override void Render(HtmlTextWriter writer)
        {
            var userName = this.Parameters["inner"];

            if (userName.IsNotSet() || userName.Length > 50)
            {
                return;
            }

            var userId = this.Get <IUserDisplayName>().GetId(userName.Trim());

            if (userId.HasValue)
            {
                var userLink = new UserLink
                {
                    UserID      = userId.ToType <int>(),
                    CssClass    = "btn btn-outline-primary",
                    BlankTarget = true,
                    ID          = $"UserLinkBBCodeFor{userId}"
                };

                writer.Write("<!-- BEGIN userlink -->");
                writer.Write(@"<span>");
                userLink.RenderControl(writer);

                writer.Write("</span>");
                writer.Write("<!-- END userlink -->");
            }
            else
            {
                writer.Write(this.HtmlEncode(userName));
            }
        }
コード例 #2
0
        /// <summary>
        /// The render.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        protected override void Render(HtmlTextWriter writer)
        {
            var userName = this.Parameters["inner"];

            if (userName.StartsWith("@"))
            {
                userName = userName.Replace("@", string.Empty);
            }

            if (userName.IsNotSet() || userName.Length > 50)
            {
                return;
            }

            var user = this.Get <IAspNetUsersHelper>().GetUserByName(userName.Trim());

            if (user != null)
            {
                var boardUser = this.GetRepository <User>().GetSingle(u => u.ProviderUserKey == user.Id);

                if (boardUser == null)
                {
                    writer.Write(this.HtmlEncode(userName));
                    return;
                }

                var userLink = new UserLink
                {
                    Suspended   = boardUser.Suspended,
                    UserID      = boardUser.ID,
                    Style       = boardUser.UserStyle,
                    ReplaceName =
                        this.Get <IUserDisplayName>().GetName(boardUser),
                    CssClass    = "btn btn-outline-primary",
                    BlankTarget = true,
                    ID          = $"UserLinkBBCodeFor{boardUser.ID}"
                };

                writer.Write("<!-- BEGIN userlink -->");
                writer.Write(@"<span>");
                userLink.RenderControl(writer);

                writer.Write("</span>");
                writer.Write("<!-- END userlink -->");
            }
            else
            {
                writer.Write(this.HtmlEncode(userName));
            }
        }
コード例 #3
0
ファイル: MostActiveUser.cs プロジェクト: wangyoutian/YAFNET
        /// <summary>
        /// Renders the MostActiveUsers class.
        /// </summary>
        /// <param name="writer">
        /// </param>
        protected override void Render([NotNull] HtmlTextWriter writer)
        {
            string actRank = string.Empty;

            DataTable rankDt = this.Get <IDataCache>().GetOrSet(
                Constants.Cache.MostActiveUsers,
                () =>
                LegacyDb.user_activity_rank(
                    this.PageContext.PageBoardID, DateTime.UtcNow.AddDays(-this.LastNumOfDays), this.DisplayNumber),
                TimeSpan.FromMinutes(5));

            writer.BeginRender();

            var html = new StringBuilder();

            html.AppendFormat(@"<div id=""{0}"" class=""yaf_activeuser"">", this.ClientID);
            html.AppendFormat(@"<h2 class=""yaf_header"">{0}</h2>", "Most Active Users");
            html.AppendFormat(@"<h4 class=""yaf_subheader"">Last {0} Days</h4>", this.LastNumOfDays);

            html.AppendLine("<ol>");

            // flush...
            writer.Write(html.ToString());

            foreach (DataRow row in rankDt.Rows)
            {
                writer.WriteLine("<li>");

                // render UserLink...
                var userLink = new UserLink {
                    UserID = row.Field <int>("ID"),
                };
                userLink.RenderControl(writer);

                // render online image...
                var onlineStatusImage = new OnlineStatusImage {
                    UserID = row.Field <int>("ID")
                };
                onlineStatusImage.RenderControl(writer);

                writer.WriteLine(" ");
                writer.WriteLine(@"<span class=""NumberOfPosts"">({0})</span>".FormatWith(row.Field <int>("NumOfPosts")));
                writer.WriteLine("</li>");
            }

            writer.WriteLine("</ol>");
            writer.WriteLine("</div>");
            writer.EndRender();
        }
コード例 #4
0
        /// <summary>
        /// Renders the MostActiveUsers class.
        /// </summary>
        /// <param name="writer">Das <see cref="T:System.Web.UI.HtmlTextWriter" />-Objekt, das den Inhalt des Serversteuerelements empfängt.</param>
        protected override void Render([NotNull] HtmlTextWriter writer)
        {
            var rankDt = this.Get <IDataCache>().GetOrSet(
                Constants.Cache.MostActiveUsers,
                () =>
                LegacyDb.user_activity_rank(
                    this.PageContext.PageBoardID, DateTime.UtcNow.AddDays(-this.LastNumOfDays), this.DisplayNumber),
                TimeSpan.FromMinutes(5));

            writer.BeginRender();

            var html = new StringBuilder();

            html.Append(@"<div class=""card"">");
            html.Append(@"<div class=""card-body"">");
            html.AppendFormat(@"<h5 class=""card-title"">{0}</h5>", "Most Active Users");
            html.AppendFormat(@"<h6 class=""card-subtitle mb-2 text-mutedr"">Last {0} Days</h6>", this.LastNumOfDays);

            html.AppendLine("<ol>");

            // flush...
            writer.Write(html.ToString());

            foreach (DataRow row in rankDt.Rows)
            {
                writer.WriteLine("<li>");

                // render UserLink...
                var userLink = new UserLink {
                    UserID = row.Field <int>("ID"),
                };
                userLink.RenderControl(writer);

                writer.WriteLine(" ");
                writer.WriteLine(@"<span class=""NumberOfPosts"">({0})</span>".FormatWith(row.Field <int>("NumOfPosts")));
                writer.WriteLine("</li>");
            }

            writer.WriteLine("</ol>");
            writer.WriteLine("</div></div>");
            writer.EndRender();
        }
コード例 #5
0
ファイル: MostActiveUser.cs プロジェクト: ransems/YAFNET
        /// <summary>
        /// Renders the MostActiveUsers class.
        /// </summary>
        /// <param name="writer">
        /// </param>
        protected override void Render([NotNull] HtmlTextWriter writer)
        {
            string actRank = string.Empty;

            DataTable rankDt = this.Get<IDataCache>().GetOrSet(
              Constants.Cache.MostActiveUsers,
              () =>
              LegacyDb.user_activity_rank(
                this.PageContext.PageBoardID, DateTime.UtcNow.AddDays(-this.LastNumOfDays), this.DisplayNumber),
              TimeSpan.FromMinutes(5));

            writer.BeginRender();

            var html = new StringBuilder();

            html.AppendFormat(@"<div id=""{0}"" class=""yaf_activeuser"">", this.ClientID);
            html.AppendFormat(@"<h2 class=""yaf_header"">{0}</h2>", "Most Active Users");
            html.AppendFormat(@"<h4 class=""yaf_subheader"">Last {0} Days</h4>", this.LastNumOfDays);

            html.AppendLine("<ol>");

            // flush...
            writer.Write(html.ToString());

            foreach (DataRow row in rankDt.Rows)
            {
                writer.WriteLine("<li>");

                // render UserLink...
                var userLink = new UserLink { UserID = row.Field<int>("ID"), };
                userLink.RenderControl(writer);

                // render online image...
                var onlineStatusImage = new OnlineStatusImage { UserID = row.Field<int>("ID") };
                onlineStatusImage.RenderControl(writer);

                writer.WriteLine(" ");
                writer.WriteLine(@"<span class=""NumberOfPosts"">({0})</span>".FormatWith(row.Field<int>("NumOfPosts")));
                writer.WriteLine("</li>");
            }

            writer.WriteLine("</ol>");
            writer.WriteLine("</div>");
            writer.EndRender();
        }
コード例 #6
0
    /// <summary>
    /// Renders the MostActiveUsers class.
    /// </summary>
    /// <param name="writer">
    /// </param>
    protected override void Render([NotNull] HtmlTextWriter writer)
    {
      int currentRank = 1;
      string actRank = string.Empty;

      DataTable rankDt = this.Get<IDataCache>().GetOrSet(
        Constants.Cache.MostActiveUsers,
        () =>
        LegacyDb.user_activity_rank(
          this.PageContext.PageBoardID, DateTime.UtcNow.AddDays(-this.LastNumOfDays), this.DisplayNumber),
        TimeSpan.FromMinutes(5));

      //// create XML data document...
      // XmlDocument xml = new XmlDocument();

      // rankDt.TableName = "UserActivityRank";
      // xml.LoadXml( rankDt.DataSet.GetXml() );

      //// transform using the MostActiveUser xslt...
      // const string xsltFile = "YAF.Controls.Statistics.MostActiveUser.xslt";

      // using ( Stream resourceStream = Assembly.GetAssembly( this.GetType() ).GetManifestResourceStream( xsltFile ) )
      // {
      // if ( resourceStream != null )
      // {
      // XslCompiledTransform myXslTrans = new XslCompiledTransform();

      // //load the Xsl 
      // myXslTrans.Load( XmlReader.Create( resourceStream ) );
      // myXslTrans.Transform( xml.CreateNavigator(), xslArgs, writer );
      // }
      // }
      writer.BeginRender();

      var html = new StringBuilder();

      html.AppendFormat(@"<div id=""{0}"" class=""yaf_activeuser"">", this.ClientID);
      html.AppendFormat(@"<h2 class=""yaf_header"">{0}</h2>", "Most Active Users");
      html.AppendFormat(@"<h4 class=""yaf_subheader"">Last {0} Days</h4>", this.LastNumOfDays);

      html.AppendLine("<ol>");

      // flush...
      writer.Write(html.ToString());

      foreach (DataRow row in rankDt.Rows)
      {
        writer.WriteLine("<li>");

        // render UserLink...
        var userLink = new UserLink { UserID = row.Field<int>("ID"), };
        userLink.RenderControl(writer);

        // render online image...
        var onlineStatusImage = new OnlineStatusImage { UserID = row.Field<int>("ID") };
        onlineStatusImage.RenderControl(writer);

        writer.WriteLine(" ");
        writer.WriteLine(@"<span class=""NumberOfPosts"">({0})</span>".FormatWith(row.Field<int>("NumOfPosts")));
        writer.WriteLine("</li>");
      }

      writer.WriteLine("</ol>");
      writer.EndRender();
    }