//Deletes a Cause.
        public ActionResult DeleteCause(int id)
        {
            //Creates cause instance based on the id parameter passed in
            Cause cause = new Cause();

            cause = causeSiteDb.Causes.FirstOrDefault(c => c.Id == id);

            //Delete signatures first then the cause
            List <Signature> sigsToRemove = new List <Signature>();

            //appends all signatures that need deleting to a list that can be removed.
            //All signatures related to a cauase must be deleted before the cause can be removed.
            foreach (var signature in causeSiteDb.Signatures)
            {
                if (signature.Cause == cause)
                {
                    sigsToRemove.Add(signature);
                }
            }

            //removes the signatures and cause and saves changes.
            causeSiteDb.Signatures.RemoveRange(sigsToRemove);
            causeSiteDb.Causes.Remove(cause);
            causeSiteDb.SaveChanges();

            CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

            causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
            causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
            return(RedirectToAction("Index", causeSignatureViewModel));
        }
Ejemplo n.º 2
0
        public ActionResult Register(Member memberModel)
        {
            if (ModelState.IsValid)
            {
                //checks for duplicate usernames
                if (causeSiteDb.Members.Any(x => x.Username == memberModel.Username))
                {
                    ViewBag.DuplicateMessage = "Username Taken, Please Choose Another";
                    return(View("Register", memberModel));
                }
                causeSiteDb.Members.Add(memberModel);
                causeSiteDb.SaveChanges();

                //clear down modal for security
                ModelState.Clear();
                //stores various member properties in session
                Session["MemberId"] = memberModel.MemberId.ToString();
                Session["Username"] = memberModel.Username.ToString();

                CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();
                causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
                causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
                return(RedirectToAction("Index", "Cause", causeSignatureViewModel));
            }
            else
            {
                //if modal has not been properly filled in it returns the same view
                return(View());
            }
        }
        public ActionResult NewCause(Cause causeModel)
        {
            //attempt to allow picture uploads did not work and ran out of time.

            /*
             * if (causeModel.Description == null || causeModel.CauseTitle ==null)
             * {
             *  ViewBag.MissingItem = "Plese Enter A Title And Description";
             *  return View(causeModel);
             * }
             * if(ModelState.IsValid)
             * {
             *  if(file!=null)
             *  {
             *      try
             *      {
             *          string fileName = Path.GetFileName(file.FileName);
             *          var path = Path.Combine(Server.MapPath("~/UploadedImages/"), fileName);
             *          file.SaveAs(path);
             *          causeModel.ImagePath = path;
             *      }
             *      catch
             *      {
             *
             *      }
             *  }
             *  else
             *  {
             *      causeModel.ImagePath = "~/UploadedImages/pension.jpg";
             *  }
             * }
             *
             */

            //sets every image to the same picture.
            causeModel.ImagePath = "~/UploadedImages/pension.jpg";

            //sets the time the cause was made.
            causeModel.CreatedOn = DateTime.Now;

            //finds current user object in database based on the session memberId and passes it to the currentUser variable.
            //So that the Member object can be saved inside the database as the Cause creator.
            int    currentSessionId = Convert.ToInt32(Session["MemberId"]);
            Member currentUser      = causeSiteDb.Members.FirstOrDefault(x => x.MemberId == currentSessionId);

            causeModel.CreatedBy = currentUser;


            //saves db after adding the cause object
            causeSiteDb.Causes.Add(causeModel);
            causeSiteDb.SaveChanges();


            CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

            causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
            causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
            return(RedirectToAction("Index", causeSignatureViewModel));
        }
Ejemplo n.º 4
0
        //Users will need to log in/Register to access any of the pages other than the home page
        public ActionResult Index()
        {
            CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

            causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
            causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
            return(View("index", causeSignatureViewModel));
        }
        // GET: Cause
        public ActionResult Index()
        {
            // returns an instance of the causeSignatureModel containing all Signatures and Causes.
            CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

            causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
            causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
            return(View("Index", causeSignatureViewModel));
        }
Ejemplo n.º 6
0
        public ActionResult LogOut()
        {
            Session["MemberId"] = null;
            Session.Abandon();
            Request.Cookies.Clear();
            CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

            causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
            causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
            return(RedirectToAction("Index", "Home", causeSignatureViewModel));
        }
        public ActionResult updateSigs(int?id)
        {
            //Creates new instance of cause
            Cause cause = new Cause();

            cause = causeSiteDb.Causes.Find(id);
            CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

            //finds all signatures in Database.
            //this would become unmanageable as the website gets bigger but will keep as this for now.
            causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
            causeSignatureViewModel.Causes.Add(cause);
            return(PartialView("_SignaturesPartialView", causeSignatureViewModel));
        }
Ejemplo n.º 8
0
        //This should not be reaches as the link specifies the action result in Cause controller.
        public ActionResult SignCause(int?id)
        {
            if (Session["MemberId"] == null)
            {
                return(RedirectToAction("Login", "Member"));
            }
            else
            {
                Cause cause = new Cause();
                cause = causeSiteDb.Causes.FirstOrDefault(c => c.Id == id);
                CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

                causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
                causeSignatureViewModel.Causes.Add(cause);
                return(RedirectToAction("Index", "Cause", causeSignatureViewModel));
            }
        }
 public ActionResult CauseExpanded(int id)
 {
     //checks a member is logged in.
     if (Session["MemberId"] == null)
     {
         return(RedirectToAction("Login", "Member"));
     }
     else
     {
         //pass only data relevant to the cause with the parameter id to the new view
         Cause cause = new Cause();
         cause = causeSiteDb.Causes.FirstOrDefault(c => c.Id == id);
         CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();
         causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
         causeSignatureViewModel.Causes.Add(cause);
         return(View(causeSignatureViewModel));
     }
 }
Ejemplo n.º 10
0
        public ActionResult Login(Member memberModel)
        {
            CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();

            causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
            causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();

            //searches for a member with the same properties as the memberModel passed in.
            var member = causeSiteDb.Members.SingleOrDefault(u => u.Username == memberModel.Username && u.Password == memberModel.Password);

            //if a member is found, create a session. If not add a error message to the modal and return the same view
            if (member != null)
            {
                Session["MemberId"] = member.MemberId.ToString();
                Session["Username"] = member.Username.ToString();
                return(RedirectToAction("Index", "Cause", causeSignatureViewModel));
            }
            else
            {
                ModelState.AddModelError("", "Username or Password Incorrect");
            }

            return(View());
        }
        public ActionResult SignCause(int?id)
        {
            if (Session["MemberId"] == null)
            {
                return(RedirectToAction("Login", "Member"));
            }
            //creates instance of member and assigns the current user's properties to it.
            int    currentSessionId = Convert.ToInt32(Session["MemberId"]);
            Member currentUser      = causeSiteDb.Members.FirstOrDefault(x => x.MemberId == currentSessionId);

            //finds cause based on parameters fed in.
            Cause cause = new Cause();

            cause = causeSiteDb.Causes.FirstOrDefault(c => c.Id == id);


            // check if user has already signed cause
            List <Signature> allSigs       = causeSiteDb.Signatures.ToList();
            Boolean          alreadySigned = false;

            foreach (Signature signature in allSigs)
            {
                if (signature.MemberId == currentUser.MemberId && signature.CauseId == cause.Id)
                {
                    alreadySigned = true;
                }
            }
            if (alreadySigned == true)
            {
                //if user has already signed cause another signature is not permitted. So they are redirected to the main page.
                //cause creators are permitted to sign their cause once.
                //add some sort of error message here
                CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();
                causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
                causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
                return(RedirectToAction("Index", causeSignatureViewModel));
            }

            else
            {
                //if member has not signed the cause before, creates a new instance of signature.
                //sets the signatures properties based on the cause being signed and the current user.
                Signature signature = new Signature();
                signature.SignatureTime  = DateTime.Now;
                signature.Member         = currentUser;
                signature.Cause          = cause;
                signature.MemberId       = currentUser.MemberId;
                signature.CauseId        = cause.Id;
                signature.MemberUsername = currentUser.Username;

                //saves db after adding the signature object
                causeSiteDb.Signatures.Add(signature);
                causeSiteDb.SaveChanges();


                CauseSignatureViewModel causeSignatureViewModel = new CauseSignatureViewModel();
                causeSignatureViewModel.Causes     = causeSiteDb.Causes.ToList();
                causeSignatureViewModel.Signatures = causeSiteDb.Signatures.ToList();
                return(RedirectToAction("index", causeSignatureViewModel));
            }
        }