protected void ButtonUploadPhoto_Click(object sender, EventArgs e) { var fileUpload = this.FileUploadPhoto; if (!fileUpload.HasFile) { return; } else { if (fileUpload.HasFile && (fileUpload.PostedFile.ContentType == PngImageFormat || fileUpload.PostedFile.ContentType == JpegImageFormat)) { var context = new ForumEmeraldContext(); using (context) { var userId = this.Request.QueryString["id"]; var user = context.Users.FirstOrDefault(x => x.Id == userId); if (user != null) { string fileName = user.UserName + GetPhotoExtension(fileUpload.PostedFile.FileName); fileUpload.SaveAs(Server.MapPath(MainPath) + fileName); user.PhotoPath = MainPath + fileName; context.SaveChanges(); this.BindUserInfo(); ErrorSuccessNotifier.AddInfoMessage("Profile picture updated."); } } } } }
protected void Page_PreRender(object sender, EventArgs e) { this.postId = Convert.ToInt32(Request.QueryString["id"]); // gather data var context = new ForumEmeraldContext(); var currentPost = context.Posts.Find(postId); var postComments = context.Comments. Where(c => c.Post.Id == currentPost.Id). OrderByDescending(c => c.Date).ToList(); // render post this.PostDate.InnerText = currentPost.PostDate.ToString(); this.imgCreatorPhoto.ImageUrl = currentPost.User.PhotoPath; this.PostCreatorName.InnerText = currentPost.User.UserName; this.TextBoxTitle.Text = currentPost.Title; this.TextBoxTitle.DataBind(); this.TextBoxPostContent.Text = currentPost.Content; this.HyperLinkEditUser.NavigateUrl = "EditUser.aspx?id=" + currentPost.User.Id; // render comments this.ListViewComments.DataSource = postComments; this.ListViewComments.DataBind(); // render tags this.ListViewTags.DataSource = currentPost.Tags.ToList(); this.ListViewTags.DataBind(); this.HyperLinkEditTags.NavigateUrl = "EditPostTags.aspx?id=" + currentPost.Id; }
protected void ButtonComment_Click(object sender, EventArgs e) { this.Validate("AddComment"); if (this.IsValid) { try { var context = new ForumEmeraldContext(); // get needed data int postId = int.Parse(Request.QueryString["id"]); string commentText = this.TextBoxComment.Text; var currentPost = context.Posts.Find(postId); var currentUser = context.Users.Where(u => u.UserName == this.User.Identity.Name).FirstOrDefault(); // make new comment Comment newComment = new Comment(); newComment.Text = commentText; newComment.Post = currentPost; newComment.Date = DateTime.Now; newComment.User = currentUser; context.Comments.Add(newComment); context.SaveChanges(); this.TextBoxComment.Text = ""; } catch (Exception ex) { ErrorSuccessNotifier.AddErrorMessage(ex); } } }
protected void Page_Load(object sender, EventArgs e) { var context = new ForumEmeraldContext(); this.ListViewUsers.DataSource = context.Users.ToList(); this.ListViewUsers.DataBind(); }
protected void ButtonEditComment_Click(object sender, EventArgs e) { this.Validate("EditComment"); if (this.IsValid) { try { int commentId = Convert.ToInt32(Request.QueryString["id"]); var context = new ForumEmeraldContext(); var commentToEdit = context.Comments.Find(commentId); commentToEdit.Text = this.TextBoxEditableCommentContent.Text; context.SaveChanges(); var postId = commentToEdit.Post.Id; Response.Redirect("~/Administration/EditPost.aspx?id=" + postId, false); } catch (Exception ex) { ErrorSuccessNotifier.AddErrorMessage(ex); } } }
protected void ButtonDelete_Click(object sender, EventArgs e) { int postId = int.Parse(Request.QueryString["id"]); var context = new ForumEmeraldContext(); var currentPost = context.Posts.Find(postId); }
protected void Page_PreRender(object sender, EventArgs e) { string userId = Request.QueryString["Id"]; if (userId == string.Empty || string.IsNullOrWhiteSpace(userId)) { Response.Redirect("~/Users.aspx"); } var context = new ForumEmeraldContext(); // bind user info var user = context.Users.Where(u => u.Id == userId).ToList(); this.ListViewUser.DataSource = user; this.ListViewUser.DataBind(); if (this.User.Identity.IsAuthenticated) { // bind user posts var posts = context.Posts.Where(p => p.User.Id == userId).ToList(); this.ListViewUserPosts.DataSource = posts; this.ListViewUserPosts.DataBind(); } else { this.ListViewUserPosts.Visible = false; } }
protected void Page_PreRender(object sender, EventArgs e) { int commentId = Convert.ToInt32(Request.QueryString["id"]); var context = new ForumEmeraldContext(); var comment = context.Comments.Find(commentId); int postId = comment.Post.Id; this.LabelPostTitle.Text = context.Posts.Find(postId).Title; this.TextBoxEditableCommentContent.Text = comment.Text; }
protected void Page_Prerender(object sender, EventArgs e) { int postId = int.Parse(Request.QueryString["id"]); var context = new ForumEmeraldContext(); var currentPost = context.Posts.Find(postId); this.postTitle = currentPost.Title; this.postId = currentPost.Id; this.GridViewTags.DataSource = currentPost.Tags.ToList(); this.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { int tagId = Convert.ToInt32(Request.QueryString["id"]); var context = new ForumEmeraldContext(); var posts = (from p in context.Posts from t in p.Tags where t.Id == tagId select p).ToList(); this.ListViewSingleTagPosts.DataSource = posts; this.DataBind(); }
protected void GridViewTags_RowDeleting(object sender, GridViewDeleteEventArgs e) { int tagId = int.Parse(this.GridViewTags.DataKeys[e.RowIndex].Value.ToString()); int postId = int.Parse(Request.QueryString["id"]); var context = new ForumEmeraldContext(); var currentPost = context.Posts.Find(postId); var deletedTag = context.Tags.Find(tagId); currentPost.Tags.Remove(deletedTag); context.SaveChanges(); }
protected void ButtonAddTags_Click(object sender, EventArgs e) { string[] tags = this.TextBoxPostTags.Text.Split(' '); int postId = int.Parse(Request.QueryString["id"]); var context = new ForumEmeraldContext(); var currentPost = context.Posts.Find(postId); foreach (var tagName in tags) { Tag newTag = CreateOrLoadTag(context, tagName); currentPost.Tags.Add(newTag); } context.SaveChanges(); this.TextBoxPostTags.Text = ""; }
private void AddUserToRole() { var context = new ForumEmeraldContext(); using (context) { var userRole = context.Roles.FirstOrDefault(x => x.Name == "User"); var userRolePair = new UserRole(); userRolePair.RoleId = userRole.Id; var username = this.UserName.Text; var user = context.Users.FirstOrDefault(x => x.UserName == username); userRolePair.UserId = user.Id; context.UserRoles.Add(userRolePair); context.SaveChanges(); } }
protected void Page_Load(object sender, EventArgs e) { if (this.User.IsInRole("Banned")) { this.LabelBannedUser.Visible = true; } var context = new ForumEmeraldContext(); using (context) { var latestPosts = context.Posts.Include("User").Include("Tags") .OrderByDescending(x => x.PostDate).Take(10).ToList(); this.PostsViewer.Posts = latestPosts; this.PostsViewer.DataBind(); } }
protected void ButtonChangeEmail_Click(object sender, EventArgs e) { this.Validate("ValidateEmail"); if (this.IsValid) { var context = new ForumEmeraldContext(); using (context) { var userId = this.Request.QueryString["id"]; var user = context.Users.FirstOrDefault(x => x.Id == userId); user.Email = this.TextBoxEmail.Text; context.SaveChanges(); this.BindUserInfo(); this.TextBoxEmail.Text = string.Empty; ErrorSuccessNotifier.AddInfoMessage("Email address updated."); } } }
protected void ButtonChangeEmail_Click(object sender, EventArgs e) { this.Validate("ValidateEmail"); if (this.IsValid) { var context = new ForumEmeraldContext(); using (context) { string username = this.User.Identity.GetUserName(); var user = context.Users.FirstOrDefault(x => x.UserName == username); user.Email = this.TextBoxEmail.Text; context.SaveChanges(); this.LabelCurrentEmail.Text = user.Email; this.TextBoxEmail.Text = string.Empty; ErrorSuccessNotifier.AddInfoMessage("Email address updated."); } } }
// 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<EmeraldForum.Models.Post> GridViewResults_GetData( [System.Web.ModelBinding.Control("TextBoxSearchText")] string searchText) { if (String.IsNullOrEmpty(searchText)) { return null; } char[] separators = new char[] { ' ', ',', ';' }; string[] keywords = searchText.Split(separators, StringSplitOptions.RemoveEmptyEntries); var context = new ForumEmeraldContext(); IQueryable<EmeraldForum.Models.Post> resultPosts = context.Posts. Where(p => keywords. Any(w => p.Title.Contains(w))); return resultPosts.OrderBy(p => p.Id); }
protected void ButtonChangeRole_Click(object sender, EventArgs e) { var userId = this.Request.QueryString["id"]; var selectedRoleId = this.DropDownListRoles.SelectedItem.Value; var context = new ForumEmeraldContext(); using (context) { var newUserRole = new UserRole(); newUserRole.RoleId = selectedRoleId; newUserRole.UserId = userId; var oldUserRoles = context.UserRoles.Include("Role") .Where(x => x.UserId == userId && x.Role.Name != BannedRole).ToList(); context.UserRoles.RemoveRange(oldUserRoles); context.UserRoles.Add(newUserRole); context.SaveChanges(); this.BindUserInfo(); } }
protected void ButtonSavePost_Click(object sender, EventArgs e) { using (var context = new ForumEmeraldContext()) { var post = context.Posts.Find(this.postId); post.Title = this.TextBoxTitle.Text; post.Content = this.TextBoxPostContent.Text; try { context.SaveChanges(); ErrorSuccessNotifier.AddInfoMessage("Post edited successfuly!"); ErrorSuccessNotifier.ShowAfterRedirect = false; //var adminMaster = this.Master; //var notifier = (ErrorSuccessNotifier) adminMaster.Master.FindControl("ErrorSuccessNotifier"); //var panel = (UpdatePanel) adminMaster.Master.FindControl("UpdatePanelErrorSuccessNotifier"); //notifier.Update(); //panel.Update(); } catch (Exception ex) { ErrorSuccessNotifier.AddErrorMessage(ex); } } }
private static Tag CreateOrLoadTag(ForumEmeraldContext context, string tagName) { Tag existingTag = (from t in context.Tags where t.Name.ToLower() == tagName.ToLower() select t).FirstOrDefault(); if (existingTag != null) { return existingTag; } else { try { Tag newTag = new Tag(); newTag.Name = tagName; context.Tags.Add(newTag); context.SaveChanges(); return newTag; } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Console.WriteLine("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } return null; } }
public IQueryable<EmeraldForum.Models.ForumUser> ListViewAllUsers_GetData() { var context = new ForumEmeraldContext(); IQueryable<ForumUser> allUsers = context.Users; this.searchedCategory = this.ctegoryAllUsers; this.searchCriteria = this.TextBoxSearchCriteria.Text; if (this.RadioButtonOnlyBanned.Checked) { allUsers = allUsers.Where(x => x.Roles.Any(r => r.Role.Name == BannedRole)).AsQueryable(); this.searchedCategory = this.ctegoryBanned; } else if (this.RadioButtonOnlyAdministrators.Checked) { allUsers = allUsers.Where(x => x.Roles.Any(r => r.Role.Name == AdministratorRole)).AsQueryable(); this.searchedCategory = this.ctegoryAdmins; } else if (this.RadioButtonOnlyUsers.Checked) { allUsers = allUsers.Where(x => x.Roles.Any(r => r.Role.Name == UserRole)).AsQueryable(); this.searchedCategory = this.ctegoryUsers; } if (searchOn) { var searchText = this.TextBoxSearchCriteria.Text; char[] separators = new char[] { ' ', ',', ';' }; string[] keywords = searchText.Split(separators, StringSplitOptions.RemoveEmptyEntries); allUsers = allUsers.Where(x => keywords.Any(w => x.UserName.Contains(w))); } this.LabelSearchedBy.Visible = false; return allUsers.OrderBy(x => x.UserName); }
protected void Page_Prerender(object sender, EventArgs e) { int postId = int.Parse(Request.QueryString["id"]); // gather data var context = new ForumEmeraldContext(); var currentPost = context.Posts.Find(postId); var postComments = context.Comments.Where(c => c.Post.Id == currentPost.Id).OrderByDescending(c => c.Date).ToList(); // render post this.headerPostTitle.InnerText = currentPost.Title; this.divPostDate.InnerText = currentPost.PostDate.ToString(); this.imgCreatorPhoto.ImageUrl = currentPost.User.PhotoPath; this.divPostCreatorName.InnerText = currentPost.User.UserName; this.divPostContent.InnerText = currentPost.Content; // render comments this.ListViewComments.DataSource = postComments; this.ListViewComments.DataBind(); // render tags this.ListViewTags.DataSource = currentPost.Tags.ToList(); this.ListViewTags.DataBind(); }
protected void Page_Load() { if (!IsPostBack) { // Determine the sections to render ILoginManager manager = new IdentityManager(new IdentityStore(new ForumEmeraldContext())).Logins; if (manager.HasLocalLogin(User.Identity.GetUserId())) { changePasswordHolder.Visible = true; } else { setPassword.Visible = true; changePasswordHolder.Visible = false; } CanRemoveExternalLogins = manager.GetLogins(User.Identity.GetUserId()).Count() > 1; // Render success message var message = Request.QueryString["m"]; if (message != null) { // Strip the query string from action Form.Action = ResolveUrl("~/Account/Manage"); SuccessMessage = message == "ChangePwdSuccess" ? "Your password has been changed." : message == "SetPwdSuccess" ? "Your password has been set." : message == "RemoveLoginSuccess" ? "The account was removed." : String.Empty; successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage); } var context = new ForumEmeraldContext(); using (context) { var username = this.User.Identity.GetUserName(); var user = context.Users.FirstOrDefault(x => x.UserName == username); this.ImageProfilePicture.ImageUrl = user.PhotoPath; this.ImageProfilePicture.AlternateText = user.UserName; this.LabelCurrentEmail.Text = this.Server.HtmlEncode(user.Email); this.CurrentUser.InnerText = this.Server.HtmlEncode(user.UserName); } } }
protected void ButtonCreatePost_Click(object sender, EventArgs e) { var context = new ForumEmeraldContext(); string title = this.TextBoxPostTitle.Text; string content = this.TextBoxPostContent.Text; string[] tags = this.TextBoxPostTags.Text.Split(' '); var currentUser = context.Users.Where(u => u.UserName == this.User.Identity.Name).FirstOrDefault(); // validate input if (title.Trim().Length > MaxTitleLength) { ErrorSuccessNotifier.AddErrorMessage("The tite is too long, it has to be up to " + MaxTitleLength + " characters."); return; } if (title.Trim().Length < MinTitleLength) { ErrorSuccessNotifier.AddErrorMessage("The title is too short, it has to be at least " + MinTitleLength + " characters."); } if (tags.Length > MaxTagsCount) { ErrorSuccessNotifier.AddErrorMessage("Maximal allowed tags count is " + MaxTagsCount + "."); return; } if (tags.Length < MinTagsCount) { ErrorSuccessNotifier.AddErrorMessage("You need to add at least " + MinTagsCount + "."); return; } // validate tags foreach (var tagName in tags) { if (tagName.Length > MaxTagLength) { ErrorSuccessNotifier.AddErrorMessage("Tags must be less than " + MaxTagLength + " characters."); return; } } // validate content if (content.Trim() == "") { ErrorSuccessNotifier.AddErrorMessage("You must add content"); return; } Models.Post post = new Models.Post(); post.Title = title; post.Content = content; post.PostDate = DateTime.Now; post.User = currentUser; foreach (var tagName in tags) { Tag newTag = CreateOrLoadTag(context, tagName); post.Tags.Add(newTag); } context.Posts.Add(post); context.SaveChanges(); Response.Redirect("~/Post.aspx?id=" + post.Id); }
protected void LinkButtonBan_Command(object sender, CommandEventArgs e) { if (e.CommandName == CommandBanUser) { var userId = this.Request.QueryString["id"]; var context = new ForumEmeraldContext(); using (context) { var bannedRole = context.Roles.FirstOrDefault(x => x.Name == BannedRole); var userRolePair = new UserRole(); userRolePair.RoleId = bannedRole.Id; var user = context.Users.FirstOrDefault(x => x.Id == userId); userRolePair.UserId = user.Id; context.UserRoles.Add(userRolePair); context.SaveChanges(); this.BindUserInfo(); } } }
protected void LinkButtonUnban_Command(object sender, CommandEventArgs e) { if (e.CommandName == CommandUnbanUser) { var userId = this.Request.QueryString["id"]; var context = new ForumEmeraldContext(); using (context) { var bannedRole = context.Roles.FirstOrDefault(x => x.Name == BannedRole); var roleToRemove = context.UserRoles.FirstOrDefault(x => x.UserId == userId && x.RoleId == bannedRole.Id); context.UserRoles.Remove(roleToRemove); context.SaveChanges(); this.BindUserInfo(); } } }
// 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<EmeraldForum.Models.Post> GridViewAllPosts_GetData() { var contect = new ForumEmeraldContext(); var allPosts = contect.Posts; return allPosts.OrderBy(p => p.Id); }
private void BindUserInfo() { var userId = this.Request.QueryString["id"]; if (string.IsNullOrWhiteSpace(userId) || userId == string.Empty) { this.Response.Redirect("~/Administration/ManageUsers.aspx"); } var context = new ForumEmeraldContext(); using (context) { var user = context.Users.Include("Roles").FirstOrDefault(x => x.Id == userId); if (user != null) { this.ImageUser.ImageUrl = user.PhotoPath; this.ImageUser.AlternateText = user.UserName; this.LabelUsername.Text = this.Server.HtmlEncode(user.UserName); this.LabelCurrentEmail.Text = this.Server.HtmlEncode(user.Email); var officialRole = user.Roles.FirstOrDefault(x => x.Role.Name != BannedRole); this.LabelUserRole.Text = officialRole.Role.Name; var allRoles = context.Roles.Where(x => x.Name != BannedRole).ToList(); this.DropDownListRoles.DataSource = allRoles; this.DropDownListRoles.DataBind(); bool isBanned = user.Roles.Any(x => x.Role.Name == BannedRole); if (isBanned) { this.LinkButtonUnban.CommandArgument = user.Id; this.LinkButtonBan.Visible = false; this.LinkButtonUnban.Visible = true; this.LabelStatus.Text = "User is banned!"; this.LabelStatus.Visible = true; } else { this.LinkButtonBan.CommandArgument = user.Id; this.LinkButtonUnban.Visible = false; this.LinkButtonBan.Visible = true; this.LabelStatus.Visible = false; } } } }