public AspNetUser FormViewSettings_GetItem()
        {
            string userId = string.Empty;
            if (Request.Params["userId"] == null)
            {
                userId = User.Identity.GetUserId();
            }
            else if (User.IsInRole("admin"))
            {
                userId = Request.Params["userId"];
            }

            var context = new TwitterEntities();
            AspNetUser user = context.AspNetUsers
                .FirstOrDefault(u => u.Id == userId);

            if (user == null)
            {
                ModelState.AddModelError("", "User doesn't exist in the database anymore.");
                return null;
            }

            this.user = user;
            return user;
        }
        protected void DeleteComment_Command(object sender, CommandEventArgs e)
        {
            int tweetId = Convert.ToInt32(Request.Params["tweetId"]);
            int commentId = Convert.ToInt32(e.CommandArgument);

            using (TwitterEntities context = new TwitterEntities())
            {
                Comment comment = context.Comments.Find(commentId);
                if (comment != null)
                {
                    try
                    {
                        context.Comments.Remove(comment);
                        context.SaveChanges();
                        ErrorSuccessNotifier.ShowAfterRedirect = true;
                        ErrorSuccessNotifier.AddSuccessMessage("Comment deleted.");
                        Response.Redirect("EditTweet?tweetId=" + tweetId, false);
                    }
                    catch (Exception ex)
                    {
                        ErrorSuccessNotifier.AddErrorMessage(ex);
                    }
                }
                else
                {
                    ErrorSuccessNotifier.AddErrorMessage("There is no such comment.");
                }

            }
        }
Example #3
0
        // The return type can be changed to IEnumerable, however to support
        // paging and sorting, the following parameters must be added:
        //     int maximumRows
        //     int startRowIndex
        //     out int totalRowCount
        //     string sortByExpression
        public IQueryable<AspNetUser> GridViewUsers_GetData()
        {
            var context = new TwitterEntities();

            return context.AspNetUsers
                .OrderBy(u => u.UserName);
        }
 protected void LinkButtonCancel_Click(object sender, EventArgs e)
 {
     TwitterEntities context = new TwitterEntities();
     Comment currentComment = context.Comments.Find(commentId);
     ErrorSuccessNotifier.ShowAfterRedirect = true;
     ErrorSuccessNotifier.AddSuccessMessage("Comment editing canceled.");
     Response.Redirect("EditTweet.aspx?tweetId=" + currentComment.TweetId, false);
 }
 // The return type can be changed to IEnumerable, however to support
 // paging and sorting, the following parameters must be added:
 //     int maximumRows
 //     int startRowIndex
 //     out int totalRowCount
 //     string sortByExpression
 public IOrderedQueryable<Tweet> GridViewTweets_GetData()
 {
     TwitterEntities context = new TwitterEntities();
     var userId = User.Identity.GetUserId();
     return context.Tweets
                         .Where(u => u.UserId.Equals(userId))
                         .OrderByDescending(t => t.DatePosted);
 }
        public object FormViewTweetDetails_GetItem([QueryString] int? tweetId)
        {
            if (tweetId == null)
            {
                ModelState.AddModelError("", "Selected tweet doesn't exit in the database anymore.");
                this.TweetDetailsCommentsUpdatePanel.FindControl("CommentBoxHolder").Visible = false;
                return null;
            }

            var context = new TwitterEntities();
            Tweet currentTweet = context.Tweets.Include("AspNetUser").FirstOrDefault(t => t.TweetId == tweetId);

            return currentTweet;
        }
        protected void LinkButtonSave_Click(object sender, EventArgs e)
        {
            TwitterEntities context = new TwitterEntities();
            Comment comment;
            using (context)
            {
                comment = context.Comments.Find(this.commentId);
                if (comment != null)
                {
                    if (!string.IsNullOrEmpty(this.TextBoxText.Text))
                    {
                        comment.CommentText = this.TextBoxText.Text;
                    }
                    else
                    {
                        ErrorSuccessNotifier.AddErrorMessage("Please enter comment text.");
                        return;
                    }

                    if (!string.IsNullOrEmpty(this.TextBoxDate.Text))
                    {
                        try
                        {
                            comment.DatePosted = DateTime.Parse(this.TextBoxDate.Text);
                        }
                        catch (Exception ex)
                        {
                            ErrorSuccessNotifier.AddErrorMessage(ex);
                        }
                    }
                    else
                    {
                        comment.DatePosted = DateTime.Now;
                    }
                }
                try
                {
                    context.SaveChanges();
                    ErrorSuccessNotifier.ShowAfterRedirect = true;
                    ErrorSuccessNotifier.AddSuccessMessage("Comment edit successful");
                    Response.Redirect("EditTweet.aspx?tweetId=" + comment.TweetId, false);
                }
                catch (Exception ex)
                {
                    ErrorSuccessNotifier.AddErrorMessage(ex);
                    return;
                }
            }
        }
        public void FormViewSettings_UpdateItem(string id)
        {
            using (var context = new TwitterEntities())
            {
                var user = context.AspNetUsers.FirstOrDefault(u => u.Id == id);
                if (user == null)
                {
                    // The item wasn't found
                    ModelState.AddModelError("", "гредЪ");
                    return;
                }

                TryUpdateModel(user);
                if (ModelState.IsValid)
                {
                    try
                    {
                        byte[] profileImage = ProcessUploadData();
                        if (profileImage != null)
                        {
                            user.Picture = profileImage;
                        }
                        var list = this.FormViewSettings.FindControl("CheckBoxListRoles") as CheckBoxList;
                        foreach (ListItem item in list.Items)
                        {
                            var role = context.AspNetRoles.First(r => r.Name == item.Text);
                            if (item.Selected)
                            {
                                user.AspNetRoles.Add(role);
                            }
                            else
                            {
                                user.AspNetRoles.Remove(role);
                            }
                        }

                        context.SaveChanges();
                        ErrorSuccessNotifier.ShowAfterRedirect = true;
                        ErrorSuccessNotifier.AddSuccessMessage("Profile edit successful.");
                        Response.Redirect("~/UserDetails.aspx?Username=" + user.UserName, false);
                    }
                    catch (Exception ex)
                    {
                        ErrorSuccessNotifier.AddErrorMessage(ex);
                    }
                }
            }
        }
        protected void ButtonAddComment_Click(object sender, EventArgs e)
        {
            //this.CommentBoxHolder.Visible = false;
            //if (Request.Params["TweetId"] == null)
            //{
            //    ModelState.AddModelError("", "Selected tweet doesn't exist in the database anymore.");
            //    return;
            //}

            using (var context = new TwitterEntities())
            {
                string commentText = this.CommentText.Text;
                this.CommentText.Text = "";
                this.tweetId = int.Parse(Request.Params["TweetId"]);
                Tweet currentTweet = context.Tweets.FirstOrDefault(t => t.TweetId == this.tweetId);

                string userId = string.Empty;
                try
                {
                    userId = User.Identity.GetUserId().ToString();
                }
                catch (Exception)
                {
                    ModelState.AddModelError("", "You need to be logged to comment.");
                    return;
                }

                Comment comment = new Comment()
                {
                    DatePosted = DateTime.Now,
                    TweetId = currentTweet.TweetId,
                    CommentText = commentText,
                    UserId = userId
                };

                context.Comments.Add(comment);
                try
                {
                    context.SaveChanges();
                    this.ListViewTweetComments.DataBind();
                }
                catch (Exception)
                {
                    // TODO
                    throw;
                }
            }
        }
        public IQueryable<Comment> ListViewTweetComments_GetData()
        {
            if (Request.Params["TweetId"] == null)
            {
                ModelState.AddModelError("", "Selected tweet doesn't exist in the database anymore.");
                return null;
            }

            int tweetId = int.Parse(Request.Params["TweetId"]);
            var context = new TwitterEntities();
            Tweet currentTweet = context.Tweets.FirstOrDefault(t => t.TweetId == tweetId);

            var comments = currentTweet.Comments;
            return comments.AsQueryable()
                                .OrderByDescending(d => d.DatePosted);
        }
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                int tweetId = Convert.ToInt32(Request.Params["tweetId"]);
                TwitterEntities context = new TwitterEntities();
                using (context)
                {
                    Tweet currentTweet = context.Tweets.Find(tweetId);
                    if (!CheckUserRights(currentTweet))
                    {
                        Response.Redirect("~/Default.aspx");
                    }

                    this.TextBoxTitle.Text = currentTweet.TweetTitle;
                    this.TextBoxText.Text = currentTweet.TweetText;
                    this.TextBoxDate.Text = currentTweet.DatePosted.ToShortDateString();
                    this.RepeaterComments.DataSource = currentTweet.Comments.ToList();
                    this.DataBind();
                }
            }
        }
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (!isNewComment)
            {
                TwitterEntities context = new TwitterEntities();

                using (context)
                {
                    Comment currentComment = context.Comments.Find(commentId);
                    this.TextBoxText.Text = currentComment.CommentText;
                    this.TextBoxDate.Text = currentComment.DatePosted.ToShortDateString();
                }
            }
        }
 public IQueryable<AspNetRole> CheckBoxListRoles_GetAll()
 {
     var context = new TwitterEntities();
     return context.AspNetRoles;
 }
Example #14
0
        public void TweetsListView_InsertItem()
        {
            using (var context = new TwitterEntities())
            {
                var control = TweetsListView.InsertItem;

                try
                {
                    Tweet newTweet = new Tweet()
                    {
                        DatePosted = DateTime.Now,
                        UserId = Context.User.Identity.GetUserId(),
                        TweetText = (control.FindControl("TweetTextTb") as TextBox).Text,
                        TweetTitle = (control.FindControl("TweetTitleTb") as TextBox).Text,
                    };

                    context.Tweets.Add(newTweet);
                    context.SaveChanges();
                    ErrorSuccessNotifier.AddSuccessMessage("Tweet created.");
                }
                catch (Exception ex)
                {
                    ErrorSuccessNotifier.AddErrorMessage(ex);
                }
            }
        }
        protected void LinkButtonSave_Click(object sender, EventArgs e)
        {
            int tweetId = Convert.ToInt32(Request.Params["tweetId"]);
            TwitterEntities context = new TwitterEntities();

            using (context)
            {
                Tweet currentTweet = context.Tweets.Find(tweetId);
                if (currentTweet != null)
                {
                    if (!string.IsNullOrEmpty(this.TextBoxTitle.Text))
                    {
                        currentTweet.TweetTitle = this.TextBoxTitle.Text;
                    }
                    else
                    {
                        ErrorSuccessNotifier.AddErrorMessage("Please enter tweet title.");
                        return;
                    }

                    if (!string.IsNullOrEmpty(this.TextBoxText.Text))
                    {
                        currentTweet.TweetText = this.TextBoxText.Text;
                    }
                    else
                    {
                        ErrorSuccessNotifier.AddErrorMessage("Please enter tweet text.");
                        return;
                    }

                    if (!string.IsNullOrEmpty(this.TextBoxDate.Text))
                    {
                        try
                        {
                            currentTweet.DatePosted = DateTime.Parse(this.TextBoxDate.Text);
                        }
                        catch (Exception ex)
                        {
                            ErrorSuccessNotifier.AddErrorMessage(ex);
                        }
                    }
                    else
                    {
                        currentTweet.DatePosted = DateTime.Now;
                    }
                }
                try
                {
                    byte[] image = ProcessUploadData();
                    if (image != null)
                    {
                        currentTweet.Image = image;
                    }

                    context.SaveChanges();
                    ErrorSuccessNotifier.ShowAfterRedirect = true;
                    ErrorSuccessNotifier.AddSuccessMessage("Tweet edit succesfull");
                    Response.Redirect("MyTweets.aspx", false);
                }
                catch (Exception ex)
                {
                    ErrorSuccessNotifier.AddErrorMessage(ex);
                    return;
                }
            }
        }
Example #16
0
        private void CheckUserRights()
        {
            using (var context = new TwitterEntities())
            {
                var user = context.AspNetUsers
                    .Find(Context.User.Identity.GetUserId());

                if (user != null)
                {
                    if (this.IsUserDetails)
                    {
                        if (Request.Params["Username"] != null &&
                            Request.Params["Username"] != Context.User.Identity.GetUserName())
                        {
                            TweetsListView.InsertItemPosition = InsertItemPosition.None;
                        }
                    }

                    if (user.AspNetRoles.All(r => r.Name != "admin"))
                    {
                        // User Logged in
                        foreach (ListViewItem item in TweetsListView.Items)
                        {
                            if ((item.FindControl("UserProfileHyperLink") as HyperLink).Text != user.UserName)
                            {
                                item.FindControl("LinkButtonEditTweet").Visible = false;
                                item.FindControl("LinkButtonDeleteTweet").Visible = false;
                            }
                        }
                    }
                }
                else
                {
                    // Not Logged In
                    TweetsListView.InsertItemPosition = InsertItemPosition.None;
                    foreach (ListViewItem item in TweetsListView.Items)
                    {
                        item.FindControl("LinkButtonEditTweet").Visible = false;
                        item.FindControl("LinkButtonDeleteTweet").Visible = false;
                    }
                }
            }
        }
Example #17
0
        // The id parameter name should match the DataKeyNames value set on the control
        public void TweetsListView_DeleteItem(int tweetId)
        {
            TwitterEntities context = new TwitterEntities();

            using (context)
            {
                var comments = context.Comments.Where(t => t.TweetId.Equals(tweetId));
                Tweet tweet = context.Tweets.Find(tweetId);
                try
                {
                    if (comments.Count() > 0)
                    {
                        context.Comments.RemoveRange(comments);
                    }
                    context.Tweets.Remove(tweet);
                    context.SaveChanges();
                    ErrorSuccessNotifier.AddSuccessMessage("Delete successful.");
                }
                catch (Exception ex)
                {
                    ErrorSuccessNotifier.AddErrorMessage(ex);
                }
            }
        }