Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }