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)); }
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)); }