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."); } } }
// 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; }
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; } } }
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; } } } }
// 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); } } }