protected void dgPendingApproval_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            if (!HasWriteAccess)
                return;

            if (e.CommandName == "Approve")
            {
                string[] parameters = ((string)e.CommandArgument).Split(':');
                if (parameters.Length == 2)
                {
                    string username = parameters[0];
                    int id = Convert.ToInt32(parameters[1]);
                    BlogPost blogPost = null;
                    try
                    {
                        blogPost = BlogPost.Load(id);
                    }
                    catch (NotFoundException) { return; }
                    blogPost.Approved = true;
                    blogPost.Save();

                    #region Add NewFriendBlogPost Event

                    Event newEvent = new Event(username);

                    newEvent.Type = Event.eType.NewFriendBlogPost;
                    NewFriendBlogPost newFriendBlogPost = new NewFriendBlogPost();
                    newFriendBlogPost.BlogPostID = blogPost.Id;
                    newEvent.DetailsXML = Misc.ToXml(newFriendBlogPost);

                    newEvent.Save();

                    string[] usernames = Classes.User.FetchMutuallyFriends(username);

                    foreach (string friendUsername in usernames)
                    {
                        if (Config.Users.NewEventNotification)
                        {
                            string text = String.Format("Your friend {0} has a new blog post: {1}".TranslateA(),
                                                    "<b>" + username + "</b>",
                                                    Server.HtmlEncode(blogPost.Title));
                            int imageID = 0;
                            try
                            {
                                imageID = Photo.GetPrimary(username).Id;
                            }
                            catch (NotFoundException)
                            {
                                Classes.User user = null;
                                try
                                {
                                    user = Classes.User.Load(username);
                                    imageID = ImageHandler.GetPhotoIdByGender(user.Gender);
                                }
                                catch (NotFoundException)
                                {
                                    continue;
                                }
                            }
                            string thumbnailUrl = ImageHandler.CreateImageUrl(imageID, 50, 50, false, true, true);
                            Classes.User.SendOnlineEventNotification(username, friendUsername,
                                                                     text, thumbnailUrl,
                                                                     UrlRewrite.CreateShowUserBlogUrl(
                                                                         username, blogPost.Id));
                        }
                    }

                    #endregion

                    PopulateDataGrid();
                }
            }
            else if (e.CommandName == "Reject")
            {
                string[] parameters = ((string)e.CommandArgument).Split(':');
                if (parameters.Length == 2)
                {
                    BlogPost.Delete(Convert.ToInt32(parameters[1]));
                    PopulateDataGrid();
                }
            }
        }
Example #2
0
        protected void btnSaveChanges_Click(object sender, EventArgs e)
        {
            if (ValidateData())
            {
                Classes.Blog blog = Classes.Blog.Load(CurrentUserSession.Username);

                if (permissionCheckResult == PermissionCheckResult.Yes ||
                    (CurrentUserSession.Level != null &&
                                       CurrentUserSession.Level.Restrictions.CanCreateBlogs))
                {
                }
                else if (permissionCheckResult == PermissionCheckResult.YesButPlanUpgradeNeeded ||
                         permissionCheckResult == PermissionCheckResult.YesButMoreCreditsNeeded)
                {
                    Session["BillingPlanOption"] = CurrentUserSession.BillingPlanOptions.CanCreateBlogs;
                    Response.Redirect("~/Profile.aspx?sel=payment");
                    return;
                }
                else if (permissionCheckResult == PermissionCheckResult.No)
                {
                    ((PageBase)Page).StatusPageMessage = Lang.Trans("You are not allowed to create blogs!");
                    Response.Redirect("ShowStatus.aspx");
                    return;
                }

                BlogPost blogPost = null;
                string content = htmlEditor != null ? htmlEditor.Content : ckeditor.Text;
                if (BlogPostId == -1)
                {
                    //if (Config.Credits.Required && Config.Credits.CreditsForBlogPost > 0)
                    //{
                    #region Charge credits

                        //if (!Config.Users.FreeForFemales ||
                        //    CurrentUserSession.Gender != User.eGender.Female)
                        //{
                    if (permissionCheckResult == PermissionCheckResult.YesWithCredits)
                    {
                        int creditsLeft = CurrentUserSession.Credits - CurrentUserSession.BillingPlanOptions.CanCreateBlogs.Credits;

                        if (creditsLeft < 0)
                        {
                            Session["BillingPlanOption"] = CurrentUserSession.BillingPlanOptions.CanCreateBlogs;
                            Response.Redirect("~/Profile.aspx?sel=payment");
                            return;
                        }

                        var user = Classes.User.Load(CurrentUserSession.Username);
                        user.Credits -= CurrentUserSession.BillingPlanOptions.CanCreateBlogs.Credits;
                        user.Update(true);
                        CurrentUserSession.Credits = user.Credits;
                    }
                        //}

                    #endregion
                    //}

                    if (Config.Misc.EnableBadWordsFilterBlogs)
                    {
                        blogPost = BlogPost.Create(blog.Id, Parsers.ProcessBadWords(txtName.Text.Trim()),
                                                   Parsers.ProcessBadWords(content.Trim()));
                    }
                    else
                    {
                        blogPost = BlogPost.Create(blog.Id, txtName.Text.Trim(), content.Trim());
                    }
                }
                else
                {
                    blogPost = BlogPost.Load(BlogPostId);

                    if (Config.Misc.EnableBadWordsFilterBlogs)
                    {
                        blogPost.Title = Parsers.ProcessBadWords(txtName.Text.Trim());
                        blogPost.Content = Parsers.ProcessBadWords(content.Trim());
                    }
                    else
                    {
                        blogPost.Title = txtName.Text.Trim();
                        blogPost.Content = content.Trim();
                    }
                }
                blogPost.Save();

                if (BlogPostId == -1 && blogPost.Approved)
                {
                    #region Add NewFriendBlogPost Event

                    Event newEvent = new Event(CurrentUserSession.Username);

                    newEvent.Type = Event.eType.NewFriendBlogPost;
                    NewFriendBlogPost newFriendBlogPost = new NewFriendBlogPost();
                    newFriendBlogPost.BlogPostID = blogPost.Id;
                    newEvent.DetailsXML = Misc.ToXml(newFriendBlogPost);

                    newEvent.Save();

                    string[] usernames = User.FetchMutuallyFriends(CurrentUserSession.Username);

                    foreach (string friendUsername in usernames)
                    {
                        if (Config.Users.NewEventNotification)
                        {
                            string text = String.Format("Your friend {0} has a new blog post: {1}".Translate(),
                                                    "<b>" + CurrentUserSession.Username + "</b>",
                                                    Server.HtmlEncode(blogPost.Title));
                            int imageID = 0;
                            try
                            {
                                imageID = Photo.GetPrimary(CurrentUserSession.Username).Id;
                            }
                            catch (NotFoundException)
                            {
                                imageID = ImageHandler.GetPhotoIdByGender(CurrentUserSession.Gender);
                            }
                            string thumbnailUrl = ImageHandler.CreateImageUrl(imageID, 50, 50, false, true, true);
                            Classes.User.SendOnlineEventNotification(CurrentUserSession.Username, friendUsername,
                                                                     text, thumbnailUrl,
                                                                     UrlRewrite.CreateShowUserBlogUrl(
                                                                         CurrentUserSession.Username, blogPost.Id));
                        }
                    }

                    #endregion
                }

                txtName.Text = "";
                if (ckeditor != null)
                    ckeditor.Text = "";
                else if (htmlEditor != null)
                    htmlEditor.Content = "";
                if (BlogPostId != -1)
                {
                    BlogPostId = -1;
                    lblError.Text = Lang.Trans("Post has been edited successfully.");
                    Visible = false;
                    OnSaveChangesClick(e);
                }
                else
                {
                    lblError.Text = Lang.Trans("Post has been added successfully.");
                }
            }
        }
        protected void btnSaveAndApprove_Click(object sender, EventArgs e)
        {
            if (!HasWriteAccess)
                return;

            BlogPost blogPost = null;

            try
            {
                blogPost = BlogPost.Load(id);
            }
            catch (NotFoundException)
            {
                return;
            }

            if (txtTitle.Text.Trim().Length == 0 || txtContent.Text.Trim().Length == 0)
                btnReject_Click(null, null);
            else
            {
                blogPost.Title = txtTitle.Text.Trim();
                blogPost.Content = txtContent.Text.Trim();
            }
            blogPost.Approved = true;
            blogPost.Save();

            #region Add NewFriendBlogPost Event

            Event newEvent = new Event(username);

            newEvent.Type = Event.eType.NewFriendBlogPost;
            NewFriendBlogPost newFriendBlogPost = new NewFriendBlogPost();
            newFriendBlogPost.BlogPostID = blogPost.Id;
            newEvent.DetailsXML = Misc.ToXml(newFriendBlogPost);

            newEvent.Save();

            string[] usernames = Classes.User.FetchMutuallyFriends(username);

            foreach (string friendUsername in usernames)
            {
                if (Config.Users.NewEventNotification)
                {
                    string text = String.Format("Your friend {0} has a new blog post: {1}".TranslateA(),
                                            "<b>" + username + "</b>",
                                            Server.HtmlEncode(blogPost.Title));
                    int imageID = 0;
                    try
                    {
                        imageID = Photo.GetPrimary(username).Id;
                    }
                    catch (NotFoundException)
                    {
                        Classes.User user = null;
                        try
                        {
                            user = Classes.User.Load(username);
                            imageID = ImageHandler.GetPhotoIdByGender(user.Gender);
                        }
                        catch (NotFoundException)
                        {
                            continue;
                        }
                    }
                    string thumbnailUrl = ImageHandler.CreateImageUrl(imageID, 50, 50, false, true, true);
                    Classes.User.SendOnlineEventNotification(username, friendUsername,
                                                             text, thumbnailUrl,
                                                             UrlRewrite.CreateShowUserBlogUrl(
                                                                 username, blogPost.Id));
                }
            }

            #endregion

            Response.Redirect("ApproveBlogPosts.aspx");
        }