public ActionResult Edit([Bind(Include = "ID,Title,Description,Pledge,Target,Image")] CauseVM cause) { Cause currentCause = db.Causes.Find(cause.ID); if (Session["UserID"] == null) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } Member requester = db.Members.Find(Convert.ToInt32(Session["UserID"].ToString())); if (requester.ID != currentCause.Member.ID && requester.Role != Coursework.Models.Role.Admin) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } if (ModelState.IsValid) { currentCause.Title = cause.Title; currentCause.Description = cause.Description; currentCause.Pledge = cause.Pledge; currentCause.Target = cause.Target; // if an image was attached, do upload to S3 if (cause.Image != null && cause.Image.ContentLength > 0) { // Save file to S3 and add path to model Stream st = cause.Image.InputStream; string extension = Path.GetExtension(cause.Image.FileName).ToLower(); string fileName = string.Format("{0}{1}", Guid.NewGuid(), extension); string bucketName = "multitude"; string s3dir = "UserImages"; AmazonUploader uploader = new AmazonUploader(); bool a = uploader.sendMyFileToS3(st, bucketName, s3dir, fileName); if (a != true) { ModelState.AddModelError("Image", "Image upload to S3 failed."); return(View(cause)); } currentCause.ImageURL = "https://s3-eu-west-1.amazonaws.com/multitude/UserImages/" + fileName; } db.SaveChanges(); return(RedirectToAction("Index")); } return(View(cause)); }
public ActionResult Create([Bind(Include = "Title,Description,Pledge,Target,Image")] CauseVM cause) { if (Session["UserID"] == null) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } cause.CreatedAt = DateTime.Now; int memberID = Convert.ToInt32(Session["UserID"].ToString()); Member member = db.Members.Find(memberID); cause.Member = member; cause.Signers.Add(member); if (cause.Image == null || cause.Image.ContentLength <= 0) { ModelState.AddModelError("Image", "Image is required."); } if (ModelState.IsValid) { // Save file to S3 and add path to model Stream st = cause.Image.InputStream; string extension = Path.GetExtension(cause.Image.FileName).ToLower(); string fileName = string.Format("{0}{1}", Guid.NewGuid(), extension); string bucketName = "multitude"; string s3dir = "UserImages"; AmazonUploader uploader = new AmazonUploader(); bool a = uploader.sendMyFileToS3(st, bucketName, s3dir, fileName); if (a != true) { ModelState.AddModelError("Image", "Image upload to S3 failed."); return(View(cause)); } cause.ImageURL = "https://s3-eu-west-1.amazonaws.com/multitude/UserImages/" + fileName; db.Causes.Add(new Cause(cause)); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(cause)); }