コード例 #1
0
 public Discussion(DiscussionGroup group, string name, Post firstPost)
 {
     Guard.Null(group);
     Group = group;
     Name  = name;
     Posts = new List <Post> {
         firstPost
     };
 }
コード例 #2
0
 public Discussion(DiscussionGroup group, string name, Post firstPost)
 {
     CurrentUser.EnsureMembership(group);
     Guard.Null(group);
     Group = group;
     Name  = name;
     Posts = new List <Post> {
         firstPost
     };
 }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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");
        }
コード例 #6
0
 public void JoinGroup(DiscussionGroup group)
 {
     GroupMembership.Add(group);
 }
コード例 #7
0
 public void EnsureMembership(DiscussionGroup group)
 {
     ThrowIf(!IsMemberOf(this),
             "User is not a member of this discussion group");
 }
コード例 #8
0
 public bool IsMemberOf(DiscussionGroup group)
 {
     return(GroupMembership.Contains(group));
 }