示例#1
0
        public ActionResult Edit(int?id, string[] selectedActivities, HttpPostedFileBase upload)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var memberToUpdate = db.Members
                                 .Include(m => m.Activities)
                                 .Where(m => m.MemberID == id)
                                 .Include(m => m.FilePathMembers)
                                 .Single();

            if (TryUpdateModel(memberToUpdate, "",
                               new string[] { "LastName", "FirstName", "EnrollmentDate" }))
            {
                try
                {
                    if (upload != null && upload.ContentLength > 0)
                    {
                        if (memberToUpdate.FilePathMembers.Any(f => f.FileType == "Photo"))
                        {
                            db.FilePathMembers.Remove(memberToUpdate.FilePathMembers.First(f => f.FileType == "Photo"));
                        }

                        var photo = new FilePathMember
                        {
                            FileName = Path.GetFileName(upload.FileName),
                            FileType = "Photo",
                        };

                        string path = Path.Combine(Server.MapPath("~/Pics/Member/"), Path.GetFileName(upload.FileName));

                        upload.SaveAs(path);
                        memberToUpdate.FilePathMembers = new List <FilePathMember> {
                            photo
                        };
                    }

                    UpdateMemberActivities(selectedActivities, memberToUpdate);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch (RetryLimitExceededException /* dex */)
                {
                    //Log the error (uncomment dex variable name and add a line here to write a log.
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
                }
            }
            PopulateAssignedActivityData(memberToUpdate);
            return(View(memberToUpdate));
        }
示例#2
0
        public ActionResult Create([Bind(Include = "MemberID,LastName,FirstName,EnrollmentDate")] Member member, string[] selectedActivities, HttpPostedFileBase upload)
        {
            if (selectedActivities != null)
            {
                member.Activities = new List <Activity>();
                foreach (var activity in selectedActivities)
                {
                    var activityToAdd = db.Activities.Find(int.Parse(activity));
                    member.Activities.Add(activityToAdd);
                }
            }
            if (ModelState.IsValid)
            {
                if (upload != null && upload.ContentLength > 0)
                {
                    var photo = new FilePathMember
                    {
                        FileName = Path.GetFileName(upload.FileName),
                        FileType = "Photo"
                    };

                    string path = Path.Combine(Server.MapPath("~/Pics/Member/"), Path.GetFileName(upload.FileName));

                    upload.SaveAs(path);
                    member.FilePathMembers = new List <FilePathMember>();
                    member.FilePathMembers.Add(photo);
                }

                db.Members.Add(member);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            PopulateAssignedActivityData(member);
            return(View(member));
        }