Subtext.Framework.Components.FeedbackItem.Create C# (CSharp) Метод

Create() публичный статический Метод

Creates a feedback item in the database.
public static Create ( FeedbackItem feedback, CommentFilter filter ) : int
feedback FeedbackItem The feedback.
filter CommentFilter Spam filter.
Результат int
        public static int Create(FeedbackItem feedback, CommentFilter filter)
        {
            if (HttpContext.Current != null && HttpContext.Current.Request != null)
            {
                feedback.UserAgent = HttpContext.Current.Request.UserAgent;
                feedback.IpAddress = HttpHelper.GetUserIpAddress(HttpContext.Current);
            }

            feedback.FlaggedAsSpam = true; //We're going to start with this assumption.
            feedback.Author = HtmlHelper.SafeFormat(feedback.Author);
            feedback.Body = HtmlHelper.ConvertUrlsToHyperLinks(HtmlHelper.ConvertToAllowedHtml(feedback.Body));
            feedback.Title = HtmlHelper.SafeFormat(feedback.Title);

            // If we are creating this feedback item as part of an import, we want to
            // be sure to use the item's datetime, and not set it to the current time.
            if (NullValue.NullDateTime.Equals(feedback.DateCreated))
            {
                feedback.DateCreated = Config.CurrentBlog.TimeZone.Now;
                feedback.DateModified = feedback.DateCreated;
            }
            else if (NullValue.NullDateTime.Equals(feedback.DateModified))
            {
                feedback.DateModified = feedback.DateCreated;
            }

            if(filter != null)
                filter.FilterBeforePersist(feedback);

            feedback.Id = ObjectProvider.Instance().Create(feedback);

            if(filter != null)
                filter.FilterAfterPersist(feedback);

            // if it's not the administrator commenting and it's not a trackback.
            if (!SecurityHelper.IsAdmin && !String.IsNullOrEmpty(Config.CurrentBlog.Email) && feedback.FeedbackType != Extensibility.FeedbackType.PingTrack)
            {
                //In order to make this async, we need to pass the HttpContext.Current
                //several layers deep. Instead, we should create our own context.
                EmailCommentToAdmin(feedback, Config.CurrentBlog);
            }

            return feedback.Id;
        }