public Discussion(DiscussionGroup group, string name, Post firstPost) { Guard.Null(group); Group = group; Name = name; Posts = new List <Post> { firstPost }; }
public Discussion(DiscussionGroup group, string name, Post firstPost) { CurrentUser.EnsureMembership(group); Guard.Null(group); Group = group; Name = name; Posts = new List <Post> { firstPost }; }
public ActionResult Edit(DiscussionGroup model, HttpPostedFileBase groupimage) { DidacheDb db = new DidacheDb(); try { // store the old email so we can know if it's changed DiscussionGroup group = db.DiscussionGroups.Find(model.GroupID); UpdateModel(group); db.SaveChanges(); // do image // double check for image type if (groupimage != null && groupimage.ContentLength > 0 && System.Text.RegularExpressions.Regex.IsMatch(groupimage.FileName, "(jpeg|jpg|jpe)$", System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { // save it to new path string groupOriginalPath = Server.MapPath("~/images/groups/" + model.GroupID + "-original.jpg"); string groupProfilePath = Server.MapPath("~/images/groups/" + model.GroupID + ".jpg"); string groupThumbPath = Server.MapPath("~/images/groups/" + model.GroupID + "-thumb.jpg"); if (System.IO.File.Exists(groupOriginalPath)) System.IO.File.Delete(groupOriginalPath); if (System.IO.File.Exists(groupProfilePath)) System.IO.File.Delete(groupProfilePath); if (System.IO.File.Exists(groupThumbPath)) System.IO.File.Delete(groupThumbPath); // save original for later groupimage.SaveAs(groupOriginalPath); // resize for profile ImageTools.ScaleImage(groupOriginalPath, groupProfilePath, 180, 1000, 90); // resize for thumb ImageTools.ScaleImage(groupOriginalPath, groupThumbPath, 50, 50, 90); } return Redirect(group.GroupUrl); } catch (Exception ex) { ModelState.AddModelError("", "Edit Failure, see inner exception: " + ex.ToString()); //throw ex; return View(model); } }
public ActionResult Edit(int id = 0) { DiscussionGroup group = null; User user = Users.GetLoggedInUser(); if (id > 0) { group = db.DiscussionGroups.Find(id); DiscussionGroupMember member = db.DiscussionGroupMembers.SingleOrDefault(dgm => dgm.UserID == user.UserID && dgm.GroupID == id); if (member == null || (member.GroupMembershipStatus != GroupMembershipStatus.Administrator && !User.IsInRole(UserRoles.Administrator)) ) { return Redirect(group.GroupUrl); } } else { group = new DiscussionGroup(); } return View(group); }
public ActionResult Edit(DiscussionGroup model) { if (model.GroupID > 0) { DiscussionGroup group = db.DiscussionGroups.Find(model.GroupID); UpdateModel(group); db.SaveChanges(); } else { DiscussionGroup group = new DiscussionGroup(); UpdateModel(group); db.DiscussionGroups.Add(group); db.SaveChanges(); } return RedirectToAction("Index"); }
public void JoinGroup(DiscussionGroup group) { GroupMembership.Add(group); }
public void EnsureMembership(DiscussionGroup group) { ThrowIf(!IsMemberOf(this), "User is not a member of this discussion group"); }
public bool IsMemberOf(DiscussionGroup group) { return(GroupMembership.Contains(group)); }